An Analysis of High School Computer Science Education (HSCSE)
Chris Chan | Chris Estreich | Andrew Parker | Avichal Garg
overview statistics factors solutions interviews international findings
Overview An introduction and high-level summary of our analysis.
Statistics A collection of telling statistics pertaining to the current state of HSCSE.
Factors The identification of 4 principal factors that affect the breadth and quality of HSCSE.
Solutions An synthesis of several proposed solutions that address the 4 contributing factors we identified.
Interviews A revelation of the real-world conceptions of HSCSE through the eyes of 2 ACM SIGCSE leaders/3 high school teachers.
International A juxtaposition of the status quo of our domestic programs with the established programs of several other countries.
Findings Summary of findings, and an expression of each of our personal feelings on the matter.

ï Dr. Chris Stephenson University Of Waterloo

ï Dr. Allen Tucker Bowdoin College

ï Dr. John Thurner Belmont Hill School, Belmont, MA.

ï Larry Donaker Berkeley High School, Berkeley CA.

ï Scott Friedland Palo Alto High School, Palo Alto, CA.

Interviews/Testimonials

To fully understand the current state of HSCSE it is necessary to get a grasp of the varying first-hand perspectives on both the strengths and weaknesses of current programs. To this end, we spoke with three high school educators that have experience with teaching high school computer science; additionally we were fortunate enough to speak with Chris Stephenson, the Director of the Computer Science Teachers Association, and Allen Tucker, Chair of Bowdoin College's Computer Science Department. Both Dr. Stephenson and Dr. Tucker were integral in creating the ACM SIGCSE sponsored A Model Curriculum for K-12 Computer Science.

Chris Stephenson, University Of Waterloo

The following interview was conducted via email with Chris Stephenson, Acting Director of the Computer Science Teachers Association. A faculty member at the University of Waterloo's Computer Science Department, she helped to develop a computer science curriculum for the entire province of Ontario.

1) What would you say is the most important factor in improving high school computer science education: improved teacher training? an improved national curriculum? shifting the cultural perception of computer scienceís importance with respect to the "hard" sciences? Something else?

        Unfortunately I would say it is an "all of the above" situation, as all of these are pressing issues. I would say, however, that shifting the cultural perception of CS as a "real science" is probably both the most pressing and the most problematic, since until people understand what computer science is, it will be difficult to advocate for the importance of a national curriculum or for providing teachers with the tools to teach it effectively.

2) We've examined curricula and CS education systems in other countries (Israel, Italy, Canada). Have you looked into how these or other countries that have implemented CS education? If so, which of these countries (if any) have it right and how can we learn from them?

        I was actually the leader of the team that developed the province-wide computer studies curriculum in Ontario (Canada) and I think it serves as an excellent example of a comprehensive curriculum that covers both computer science and computer engineering.

        I think that the curriculum developed in Israel is also interesting. It is exceedingly rigorous. You might also be surprised to know that South Africa is making great strides in their efforts to develop a national computer science curriculum as well.

3) Most evaluations of America computer science programs are negative. Do you see any positive aspects of America's computer science education (e.g. the Advanced Placement program, etc.)?

        Hmmm, I'm not sure what you mean by this. I find that computer science programs in the US vary markedly from school to school and I do not think it is possible to judge them overall as either positive or negative. Some teachers are doing a wonderful job engaging and educating students and others are decidedly not. How well teachers teach is often a result of how much support there is for computer science within a given school or district (do they have software, hardware, texts, time and opportunity for professional development?). It is a highly complex issue.

4) One reason America lacks knowledgeable, effective CS teachers is that they are usually whisked away by industry. What motivated you to pursue computer science education as opposed to joining industry?

        Okay, let's be blunt here; there is so much wrong with teaching as a profession right now it is hard to imagine why anyone might want to do it. Teachers in the United States are underpaid and overworked. They are subject to the whims of every administration and every ideology and of far too many programs that look great on paper but fail miserably upon implementation. The push toward standardized tests has eliminated the opportunity to exercise professional judgment and creativity and has reduced the joy of teaching and learning the drudgery on both sides. Teachers receive very little respect for their profession and they are the only workers I know of who are expected to do their job with no professional tools (they do not have their own computers, faxes, internet access, heck they don't even have phones!). In Oregon for example, a first year teacher spends $1000 of her/his own money on average to provide basic resources for the classroom.

        Like most people who remain in education in some way, I am here because I think nothing is more important, because I care about schools and students and teachers, and because it is all I ever really wanted to do. Go figure. :)

