Sign In

Communications of the ACM


Education: Reprogramming College Preparatory Computer Science

Photography by Miguel Borges

In early April, the College Board announced the cancellation of the Advanced Placement (AP) Computer Science "AB" course, the more advanced of two AP computing courses that enable students to study college-level content while still in high school. Citing low participation in the "AB" course, the College Board's communication to AP teachers declared its increased commitment to the Computer Science "A" course, stating, "Appropriate College Board committees will focus their efforts on improving and supporting the AP Computer Science A program, which will be enhanced during the next five years to better represent a full-year, entry-level college computer science sequence." This attention toward rethinking college preparatory computer science education calls critical attention to the educational crisis in this field.

This announcement should not have come as a surprise to those who have been following computer science education. High school computing courses have shown signs of distress for the past several years. Even for the more popular "A" exam, student participation has declined 15% since the peak enrollment in 2002. Though these participation rates have flattened out over the past two years, the number of exam-takers in AP Computer Science has failed to mirror the increasing number of high school students taking AP exams in other subjects. In fact, since 2002, the average number of students taking AP exams across all subjects has increased by 58%.

Part of the problem of low student enrollment in AP Computer Science can be attributed to the unique challenges teachers encounter in building and sustaining this course. As a former AP Computer Science teacher in a diverse urban high school, I experienced a sense of isolation in teaching a subject with little collegial support and a steep learning curve. As a social science researcher, I have studied the obstacles in creating and maintaining rigorous computer science courses in complex school structures. Since 2004, I have led professional development programs for Los Angeles AP Computer Science teachers and have encountered numerous challenges to the recruitment and retention of teachers who possess the requisite knowledge to teach this course. Over the past 10 years, I have witnessed the official AP Computer Science programming language change from Pascal to C++ in 1999 and from C++ to Java in 2004. Last year, the case study accounting for up to 25% of the questions on the AP exam changed from the Marine Biology Simulation to the GridWorld Simulation.

For any high school teacher, even those with adequate foundational knowledge and collegial support, keeping up with these modifications is quite a challenge. Few other subjects in the AP program, or in any high school course for that matter, encounter this level of fluctuation that has been demanded from AP Computer Science teachers. As a result, many teachers cannot or will not continue to teach this course and drop off as each adjustment to the course content is revealed. Without course and instructor availability, fewer students have the opportunity to learn any foundational knowledge of computer science.

Another cause of this low participation can be attributed to the low numbers of females and minority students who enroll in the course. Only 17% of exam-takers in the two 2007 AP Computer Science exams were females, representing the lowest rate of female participation in any AP course. Additionally, only a combined 11% of exam-takers were African Americans, American Indians, or Latinos. Clearly, it is difficult to maintain courses that attract such a low representation of the student body.

My line of research has determined that these low participation rates can be attributed to a misunderstanding of the computer science discipline by students, parents, and educators alike; a minimal number of computer science role models who are females or minorities; a representation of the course as difficult and boring; a set of teacher and counselor belief systems that make assumptions about who would do well in this course; a deficiency of student support outside of the classroom; a shortage of qualified teachers; a lack of availability of the course in high-minority and high-poverty schools; and weak and even disengaging pedagogical approaches in the classroom setting. Until we begin addressing these issues, the lack of diversity in computer science courses will continue to impact enrollment and limit the creativity that shapes the computing discipline.

A third cause of this low enrollment in the AP Computer Science program concerns the content of the courses themselves. The "A" course, for example, has focused almost exclusively on object-oriented programming methodology, algorithms, data structures, and abstraction. Though these topics are certainly at the core of many first-year college courses, they are not necessarily the most attractive topics to students who experience more exciting applications of computing in their recreational and academic domains. The current AP program fails to make explicit the connections between computer science and modern technologies that students are familiar with. Except for the most technologically engaged students, the AP Computer Science course falls short in capturing the excitement of this discipline for 21st century youth. However, the College Board's aim is to duplicate the most common type of introductory computer science content in higher education. Thus, university faculty must address this issue in their own curriculum to drive changes in the AP course and draw more students into the K–university computing pipeline.

Of course, other non-AP computing courses are regularly offered in high schools, such as Web design, animation, robotics, and desktop publishing. Students show more interest in these courses due to the easier entry points and the ability to integrate their own interests into the course content by designing Web pages, animations, and other creations of their own choosing. However, extensive qualitative research conducted by my colleagues and I demonstrates that the design of these courses typically focuses more on skill development and less on the theoretical underpinnings of computing. Correspondingly, these courses are often located in the vocational education department.

