Advantages of Learning CS
Teachers who have been versed
in the "three r's" model of primary school education (reading,
writing, and arithmetic) may be somewhat reluctant to
change their tried-and-true curricula to include computer science. While
such a large change certainly is an understandable concern, especially
for teachers who have not approached programming themselves, the benefits
of a more rigorous computer science education make the change worthwhile.
Among the topics and skills examined by students when they are actively
engaged in a computer science curriculum are the following:
- Stepwise refinement:
Significant computer programs are not written in one step. Instead,
computer science is typified by an iterated process of making small,
stepwise changes and then ironing out errors and inefficiencies. This
process generally is not covered in primary school curriculum until
much later, since most of the problems approached by primary school
students can be solved in a single step. For this reason, the process
of "debugging" actually can be a valuable addition to the
curriculum,
- Teamwork: Given
that most computer programs are made up of several separate smaller
pieces, teamwork and collaboration have become two essential components
of software development at all levels and project sizes. Students
will quickly realize that teams often get software projects done much
faster than individuals. Not only can groups simply write more lines
of code in a given amount of time, but also different group members
bring different skills to a project. For instance, in an elementary
school Logo project one student may be the designated artist or geometer
while another writes code.
- Curriculum support:
Beyond the geometry skills that Logo obviously can convey, programming
projects in general can be tailored to suit a particular curricular
need. For instance, after an in-class experiment with computerized
equipment collecting data, computers could write code to process or
display data. For a probability unit, students could use random number
generators to test their hypotheses about various probabilities.
- Algorithmic thought
process: Computer science is one of few fields that formalizes
the concept of an "algorithm." Once students understand
the detail and amount of steps necessary to describe an algorithm
to a computer, they are more likely to understand and accept algorithms
for other processes. For instance, while teachers who have not covered
algorithms in any significant way may consider algorithms like the
long division algorithm to be "stifling creativity" (Lewin
par. 4), when taught as part of a larger "algorithms" curriculum
long division can be studied as an example of a clever, efficient
method for solving a problem that is otherwise intractible.
- Comfort with technology:
Students that understand computer science are less likely to be mystified
by the inner workings of a computer system. This, in turn, can make
them more comfortable with computers and give them a better sense
for what they can and cannot do.
- Problem-solving practice:
While usual problem-solving exercises require students to propose
solutions which are then verified or disproved by a teacher, programming
exercises provide interactive environments in which students have
to figure out the problems with their solutions independently. This
way, students get more of a response than "yes" or "no"
and can receive more immediate feedback than a teacher addressing
a class of 20 to 30 students can supply.
|