5) What does the ACM plan to do in the next years to pursue improved HSCSE?

        We have so much going on right now it is hard to know where to start. Here are just a few of our on-going projects:

1. We are in the process of forming a new professional volunteer association called the Computer Science Teachers Association. The Computer Science Teachers Association is a membership organization that supports and promotes the teaching of computer science and computer science concepts by providing opportunities for teachers and students to better understand the discipline and to more successfully prepare themselves to teach and to learn. Our goal is to begin accepting new members in January 2005.

2. We are in the process of disseminating the ACM K-12 Computer Science Curriculum which we developed last year. It is our goal to see this become a national curriculum.

3. In partnership with the College Board, we have launched the Java Engagement for Teacher Training project. In the last year alone, JETT has helped to create more than 42 teacher training workshops in partnership with universities. These workshops are intended not only to help high school teachers improve their Java skills and their knowledge of object oriented programming, but also to help foster on-going mentoring relationships that involve university faculty, graduate students and undergraduate students working with local high school teachers and students.

4. We are now in the process of developing a national repository of instructional and professional development materials for K-12 computer science to be housed (with its own easy-to-use interface) on the CITIDEL website. CITIDEL is part of the National Science Foundation NSDL program.

5. Every year, for the last five years we have organized a national Computer Science and Information Technology Symposium that provides a full day of professional development for high school computer science teachers. This event is presented in cooperation with a major educational computing conference. In 2005 we will actually be providing two of these symposia (St. Louis, MO Saturday February 26th, 2005 in conjunction with SIGCSE and Philadelphia, PA Saturday June 25th, 2005 in conjunction with NECC).

| Top |

Allen Tucker, Bowdoin College




Interview by email with Allen B. Tucker, Professor and Chair of Bowdoin College's Computer Science Department. Professor Tucker edited an October 2003 ACM paper entitled A Model Curriculum for K-12 Computer Science




1) How economically feasible do you think high school computer science education is?

        With public school budgets as stressed as they are these days, it is very difficult to add a new discipline like CS to the mix. The only practical possibility is to do it "by stealth." That is, to develop CS curriculum units that can be picked up by science and math teachers to teach in their regular biology, chemistry, and math courses. That also takes some work, since these folks are not typically trained to teach CS and many (most?) will not be willing. We need, I think, to convince the math and science teachers that CS principles belong at the core of high school education just as much as principles of science and math. That is a hard sell!

2) Has the 4-level curriculum you proposed in your 2003 paper been adopted in many schools? If not, what would you say are the main barriers to adopting your curriculum or other proposed curricula?

        It takes time for schools to adopt a new curriculum, especially given the cultural realities of the teaching specialties in secondary education. There are no standards in place in most states for training CS teachers, though some states are working on this (e.g., Arizona and New Jersey). Moreover, our model curriculum is not an implementation, it's just a model. "Proof of concept" appears in the appendices in the form of activities that have been successfully taught in some schools at each of the 4 levels. However, this is far from a complete curriculum - lots of work needs to be done to "implement" the model by developing, class-testing, and disseminating all of the activities that are suggested at all 4 levels.

        The main barriers to implementation, in my view, are the relative inertia of secondary school content standards and the absence of a complete implementation of the model alluded to in the previous paragraph. Work is now being initiated, however, to eliminate this second barrier through various projects proposed for NSF grants. Two that I know of are by Lenny Pitt (CS department at UIUC) and someone at the University of Nebraska. There are undoubtedly others. ACM is also making some inroads by starting the new CSTA, a national association for secondary school teachers of computer science (Chris Stephenson is the initial chair of this association). A good Web site to visit for more information about CSTA is www.acm.org/education/k12 - you've probably already been there.

3) One big gripe about computer science education is that the teachers lack the knowledge base required to work effectively. What do you think would be a good solution to updating teacher's knowledge bases?

        State level standards for teacher education in CS need to be established in all 50 states. Once a few key states begin doing this, I think the rest will follow. Those standards need to be seriously implemented in schools of education, and a new corps of CS-trained secondary teachers needs to be created. This is easier to do in a weak economy, since these teachers would be more likely to take jobs in industry when the economy is strong.

        Marcia Linn, former Dean of the School of Education at Berkeley, would be a good person to talk with about this. She was a key player in the development of the IT Fluency Report (NAS 1999) and she knows the issues well.