These research findings, detailed in our recently published book, Stuck in the Shallow End: Education, Race, and Computing,a reveal how examples of assignments in these courses include utilizing illustration software to duplicate yellow-page advertisements, creating simple animated characters using drawing programs, and creating static Web pages with basic Web development software layout templates. Rather than learning about the science that underlies the technology, students are directed to become users of preexisting software applications. As a result, these courses rarely qualify as college-preparatory électives, so few college-bound students enroll.

Recently, other promising courses have emerged that provide rigorous computing experiences using Alice software, media computation, and other innovative approaches to teaching computer science. Though these courses are very promising, most have not yet become institutionalized as part of district or state college-preparatory curriculum.

In Los Angeles, my colleagues and I, with support from the National Science Foundation (NSF), have spent the past several years committed to broadening the participation in computing among high school students, particularly minorities and female students. Due to the rigorous nature of AP Computer Science, and its status as a college-preparatory course, we originally organized our professional development programs and student outreach efforts around this course. The initial results of our strategy were rapid and dramatic; in three years, the participation of girls tripled, the participation of Latinos quadrupled, and the districtwide overall enrollment in the course doubled. But, due to the ongoing challenges with the AP course discussed previously, we are now changing directions and developing a new college-preparatory computer science course, "Exploring Computer Science." This effort, also supported by the NSF, presents a more engaging introduction to major computing concepts.

Building upon the curricular topics recommended by the ACM Model Curriculum for K–12 Computer Science, "Exploring Computer Science" blends major concepts relating to "Computer Science in the Modern World" (Level II) and "Computer Science as Analysis and Design" (Level III). This course includes units on human-computer interaction, problem-solving methodologies, Web design, programming with Scratch software, data modeling, and robotics. The curriculum adopts an inquiry-based instructional approach and will engage students in unit projects so they can apply their emerging computing knowledge to real-world problems. Diverse representations of computing concepts and computer scientists are integrated throughout the course. In addition, career options that utilize major concepts will be highlighted to address concerns about the nature of the computer science job market.

We must provide students an engaging curriculum that goes beyond programming and represents the imaginative, creative, collaborative, and complex character of computing.

Rather than attracting only a small subset of students, this course will be integrated into the college-preparatory curriculum across district high schools as an academic elective and will thus enroll a much larger group of students than the AP course. Ongoing professional development for teachers will accompany this new course and formative and summative research will document the strengths and weaknesses of this curriculum in introducing computing topics. We believe this comprehensive approach will help students and teachers understand and appreciate the multiple facets of computing instead of equating computer science solely with computer programming. It is essential to point out that this course development would not have been possible without a strong district/university partnership with Los Angeles Unified School District, particularly the district Director of Secondary Science and his staff.

This new course will also help prepare students who are interested in enrolling in AP Computer Science. I am hopeful the committee selected to redesign the AP Computer Science "A" course will also broaden its conception of what topics and pedagogical approaches should be integrated into the revised course outline in an effort to attract more students, particularly traditionally underrepresented groups of students, to the redesigned course. Maintaining the rigor of AP Computer Science is important, but the course should also be made relevant, meaningful, and engaging for a diverse body of students. However, as noted earlier, this committee's ability to reform the content of this AP course is constrained by the results of the College Board's survey of college and universities first-year course curriculum.

Strengthening college preparatory computer science courses is essential for the health of the computer science discipline at the college level and beyond. The number of newly declared college majors in computer science dropped 44% from 2000 to 2006, likely due to a lack of representative exposure to the field before college and misinformation regarding computing careers. Although the numbers of students studying computer science in high school and college has decreased over several years and only recently flattened out, the Bureau of Labor Statistics lists computer science as the fastest-growing professional sector in the next 10 years. In fact, of the six fastest-growing professions that rely on a college education, five require computer science degrees.

Given the importance of computer science to academic, economic, and security sectors globally, it is imperative that we begin rethinking the computer science educational opportunities provided to students at the beginning of the computing pipeline—in middle school and high school. We must provide students an engaging curriculum that goes beyond programming and represents the imaginative, creative, collaborative, and complex character of computing. This will likely increase overall enrollment, attract more diverse students to the field, and provide a much-needed image makeover to what it means to study computer science. However, this is certainly something that we cannot expect K–12 educators to do on their own. Reprogramming the computer science curriculum will require strong K–12/university partnerships, working the entire pipeline of computer science education.

Back to Top


Joanna Goode ( is an assistant professor in the Department of Teacher Education at the University of Oregon, Eugene, OR.

Back to Top


a. J. Margolis et al., Stuck in the Shallow End: Education, Race, and Computing. MIT Press, Cambridge, MA, 2008.


©2008 ACM  0001-0782/08/1100  $5.00

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

The Digital Library is published by the Association for Computing Machinery. Copyright © 2008 ACM, Inc.


No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account
Article Contents: