|Situation Main | History | Current Situation | Existing Standards | Context|
At this point, few if any states have considerable computer science or programming requirements as part of their required elementary, middle, or high school curricula and benchmarks. For this reason, teachers seeking to align new computer science curricula with state education standards must be somewhat creative. For instance, below are a few state standards for math, science, and technology from a sampling of states that may be supported by computer science curricula:
More importantly, at this point, given the importance of understanding the underlying functionality of computer systems and the sorts of problem-solving skills students gain from a more formal study of computer science, states should redesign their curricula to place heavier emphasis on these topics. Fortunately, a few organizations have begun to lobby for this change, most prominently the Computer Science Teachers Association (CSTA), which has proposed a "K-12 CS Model Curriculum" as a model for school systems designing new CS standards. This curriculum includes a "Foundations of Computer Science" unit that lasts between kindergarten and eighth grade, representing a first step toward the integration of computer science into elementary and middle school coursework.
Specifically, the ACM curriculum argues that elementary and middle schools should provide students "with [the] first building blocks of computer fluency" (8). Most importantly, the CSTA recommends that students be formally introduced to the concepts of an algorithm in its own right; this contrasts with most existing math and science curricula, which only implicitly teach students about algorithms through the use of the basic arithmetic algorithms (addition, long division) and scientific methods. Specific standards in the K-8 component of this curriculum include:
While these curriculum standards certainly represent an important first step in realizing the need for more earlier formalized CS education, they fall short in terms of depth, preferring the study of several software tools, algorithmic concepts, and even ethical concerns over a deeper study of computing techniques. This sort of introduction is useful as a general overview but fails to prepare students for more advanced study. For instance, the CSTA curriculum then continues to describe two more advanced courses as part of its high school curriculum. The more basic of these, entitled "Computer Science in the Modern World," is designed for "all students, whether they are college-bound or workplace-bound" (11). Although this is certainly a worthy goal, and the curriculum for the course is carefully designed to appeal to a variety of students, some of the specific curricular points would be near impossible for students to approach if they have never been exposed to programming. For instance, the curriculum calls for students to be able to "manag[e] complexity through top-down and object-oriented design" (12). Students who are already bogged down in the syntax of a language complex enough to support object-oriented programming (OOP) are unlikely to really understand the motivations and advantages of using OOP, especially on a small project like the ones generally assigned in such a "CS 0" (preliminary for CS 1) course.
We propose a more ambitious curriculum that introduces programming concepts early and continues to reinforce and supplement the basic knowledge throughout K-8. While OOP and other constructs may be too abstract for elementary and middle school students, the basic concepts of branching, looping, storing data in variables, and devising algorithms are approachable at this level and begin to develop the fluency with computing necessary for students to succeed in more advanced CS coursework
Early Acquisition of Computer Science · ©2008 Justin Solomon and Peter Rusev