New York City Mayor Bill de Blasio recently announced that the city is investing US$81 million to establish computer science instruction in every public school in the city by 2025.
This announcement is impressive, but hardly surprising to those of us who have been watching the computer science education landscape evolve rapidly over the last eight years.
Interest in computer science (CS) at the university level declined after the “dot-com bust” of 2000, but then came back with a vengeance in 2007. Since then, student enrollment in computer science has been increasing.
As a professor of computer science who has worked extensively to improve CS education at the K-12, undergraduate and graduate levels, I know there are many more who want to go into the field of computer science. The numbers of female students and racial minorities remain distressingly low. But often these students do not have the preparation or encouragement to succeed in college-level work.
So, what are some of the challenges of expanding computer science education in the K-12 public school system?
How computer science came back as a major
The start of the new millennium saw many ups and downs in the area of computer science.
Enrollment in computer science and computer engineering degrees peaked in 2000, at the height of the “dot-com bubble.” That year, the Taulbee Survey, a survey of university computing departments conducted by the Computing Research Association, reported 79,311 undergraduate majors in doctoral-granting institutions.
Despite the short-term tech downturn following the “bust,” the computing industry grew rapidly throughout the 2000s. So, by 2007, the computing industry was sounding the alarm about the dire shortage of trained computing professionals. Indeed, that very same year, the Bureau of Labor Statistics predicted that computing would be the fastest-growing professional sector, with a projected 10-year growth rate of 24.8%.
Starting in 2007, those of us in academia started to notice a few more students in our classes, and then a lot more.
In spring 2009, when I was the undergraduate program director for UMBC’s CS program, we held an emergency meeting to decide how to handle the fact that all of the sections of our required discrete math class had a waiting list.
We debated whether this was the start of a real trend, or just a blip.
Within a year or two, every computer science professor in the country knew it was not just a blip. As we scrambled to hire more faculty, increase class sizes, and try to find ways to accommodate our increasingly long waiting lists, the students just kept coming.
In 2014, the most recent Taulbee survey reported nearly 102,000 majors in computer science and computer engineering (and another 12,000 in information sciences, a category not reported in earlier Taulbee surveys) – an increase of a remarkable 120% in the seven years since the enrollment low of 2007.
Lack of instruction
But we face many challenges. Often students who want to major in computer science are not well-prepared to do so – they do not have the computational thinking or mathematical preparation to succeed in college-level coursework.
We are also not doing enough to broaden interest in computing: the percentage of female computer science CS majors remains very low, at only 14.1%, and several racial minorities are also significantly underrepresented (with African Americans representing only an estimated 3% of majors, and Hispanics representing around 7%).
According to Code.org, a nonprofit focused on expanding access to computing education in K-12 schools, 26 states permit computer science classes to count toward high school graduation (usually as a math, science or technology education credit), compared to only nine states in 2010.
No states, however, actually require a computer science class for graduation. As a result, the vast majority of students in the US do not take even a single computer science course throughout their K-12 education; only 25% of principals report that their school offers a CS course that includes programming; only 5% of high schools are certified to offer AP computer science; fewer than 40,000 students took the AP CS A exam in 2014 (representing fewer than 1% of AP exams); and most students leave high school with little knowledge of computational thinking or design.
Here’s what states are doing
The good news is that many states are moving rapidly to expand instruction in computing in K-12 education.
In 2012, Chicago announced a five-year comprehensive plan to establish computer science instruction in every public school, starting in elementary school. Since then, San Francisco and New York City have joined the ranks. Arkansas recently became the first state to announce that it would require every public and charter high school to offer computer science classes.
Even so, no state has fully adopted statewide universal K-12 computer science education.
On average, as of 2010, states had adopted only 55% of the 35 recommended learning standards developed by the Computer Science Teachers Association, the premier professional organization for K-12 computing education. Although all 50 states had adopted some elementary school standards (grades K-6), nearly half of the states had not adopted any high school standards (grades 9-12).
Moreover, the standards that have been adopted by states focus more on low-level skills than on abstract computational concepts, and therefore do not prepare students well for more advanced college-level computing courses.
Standards for teaching vary
An additional concern in broadening K-12 computing education is the challenge of finding qualified teachers.
Arkansas, for example, is scrambling to hire and train enough qualified teachers. As Arkansas Governor Asa Hutchinson stated at the time the new mandate became law, only 20 high school teachers across the entire state were actually prepared to teach computer science.
This gap between the desire for computer science classes and the availability of prepared teachers exists across the country.
Standards for teaching computer science are also either lacking or not consistent across state boundaries.
A 2013 report by ACM and CSTA states that only two states and the District of Columbia specifically require CS certification to teach computer science classes. An additional seven states require CS certification to teach Advanced Placement computer science.
In 13 other states, teaching certification in computer science CS is offered but not mandated – and in most of those states, the certification system is ineffective because programs are not offered, information is not readily available, the requirements are too complex to be understood and met by teachers, or there is no incentive to obtain a CS certification in order to teach CS classes.
Moreover, as demand for computer science classes increases, teachers in other fields with little computer science background are being tapped to teach those classes.
The computer science education community is working to develop more consistent standards across state boundaries.
In the meantime, other concerns are emerging. For example, requiring certification will exacerbate the teacher shortage problem, because so many computer science courses are currently being taught by teachers without computer science certification.
There is also a real and growing concern about attracting and keeping highly qualified teachers, since these teachers also get hired in industry.
While there has been a great deal of progress since 2010, there is still a long way to go.