4) Do you have any thoughts about the recent changes in the Advanced Placement curriculum, more specifically, the transition to Java?

        I think the AP curriculum serves too small an audience to serve the broader needs for CS education in secondary schools. It is viewed as the domain of a few "geeks" who are especially good at programming and are college bound. That is less than 1% of the HS population.

        However, on its merits, I think that the switch to Java in the AP curriculum will be a challenge at best. Java is a monster of a language, and unless there is a HS-friendly subset defined (much like the C++ subset that Owen Astrachan's group did in the mid 1990's for the AP), I'm afraid the switch to Java will drive even more people away from AP CS. I would rather have seen a simpler, more accessible and literate language, like Python, selected.

5) Our professor argued that outsourcing has contributed to a decline in high school CS enrollment. A high school teacher we interviewed disagreed, claiming that lack of CS enrollment was due to the fact that it's viewed as an "elective," inferior to the physical sciences such as biology, physics, etc. Would you tend to side with either, both, or neither of these views?

        I think there are a lot of factors contributing to a decline in HS CS enrollments. 1) the view that "CS = programming" makes it uninteresting to those who don't think they will be good at programming or will attend college, 2) the absence of a trained teaching corps who have CS as their primary academic interest, 3) the absence of a complete curriculum, with textbooks and supporting laboratory materials, 4) the absence of state-level curriculum standards in CS, and 5) the pressure to do IT in support of the other sciences gobbles up the marginal $$$ that might be better spent on teaching computer science principles. There are probably more...

6) What inspired you to work in K-12 CS education?

        I've always felt that the big gap in CS education in the US is a handicap to our educated public, especially as we enter the 21st century. Most other nations have CS established in their K-12 curricula, and the US is seriously behind in this regard. My personal commitment to curriculum design has extended over about 25 years, mostly at the collegiate level, and so this K-12 model curriculum effort seemed to be a natural activity for me.

| Top |

Dr. John Thurner, Belmont Hill School, Belmont, MA.

1) Is Belmont Hill helping students prepare for the new Java AP. If so, how has this experience differed from preparing students for the C++ AP?

        We do not have any students signed up for programming of any kind this year.

2) In what direction would you like to see the Computer Science AP develop? How could the curriculum be improved?

        Although the theoretical, algorithm and data structure, case study curriculum clearly meets many colleges' first year computer requirements, our students find it boring and too theoretical. If the goal is to attract more interest in the subject, then a more practical graphics stimulated curriculum might work. Robotics, graphics, hardware interfaces, etc. might be more compelling. I know that many of these topics are included in engineering school first year curricula and were the foundation of the GCSE curriculum in Great Britain.

3) Have you found situations were you have needed to refresh or update your knowledge base in Computer Science to stay fresh with changing curriculums and technology?

        Since we do not teach AP CS on a regular basis, I find myself relearning much of the curriculum each time I teach it.

4) How have you managed this process?

        Each time the language changed, I attended workshops at Colgate University on how to teach the material. These workshops were conducted by Chris Nevison of the Colgate Comp Sci/Math department.

5) What other computer science classes does Belmont Hill offer?

        We offer individual programming courses, but have seen demand drop to 0 over the last few years. We do have a Graphics course that emphasizes digital graphics and web design - this course is heavily subscribed. We have a Computer Applications course that focuses on Word, Excel, PowerPoint, database use and also has students each year. We are interested in broadening our offerings to include some form of robotics, but this is still in the developmental stage.

6) What skills/applications are taught in these classes and what is the major motivation for emphasizing the skills that are chosen?

        The primary motivation for taking these courses for our students is to meet a specific need. They are interested in becoming skilled users of the applications that they use at the school. They also are interested in broadening that understanding to include web design.

7) What are the impediments to Computer Science study at Belmont Hill School?

        We find our students are front-loading their required courses to adapt to the fact that college applications are going out earlier. Students who used to take the computer courses in the 10th grade are now deferring to 12th grade or not at all. Also, there is a relative comfort level with the technologies we use at school that makes our students think they are skilled users. We will soon be raising the bar through more rigorous expections in the classroom. We hope this will shake some of the less skilled users out of the trees in time to make them proficient by graduation.

