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.

Findings/Opinions

A culmination of our research efforts.

Findings

        In isolating the factors contributing to the state of Computer Science education, we must realize that many if not all of these factors are not isolated to Computer Science education; rather, they are symptoms of a much bigger disease plaguing the American education system at large. Teachers are underpaid and often have few resources to draw upon, school budgets are tapped dry as it is, there is always a desire for more appropriately rigorous curricula to engage students. To this end, when we seek to affect change, we cannot assume that Computer Science is somehow unique in having to deal with the factors that create a poor educational experience for high school students.

        Computer Science, however, is unique because of its undeniably pragmatic nature. If a student leaves high school unable to utilize a computer as a problem solving tool her future employment prospects are FAR less limited than if she were to leave unable to perform a chemical titration. Computer Science education provides a sense of empowerment, a tangible skill set, and a necessary problem solving tool whose need far exceeds that of many other subject areas taught in high school.

        Understanding that Computer Science is unique, though not isolated in the factors with which it must cope, is the only reasonable way to drive change. Fortunately, the lack of economic incentive in education has led to the creation of a self-selecting pool of individuals working to drive change in computer science education who are themselves driven solely by their love of computer science and education. These impassioned individuals, being of pure motive, are most apt to succeed in this endeavor.

| Top |

Our Opinions/Experiences

In order to add a personal touch to this topic (which we feel is important), the sections below outline our personal feelings on the subject of HSCSE in the context of our own recent experiences.

| Top |

Chris Chan

        My high school offered three classes in the department of computer science: Computer Essentials, Introduction to Pascal, and AP Computer Science in C++.

        Computer Essentials, a general education course designed to increase computer literacy, exposed students to various software tools such as Word, Excel, and PowerPoint. It also offered a brief history of computing.

        Quite possibly one of the most mind-numbing classes I have ever taken in my life, Computer Essentials lacked any sort of intellectual stimulation, depth, or rigor. If this is the sort of course that is offered at all high schools, Iím not surprised why most people are turned off from computer science before they even step foot into college. Stressing memorization over any sort of critical thinking, tests were based on the ability to recite certain key phrases from the book. For example, a test problem might have been: ìExplain how to insert a new slide in a PowerPoint presentation.î If my answer was ìClick on the Insert menu and select ëCreate Slide,íî I would have been marked wrong, because the proper command is ìNew Slideî rather than ìCreate New Slide.î This ridiculousness drove me insane.

        AP Computer Science, unfortunately, was not much better. The teacher had little understanding of the material. A victim of the AP language transition, he knew Pascal a lot better than C++. A large proportion of anything he ever wrote on the board was blatantly wrong, and much class time would be wasted just trying to fix his own mistakes.

        Uninteresting, text-based programming assignments were given about once every three to four weeks. Although we had every class period to program, most students ended up surfing the internet and then copying their neighborís code the day before it was due. Although this in and of itself was pretty bad, our high school had just switched to a policy of mandatory registration for the test. Thus, even the most unprepared of students still had to pay the registration fee and take the exam. I use a very liberal definition of ìtakeî; most people used the three hour period as nap-time.

        In the end, I would argue that my negative experiences in computer science were due to poor teaching. My computer essentials teacher had set such low standards that he sucked the life out of what could normally be interesting and stimulating topics. My APCS teacher, dwelling in a constant state of confusion and ignorant to the blatant plagiarism occurring around him, lacked the skills and knowledge required to prepare a group of thirty students for the standards of the AP A-level exam.

        Teacher-training programs are essential in the effort to improve computer science education. My high school definitely had the technological resources available; we just needed the right minds to teach us how to harness them.

| Top |

Andrew Parker

        From grades 9ñ12, I attended Belmont Hill School in Belmont, Massachusetts. It was a wealthy, coat-and-tie, all-male prep school with both strong athletic and academic programs. There were an incredible number of AP classes offered, far more than the local public schools, and strong self-motivated students took upwards of 3 APs per year. Many kids talented in the sciences took AP Bio in 10th grade, AP Chem in 11th grade, and AP Physics in 12th grade. This advanced science track was a well-beaten path by high school intellectual heavyweights. It was very difficult to enter the track after 10th grade, and if a student dropped out of the track after Bio, it was quite hard to jump back on board for Physics after missing Chemistry.

        The Computer Science AP was offered, and I elected not to take it. Though the title ìComputer Scienceî implies science, it did not satisfy a ìscienceî requirement; only the physical sciences counted. CS AP was just a computer elective class, which was not a requirement. It was a year long course like every other AP, so it was a big time commitment. Additionally, it had a bad reputation. The last time the class was taught, there were only 3 students: one kid got a 3 on the AP, another received a 2, and the third kid walked out in the middle of the AP in frustration. The students that took the CS AP almost never took another science AP in addition, and it was risky to veer off the well-beaten physical sciences advanced track. Also, it talking to my fellow classmates about the course, they reported that there were not ìtaughtî so much as they were ìmentored.î There were daily homework assignments, but they were never checked because they usually involved making progress on the latest programming assignment. Also, there were very few formal teaching sessions. All the students learned from a simple C++ textbook purchased from Barnes & Nobles; it didnít look like anything I couldnít do on my own time with a little bit of motivation and self-discipline.

        I think that this free-form class style, which relies heavily on self-motivation, is not well suited to the high school environment. Most kids, myself included, needed a teacher looking over their shoulders to ensure that the students were doing their daily assignments. Freedom and independent projects always seemed to beget laziness and slacking-off in my school.

        I donít regret my decision to not take the CS AP (or any other programming class in high school), but I do regret the stigma against computer science I had when I entered Stanford which was a product of the poor Computer Science offerings at Belmont Hill. I thought that CS was for kids that couldnít handle advanced science classes. Of course I was a convert after CS106a.

