USING COMPUTER PROGRAMMING
TO PROMOTE LEARNING BY COMPUTERS

by Brad Ryder

for

MCTE 625, Survey of Courseware
Prof. George Fornshell
School of Computer and Information Sciences
Nova Southeastern University, Fort Lauderdale, FL


TABLE OF CONTENTS

 

I. Introduction

II. Using Computer Programming in the Classroom

A. Understanding the Problem (Problem Definition and Solving)

B. Designing and Planning the Program

C. Coding and Debugging the Program

III. The Value of Programming Projects

V. References

 

  1. Introduction
  2. Students can use computer programming to help them think critically and creatively. Programming is not one of the easier Mindtools to use, although a program such as BASIC is a good place to start [Bishop, 1988]. The time required to learn a computer language is one reason it is considered a quasi-Mindtool. However, even if a student learns only the fundamentals of a computer language, going through even a few steps of the programming process (understanding the problem, designing and planning the program, coding the program, and comprehending and debugging the program) will exercise thinking skills [Jonassen, 1996].

    One of the concerns with using computer programming as a Mindtool is that students will need to spend so much time learning the programming language that transference will not take place. That is, if creating a program to study biology, the student will not learn as much about biology as about the computing language. Some authors have argued that computer programming improves problem-solving ability, and that this transfers to other problem-solving activities [McCoy, 1990]. Others say that until programming becomes easier, it may take more effort to program the computer than to represent the knowledge needed for learning transference [Jonassen, 1996].

    Educators have considered learner ability in terms of broad cognitive strategies rather than specific operations. These comprise general intellectual skills, such as working out alternatives, judging the possibility of success, reflecting on the meaning of new knowledge, searching out associations between the elements of knowledge, generalizing, and deducing [Tuovinen & Hill, 1992]. A computer language can provide these skills.

    Instead of using a formal language, though, students can write their program in pseudocode, a natural language version of the program’s structures and processes. Then as they learn the actual program they can apply the required coding. Still, even before the actual coding begins, it’s important that students apply good, useful rules to their program, ones that will link together and make sense [Cumming, 1990].

  3. Using Computer Programming in the Classroom
  4. Let us proceed with the understanding that the students will use a rudimentary version of a computing program or write their program in pseudocode. How will they begin to create a program that will fulfill some of the requirements of a Mindtool: to represent knowledge in a subject not directly related to computers, to engage critical thinking, to facilitate transfer of learning, and which will not take several years of programming? After all, the point is not necessarily to write perfect code; part of the learning process will be the theory, rooted in artificial intelligence, that people learn by correcting the errors, or "debugging" [Clements, 1986].

    First, the students gather in teams to define a problem, realizing that the computer program is to be used to solve the problem, not as an end unto itself. Second, they design and plan the program, essentially deciding what the program is going to do in order to solve the problem. Third, they code the program; this is where the instructor might interact very closely as each team explains precisely what the program is to do. Fourth, the program will be tested and debugged. Fifth, the students will document what they did.

    1. Understanding the Problem (Problem Definition and Solving)
    2. This is the most difficult part of programming. One reason for the difficulty derives from students not having experience at problem solving and definition. So much of education depends upon drilling students and testing them on specific skills (drill & practice) that when given a problem to solve, the students exhibit no creative approach. As has been pointed out, in the past decade or less, educators have moved toward developing problem-solving skills. They are allowing students to "play" constructively. This leads to creative thinking [Silvern, 1988].

      Another problem arises from the team not understanding its goal. If the team wants to create a knowledge representation on the subject of film, what can a computer program do in this area? The team may stumble upon the goal to the point that they overlook the content of their program. However, the goal must be known and understood before moving on [Jonassen, 1996]. This process exercises critical thinking and allows for transfer of knowledge. Studies have shown that problem definition can act as a general strategy for solving a problem whether in the area of computer programming or mathematics or some other content area [McCoy, 1990].

      Once the goal is clearly defined, then the team can begin planning the program. Let’s say they’ve decided they can learn about films by designing a program that finds out, based on certain prompts, how much a person knows about movies in general and what his or her favorite movie is. The students will write and structure the program to prompt the user for this information. Since educators need to develop their students’ higher order thinking skills, teams should be encouraged to explore, to take risks, and to apply their knowledge in new and creative ways [Yelland, 1995].

      A program such as Logo is excellent for younger students, while Pascal and Prolog might be more applicable for older ones. Pascal is being taught in colleges across the country in beginning programming courses. Another good program is BASIC, which has a relatively simple instruction set. It is most likely the best choice for beginning programmers [Bishop, 1988]. BASIC’s simplicity would make it an excellent Mindtool.

      However, since I am not a computer programmer and so am not familiar with these programs, except for the most basic of BASIC commands, I won’t get specific about which program would be used and how it would be coded. Instead this is to emphasize that no matter what the language, higher order thinking skills are required before even beginning the coding process.

    3. Designing and Planning the Program
    4. The team’s goal is to create a program that will ask a person some questions about the movie. So the students can now plan and design the program. This could be done in pseudocode or just plain English. The program will ask a person to input some information about a movie, the title, the date it was made, who was in it, and something about the plot. This simple statement may be written into code later, using the language decided upon. If the simplicity of this still escapes the students, they may individually write down the plans for an activity they do every day without thinking, such as brushing their teeth or making a sandwich. These plans will be evaluated for completeness by other members of the team. In this way they may begin to understand that all they are doing is writing the steps toward obtaining data, and this planning, as a component skill of problem solving, is a skill that transfers to general problem solving [McCoy, 1990].

      Also useful in the developmental stage is having the students create a free diagrammatic form to represent the program’s structure rather than a formal flowchart. After this they can create a more formal diagram, but their thought processes should not be restricted by the formality of flowcharts and algorithms at this point. Rather, they should focus on logical correctness [Nixon, 1993].

      Once the design of the program is well thought out, students can begin to be a little creative with the way data is requested, stored, and retrieved. It is important to the critical thinking process that whatever the students create, they do it through their own experimentation and play. Even when approached as a toy, as many children do with the computer, their "play" allows them to generate a new creative object [Silvern, 1988]. By creating their own knowledge representation using a computer program as a Mindtool, they will remember the learning experience longer.

    5. Coding and Debugging the Program

    Coding the program requires taking the pseudocode and, using whichever computer language has been chosen, writing the statements to make the computer perform the desired functions. Once the program is coded, students will test it and have others come use it. Much of the learning process takes place here, where students assess and analyze what the program is doing. It’s been shown that students with better logical skills will excel in this capacity. Logical thinking is a critical area for problem solving, although studies of the relationship between using a computer program and improved logical thinking skills are inconclusive. The major problem is the definition and measurement of logical skills [McCoy, 1990].

    Debugging is also an area where younger students may need more guidance from the instructor. While the creation and development of the original program might result logically from their "play" and experimentation, younger students seem less able to perform recursive tasks. Some authors have described younger children as lacking the ability to be logical or consistent in their reasoning. They may reach conclusions in a logical manner once they’ve been given concrete information, however, which is where the instructor can play a major role [Yelland, 1995].

  5. The Value of Programming Projects
  6. In summary, involving students in a project using a computer language will help them develop their critical thinking skills, including logic and problem solving. Students who have done such a project say they are pleased at having worked their way through an information processing problem from beginning to end. Teachers can provide a suitable vehicle for this purpose so that students are challenged intellectually despite their lack of programming skills [Nixon, 1993].

  7. References

Bishop, D. (1988.) BASIC Training. inCider, 6, 6, pp. 52-58.

Clements, D. (1986.) Effects of Logo and CAI environments on cognition and creativity. Journal of Educational Psychology, 78, 4, pp. 309-318.

Cumming, G. (1990.) K-Log: A tool for thinking, across the curriculum. Education, 110, 4, pp. 418-423.

Jonassen, D. (1996). Computers in the Classroom: Mindtools for Critical Thinking. Englewood Cliffs, N.J.: Prentice-Hall, Inc. A Simon & Schuster Company.

McCoy, L. (1990.) Literature relating critical skills for problem solving in mathematics and in computer programming. School Science & Mathematics, 90, 1, pp. 48-60.

Nixon, P. (1993.) Project report: The use of PILOT to teach information technology concepts. Computers & the Humanities, 27, 4, pp. 285-289.

Silvern, S. (1988.) Creativity through play with Logo. Childhood Education, 64, 4, pp. 220-224.

Tuovinen, J. & Hill, D. (1992.) Towards better strategies for thinking and programming. School Science & Mathematics, 92, 4, pp. 206-211.

Yelland, N. (1995.) Encouraging young children’s thinking skills with Logo. Childhood Education, 71, 3, pp. 152-155.