Computing Profession BLOG@CACM

Achieving CS for All Could Take Decades

Mark Guzdial assesses the outlook for students taking computer science classes at the high school level.

Posted
Professor Mark Guzdial

https://bit.ly/3HR5iYb December 21, 2021

My BLOG@CACM post last month was on the recent CS Ed Con (see the post at https://bit.ly/3eQHYNK). I was particularly interested in the new reports and data, like the 2021 State of Computer Science Education report (https://bit.ly/333nHS5). Overall, 4.7% of U.S. high school students were taking computer science in 2021. The state-level dashboards are important because K-12 education differs significantly between U.S. states. Most of the state dashboards tell us current enrollment, but that does not tell us about cumulative effect. I am grateful to Jeff Forbes and Leigh Ann DeLyser for helping me think through some of these questions on Twitter.

Here are two important questions:

  1. At any time, what percentage of current U.S. high school students have already taken computer science? That’s important if we want to create a culture of computer science within schools, where it is easy for teachers to integrate computing across the curriculum because there is a population of students who already have experience.
  2. By the time of graduation, what percentage of U.S. high school graduates have taken computer science? That’s important because, as Kirsten Baesler, the superintendent of Public Instruction in North Dakota, said (https://bit.ly/3EUkz8y) at the CS Ed Con, “There will never be a time where we use less technology.” As we use more computing in our society, computing education grows in importance to maintain a democratic society.

Just recently, the CS in California effort had a webinar whose title reflected the questions in my thoughts: “Are we there yet?” (https://bit.ly/3EX8HTf). The short answer is “no,” and the more detailed view is important because of the wide variation in access.

So, let’s say the CS enrollment in a given U.S. high school is 5% per year for all four years of high school. If that high school only has one CS course that counts in that statistic, the answers to those two questions range along a continuum between these two possibilities:

  • If all 5% are seniors (in their fourth and final year of high school), then only 5% of the high school student population ever takes computer science and only 5% of graduates have ever taken CS.
  • If all 5% are first-year students, then over four years, 20% of the high school population take the computer science class, but still only 5% of graduates each year have taken a CS class.

In general, the enrollment numbers are growing slowly. Texas offers a dashboard that goes back a decade (see https://tabsoft.co/3qLIXEd). Most demographic groups have grown in CS enrollment 2%-4% over the last decade.

Maryland has much higher participation (see their dashboard at https://bit.ly/3qVkGfg). Their current enrollment is 12% of high school students, and 26% of their high school graduates have had at least one computer science course. Maryland can reach these numbers in part because their high schools typically offer more than one CS class.

Having more classes helps with enrollment, but it is not strictly additive. Simply offering two courses does not automatically get you a doubling in graduates percentage. In many states, most of the students who take the second course already took the first course. For example, students who are in the Advanced Placement CS A course may have already taken the Advanced Placement CS Principles course.

If we reach 25% enrollment in each year, we might possibly be reaching 100% of all U.S. high school graduates. Let’s say we increase enrollment in CS by 4% per decade. If we’re at 4.5% enrollment now, it will likely take at least four decades to reach CS for All.

There is another way to dramatically increase both percentages: Require a computer science course to graduate. New York City schools, Chicago schools, and the state of Arkansas are making taking a computer science course a requirement in high school. That is a big shift, but highlights the inequities in the U.S. Only 2.3% of female high school students in Texas are taking a computer science course, but 100% take the course in the places that require it.

It is difficult to make a CS course a requirement for high school graduation. It takes a lot of teachers. As Miranda Parker’s dissertation (https://bit.ly/3JLavT8) showed, even if you have teachers, there are high school principals who do not see CS as a priority, so it takes a lot of convincing. And if you are forcing students to take a course that they hate, what goals are you achieving? My research group recently read a paper (https://bit.ly/3sYWpaK) by McGill, Decker, and Settle that showed how the effect of negative pre-college computing experiences was greater for female students than for male students. Get it wrong, and you can make the situation far worse in terms of long-term impact.

Instead, let’s consider two deeper questions: Why is it important for all students to know computing? and Is that goal best served by taking a CS course? I gave some talks in the fall where I offered answers to that question, and presented the argument in a post you can access at https://bit.ly/3qOFTqX. The vocational argument is a weak reason to teach everyone computing—not everyone needs to be a professional programmer. I offered three of the original arguments for learning to program: To support discovery, to support expression, and to support justice. That last one is the most critical argument for all students to learn computing. As Turing laureate Peter Naur argued in 1967 (quoting from Michael Caspersen’s paper at https://bit.ly/3JG8Eic):

“Once informatics has become well-established in general education, the mystery surrounding computers in many people’s perceptions will vanish. This must be regarded as perhaps the most important reason for promoting the understanding of informatics. This is a necessary condition for humankind’s supremacy over computers and for ensuring that their use do not become a matter for a small group of experts, but become a usual democratic matter, and thus through the democratic system will lie where it should, with all of us.”

We don’t have to have everyone take a class in computer science to achieve the goals Naur is describing. We can teach computing across the curriculum, and that is a better place to learn about applying computing in different contexts. Having many positive experiences in different (other than CS) classes is likely going to get us closer to the goals of “CS for All”—and may be cheaper and easier to achieve than getting all students into a computer science class. (This is our driving vision for Teaspoon languages; see https://bit.ly/3sVPUVU.) However, if we want to see the impact of integrated computing learning experiences, we will need different measures than enrollment in CS classes.

We must figure out how to measure what students know about computing and how they think about it, not just whether they set foot in a CS classroom. We’re measuring the latter now, and that drives efforts and policy in particular ways. At this rate, we’re not going to achieve CS for All in the U.S. for several decades. Let’s find some better measures to drive more achievable goals.

 

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More