| Top |

Avichal Garg

        I attended Sycamore High School, a suburban public high school outside of Cincinnati, Ohio. My high school would be considered an anomaly when compared to the impressions we have of public schools nationwide. Thanks to its prime location, the school district received vast amounts of tax revenue from the upper-middle class housing and the numerous corporations located in the district. Our school offered an amazing plethora of AP classes: Art History, Chemistry, Biology, Environmental Science, Statistics, Calculus, American History, Computer Science, and several more. The top students in my class had often completed 10 or more AP exams by graduation.

        We had a mandated computer literacy requirement that focused on typing and basic application usage. To supplement this, students were offered classes in Quick Basic, Visual Basic, AP Computer Science (C++ at the time), and Java. All were taught by the same teacher for various periods during the day and were all offered as electives to any student desiring to enroll. I enrolled in the first of these, Quick Basic, in 9th grade as an alternative to the computer literacy class and was quickly drawn into the more advanced computer science classes, completing APCS by sophomore year.

        In retrospect, I feel that my experience was out of the ordinary, if not particularly unique.

        My teacher was a genuinely hard working man, who was formally a math teacher, that tried his best to keep up and train himself, though he often fell short of what we would have ideally desired. Initially his role was more of a mentor, but over the years, because the curricula did not change he slowly began to gain control over the various domains of knowledge he taught.

        I feel the primary reason he was able to do this, however, was the students in his classes. The students were incredibly self motivated and effectively taught themselves and the teacher. As a result, we as a school did consistently well on the AP allowing our teacher time to learn and acclimate to the curriculum. The students helped each other, often with one or two stand out students setting the bar extremely high for the rest of the class. When one student comes in after a weekend having made pong in Quick Basic, the rest of the class is motivated to move faster and learn more. This environment carried through each of the 4 Computer Science classes. Unfortunately for those of us going through the process independently, his role and involvement was minimal.

        The fact that I had 4 different computer science classes from which to choose is what makes this situation particularly unique. There were a core group of math teachers that recognized the need for these classes and pushed strongly to have them instituted. My school district was and is a math powerhouse, due both to the curriculum that had been instituted starting from the elementary level. We consistently win at the State level in Mathcounts, have numerous people score in the upper echelons of the AMC, AIME, and USAMO math competitions, and push overall academic excellence across the board. This spilled over remarkably to Computer Science, allowing our high school to not only offer these classes, but as a result of their being offered and the expectations from the other departments, the types of students that would enroll in those classes set the bar extremely high in Computer Science education.

        This sort of an environment, as conducive as it was to fostering intellectual growth among the academic elite, was a barrier to entry for the typical student. Few students outside the circle of 100 or so academic overachievers (out of a school with 2000 students) would consider taking computer science classes, so most left high school with remedial typing skills and an overview of word processing and spreadsheets. For the fortunate few such as myself who were exposed to computer science early on, this structure was a great boon. I left high school extremely confident in my academic abilities and with a sense of empowerment that I feel few public (or private) high schools provide. The freedom to delve into computer science to some depth only magnified by confidence and sense of empowerment in that particular realm and eliminated any hesitations I would have had from delving into any engineering or math program at Stanford.

        I feel that before moving forward to address how to teach Computer Science, we need to determine who we are going to teach and to what extent. Students at the high school level are very capable if put into the proper environment. Thus I feel that even more than teacher training, fostering a sense of motivation and drive in students through institutional and curricular means will be the most beneficial mean through which to affect change. Students will respond to the stresses placed upon them, therefore it is imperative we not underestimate our high school students' abilities. On the contrary, we must have faith that if challenged, they will respond appropriately, and achieve far more than we expect now, for no other reason than because we demand it of them.

| Top |

Chris Estreich

        I attended a private catholic high school that recieved incredible amounts of money from the wineries of the surrounding area. But despite having a wealth of resources and a number of dedicated teachers, only the bare minimum of Advanced Placement classes were offered, and therefore I did not have the opportunity to be exposed the to field of Computer Science (at least through the medium of the AP curriculum). In fact, my school did not even stress "computer literacy" of any kind. In retrospect, this seems odd because we had a state of the art computer lab (which rarely seemed to be used), and an ethernet network backed by a T1 line. While I understand the need to introduce computing at the high school level, and the positive repercussions that result, I feel that I am here (at Stanford as a student of Computer Science) today because I was self-motivated and completely open to new ideas and technologies (as well as challenges). Therefore, my lack of exposure to computing only served to make the realm of Computer Science that much more intriguing (especially in the context of Stanford's tremendous program). And thus I am inclined to place the burden of technological literacies onto students; we cannot reasonably expect the bureaucracy our educational system to progressively address this issue in the short term.

| Top |