Benefits Main | Advantages of Learning CS | Relevant Research | What to Teach | Success Stories

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.

Early Acquisition of Computer Science · ©2008 Justin Solomon and Peter Rusev