8) How do you insure that all of your students have the technology competencies required for life after Belmont Hill School?

        We have an explicit plan in place called the "Cressey Plan". This plan provides for the teaching of technology competencies by department. Each department is assigned specific areas of responsibility that are reviewed periodically by the Academic Policy Committee.

| Top |

Larry Donaker, Berkeley High School, Berkeley CA.

Summary of the interview, which was conducted over the phone.

        Over the past 5 years attendance in CS classes has dropped noticeably (in 1999, there were 30 kids taking AP CS, but in 2004 there were only 6 kids enrolled in the class). This downturn is not correlated to the recent downturn in the CS economy and recently unfavorable job market (offshoring of jobs in CS). Instead, the downturn has to do with a new Berkeley Public school policy. In the past kids could take as many classes as theyíd like per semester. However, the school board recently ruled that a student cannot take more than 7 classes per semester in order to ensure that students do not overload their schedules. As a results, students prioritize other classes such at math and science over CS and do not take CS until 12th grade, if at all.

The Berkeley class offerings in CS are as follows:
-Computer Programming (1 Year);
-Advanced Placement Computer Science (1 Year);
-Advanced Programming Project (1 Year);
-Computer Animation (Qualifies as an art class too for the UC system);
-Fundamental Computer Literacy;
-Publishing to the WWW;

        The UC system gives credit to programming classes under the heading of "Advanced Mathematics".

        This differs drastically from the NYC school system (no AP classes are offered there, if you want to take college level courses, you must take them at Hunter College or another public college in the city where the classes are subsidized by taxes).

        The difference in these systems is very interesting because AP classes consist of daily homework assignments and teachers ensuring that you are staying on top of your work, whereas taking classes in college are much more independent self-motivated learning environments. Both sides have pros and cons.

        Berkeley used to offer the C++ AP and transitioned to the Java AP smoothly. Their motivation for offering the languages that they choose is to teach towards the AP exam. They changed languages when the AP changed languages.

        By comparison to Los Gatos/Saratoga, this school doesnít waste time with any intro programming classes. There are adv. Programming classes. The only people that can take these classes are those that are self-motivated to learn the necessary skills on their own time at the introductory level.

        Berkeley takes a similar approach to the extent that the AP class at Berkeley is more like ìguided mentoringî than teaching. Larry guides the students as they learn their the curriculum on their own. This past year 2 students got 5s and 2 got 4s our of a total of 5 students. In the advanced programming project class, the class meeting time is just an allotment of time for the students to work on their own projects, there is no formal teaching at all.

        Larry uses the curriculum from www.ict.org. Itís a solid source that lots of public schools trust. He uses online documentation and programming examples to update his knowledge base and keep current with changing technologies.

        He highly advocates that students take trig before they program because it is most kids first exposure to the process of writing logical proofs that must take a specific structure and order.

        He finds the AP ciriculum dry, as does the students. Many students will skip the AP in favor of doing their own independent project and Larry highly encourages this activity. The payoff and acquired knowledge is far more valuable in the long run.

| Top |

Scott Friedland, Palo Alto High School, Palo Alto, CA.

1) Is Palo Alto High School helping students prepare for the new Java AP?

        Yes. I'm the AP CS Java instructor.

2) How has this experience differed from preparing students for the C++ AP?

        I can't answer this. A different teacher taught the C++ AP.

3) In what direction would you like to see the Computer Science AP develop?

        I don't know yet. I'm very new to the curriculum.

4) Have you found situations were you have needed to refresh or update your knowledge base in Computer Science to stay fresh with changing curriculums and technology?

        Yes.

5) How have you managed this process (of updating your knowledge base to stay current)?

        Web resources, previewing various textbooks and using AP prep books.

6) What other computer science classes does Palo Alto High School offer?

        Beginning Java and next year they'll also offer advanced java.

7) What skills/applications are taught in these classes?

        Beginning java emphasizes writing basic methods, definitions of terms, and proper formatting. Advanced Java is a post-AP course which is project based. They'll complete several major projects designed to be full-featured applications.

8) What is the major motivation for emphasizing the skills that are chosen?

        To give a comprehensive look at what Java has to offer as a programming language.

9) At what years are these classes taught?

        Any of the courses can be taken by a student at any year provided they have met the prerequisites. APCS requires Beginning Java and Advanced Java requires AP CS.

| Top |