This paper summarizes two recent reports that address important issues regarding the teaching of computer science in secondary schools. The reports were jointly approved and published by the Association for Computing Machinery and the IEEE Computer Society [1]. The first report recommends computer science courses for the secondary school curriculum, and the second proposes guidelines for a program of study leading to computer science teacher certification at the precollege level. This work should be of interest to high school and university educators, curriculum planners, and administrators.
The first part of the paper, Computer Science for Secondary Schools: Course Content, presents goals, objectives, and topic outlines for four courses that are proposed as models for precollege computer science programs. The courses are: Introduction to Computer Science I (Course 1); Introduction to Computer Science II (Course 2); Introduction to a High-Level Computer Language (Course 3); and Applications and Implications of Computers (Course 4). The first two are designed for students with a strong interest in computer science and the last two are general education courses.
Courses 1 and 2, used as a two-year sequence, were designed to prepare students for placement in second year computer science classes, either directly or through the Advanced Placement (AP) Exam [2]. In the meantime, however, ACM’s guidelines for the first-year university sequence have been updated and now include material significantly beyond that of the AP Course [3]. If ACM’s new guidelines are adopted by universities, and it is more than likely that they will be, students having taken Courses 1 and 2 in high school will only have covered about half of the material included in a first-year college computer science curriculum. Thus, high school students, after two years of intensive study, cannot expect more than one semester of credit. To make matters worse, students cannot even be certain of obtaining university credit for this work, since universities do not have a uniform policy on this matter. Given this situation, it is more than likely that even those few students (perhaps one to three percent of a school’s population) who are capable of pursuing college-level studies in high school will be reluctant to sign up, thus making implementation impractical.
In this reviewer’s experience, the very nature of high school, including its present curriculum organization and the time constraints under which students function, are factors that render the effective implementation of college-level computer science courses extremely difficult, if not impossible. Perhaps both high school students and university computer science departments would be better served with less ambitious courses, whose purpose would be to produce a larger number of well-informed students, with a thorough understanding of the concepts and principles of the field they intend to pursue.
The other two courses described in this paper, Course 3 and Course 4, are proposed for use by school districts that require a single half-year course for all students. Course 3 is essentially an introduction to the basics of programming. Given the changing nature of programming today, some educators are beginning to question the wisdom of setting up a mandatory half-year programming course as an answer to a general computing competency requirement. Such a course would most likely leave students with a false impression of what computer science is all about, and would certainly not prepare them for the diverse ways they will be required to use computers in college or in the world of work.
In contrast to Course 3, Course 4 is applications oriented. It includes information on how computers work, how they are used in our society today, and how their use affects peoples’ lives. This course appears to be very much in tune with today’s realities, and should provide students with rich and satisfying learning experiences. It is, in fact, so rich that it could easily be implemented as a one-year course.
The second part of the paper, entitled Proposed Curriculum for Programs Leading to Teacher Certification in Computer Science, addresses issues of standards, qualifications, and certification. The recommended curriculum includes six required courses and a number of electives. The required courses are: Computer Science I, Computer Science II, Introduction to Computer Systems, Organization of Computer Languages, Data Structures and Algorithm Analysis, and Methods for Teaching Computer Science. The electives include: Computers in Education, Computer-Assisted Instruction, Introduction to File Processing, and Fundamentals of Computer Organization. The objectives of each course are listed, with greater detail supplied for courses not commonly found in a university level computer science curriculum.
The core courses listed above represent a minor in computer science in most universities, and would certainly constitute excellent preparation for teaching precollege computer science at the more advanced levels. However, experience has shown that only about one to three percent of a high school’s population has the mathematical and computational maturity to successfully complete advanced coursework. A more pressing need at this time, therefore, is for programs designed to produce well-trained computing teachers to educate the other 97 percent.
Teacher certification is a key issue of national and international import. Discussions of the problems involved in producing teachers with computing expertise can be found in many computer education journals and proceedings of recent computer conferences. Proposed solutions vary widely, with some going further than the one presented here [4]. It is this reviewer’s belief that the success of many of the current efforts will depend upon closer coordination between the groups involved, and an open and continuing dialogue with the teachers themselves.