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

What to Teach

Computer science education at the primary school level can run the gamut from short supplementary lessons designed to support coursework in math or science to full, independent curricula that cover the basics of programming and other topics. While college- and high school-level courses can move at a pace sufficient to cover several topics during one semester, elementary and middle school teachers must pick and choose topics and focuses that best support their overall teaching goals. Below are some basic models and their implications for classroom activities:

  • Teaching computer science to support math or problem-solving curricula: With this focus, teachers are most likely to be attracted to programming languages and teaching tools that are easily to learn. This way, students can get started with the classroom activity as soon as possible, without getting bogged down in syntax or logic. Programming languages such as Logo, which have very small instruction sets and immediate visual feedback, are generally the tools of choice for these sorts of activities. Logo widely has been used to support basic geometry instruction; since students are forced to construct rather than recognize geometric figures, Logo provides an alternative way to approach geometry that can help children understand and remember it better. When teachers are seeking to support general problem-solving skills, there are even more options available. For instance, Alice provides a completely-visual programming environment, in which students instruct virtual characters to be have without writing any code explicitly.

  • Teaching computer science to encourage algorithmic thinking: Here, teachers may be willing to take the time to teach a more complex instruction set so that students can make more expressive programs. At the most basic level, simply adding branches and loops significantly augments the types of problems students can approach. At the more advanced level, techniques like recursion empower students to solve almost any simple programming problem. The challenge for the teacher in this situation is to find the appropriate set of features for the level of students they are addressing. For instance, recursion clearly is not appropriate for the typical class of elementary school students. On the other hand, middle school students are likely to desire more powerful tools than the Logo turtle, even if it technically supports several advanced programming constructs.

    Interestingly, it is certainly possible to underestimate students when choosing an appropriate set of programming features. For instance, one study found that middle school students actually may be more attracted to computer science when learning about open research questions rather than basic syntax and algorithmic constructs.

  • Teaching computer science to encourage underrepresented groups of students to consider the field: Perhaps the most research in early computer science education has been put into helping encourage young women and minorities to consider computer science. Since many students develop their preconceived notions about computer science by the time they reach high school (Potell 3), it is important to convince them to consider the field before they reach high school. Typical outreach programs with this goal tend to provide focused experiences where members of the target audience are surrounded by their peers. Another important consideration here is the mode of learning. While boys may be attracted to designing video games, girls may be more interested in groupwork or artistic concerns; these sorts of facts can help tailor the curriculum to its target audience.

  • Teaching programming as part of a larger computing curriculum: One of the best ways to show students how computers work is to give them closer contact with the machinery behind their functioning than high-level applications can provide. In this case, the programming tools may be more basic to revel the complexity of the computer as a system. For younger students, BASIC can provide this sort of experience without the complication of an "industrial-level" language; at this level, this goal is very closely related to teaching students about the algorithmic thought process, since algorithms form the basis for most computing machinery. At other levels, the tools used can become more complex. For instance, the Spim MIPS32 simulator can teach late middle school and early high school students the basics of assembly language programming without the complication of an actual compiler; in the process, they gain a basic understanding of the microprocessor system that powers computers.

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