Saving Computer Science Education from Itself

This past September, the mayor of New York City declared that all 1.1 million students in city schools would learn computer science within a decade. In addition to reading, writing, and ‘rithmatic, the mayor joined enthusiasts adding computer science to the list of essential skills for a 21st century education. His initiative, called Computer Science for All, is a public-private partnership with several high-profile venture capitalists and companies on board. As both a professor who researches technology in education and a parent who supports K-12 computer science, I urge us all to pause for a moment of discernment.


Face the Core Problem

Listening to the K-12 computer science education conversation, I hear history repeating itself once again. Proponents suggest that we know enough already about how to teach computer science to K-12 students. I find much evidence to the contrary. Firstly, we lack research-based consensus for how to teach computer science to children in grades Kindergarten through twelve. The Computer Science Teachers Association (CSTA) published a compelling post a few years ago that thoughtfully detailed why computer science in schools struggles in the United States. While there is much research about teaching computer science to college students and adults, studies on teaching it to school-age children are scant. Secondly, there is little agreement on what teaching computer science in K-12 settings consists of, as evident by the multiple standards and curricula aflutter in the conversations today. Computer Science for All refers to a curriculum created at UC Berkeley called The Beauty and Joy of Computing, which seems aimed at secondary school students taking electives. It also refers to the College Board’s Advanced Placement test for computer science, a single exam that appears to be becoming a rickety gate for determining proficiency. Let’s not forget that the International Society for Technology in Education (ISTE) has its computer science standards. Nor the CSTA’s own K-12 computer science framework. I should also remind readers here that the Common Core Standards, which for better or worse frames many states’ discussions of curriculum, instruction, and assessment, makes no serious mention of computer science whatsoever.

K-12 computer science education is rather shapeless in the US. It has pockets of well-funded and exciting work but lacks the solidity of purpose and strategy needed to truly bring computer science to all students.

Its amorphous state attracts many commercial and non-profit partners who believe they themselves can both support public work while building their businesses. When the public sector asks for help, the private sector responds swiftly with products, programs, and promises. This is where my worry begins to warm. Educational leaders have not offered sufficient guidance for what is meant by computer science, what research says about teaching computer science in K-12 settings (not only to high school upperclassmen), and what other countries have learned about how to sustain this work. In the absence of such clarity, any move schools or companies make to bring computer science to all could have reverse effects and weaken collective efforts. Enthusiasm and ambiguity must not continue to mingle so easily.

Here’s What to Do

I have two concrete suggestions for education officials leading the charge for K-12 computer science education across the country.

1. Take stock. I urge educational leaders to invite thinkers from across computer science education to an intensive strategy session. The goal of the meeting is not to walk away with a plan. It is to have a thorough list of better questions. Invitees might include: scholars in computer science education (start here), educational researchers who pay special attention to how reforms affect communities of color, representatives from ISTE and CSTA, leaders and participants from recent computer science education initiatives in the UK, non-profit and commercial leaders who have seen some success in their programs or products, and reserve seats for your loudest critics.

2. Ease up on “computer science.” Schools cannot endure another big new thing. As someone who worked in public schools for nine years and consults with districts and non-profits today, I am deeply aware that our schools are in turmoil. Not because their international test scores are low (which is a dubious claim that distracts us from other issues like the effects of poverty on education), but because the last decade of education reform has put schools in impossible situations. Look at my home state. New York has witnessed new learning standards, new tests, new teacher evaluations, and new teacher certification exams in just the last five years — all without sufficient dialogue with stakeholders. No, once there is a list of better questions to ask, promptly examine how K-12 computer science education can be integrated into existing curricula and school structures without championing its newness. Computer science can deepen students’ and teachers’ experiences in subject areas they already study. A brief example from the UK is helpful. In the US, when we talk about introducing elementary age children to computer science, the conversation tends to center on specific programming applications like MIT’s Scratch. When we look at the UK’s standards for elementary age children, they emphasize things like storyboarding. This makes sense because storyboards require students to break down the complexity of a narrative into discrete elements, which is a hallmark of computational thinking. When the conversation with schools becomes about introducing Scratch, one is likely to get skeptical or confused looks from educators. It gets relegated to an after-school club. When the conversation is about storyboards, teachers across grades and subject-areas can engage.

Further, computer science is fundamentally a linguistic practice: it is comprised of human, mathematical, and computational languages. (Check out this software theorist for a fantastic account; this one, too, is excellent.) If that is true, then we should be talking about computer science like we have talked about literacy practices in the past. Computer science should be woven into all subjects, including English Language Learning, not relegated to elective status. I don’t want my son to have a computer science class in eleventh grade. I want him to learn about computational thinking, coding, and algorithms in an elementary art class. I don’t want him laboring through a one-off unit on algorithms in math; I want him using Python to analyze Shakespeare’s tragedies. If K-12 computer science is reimagined as a necessary complement to all disciplines rather than a novel innovation in and of itself, students will be more likely to have equitable access to it and sustainability is far more likely.

Do It for the Right Reasons

A word to the wise. There is a tendency to justify K-12 computer science education as necessary for our children to be employable in the knowledge economy. It’s not uncommon to read claims that teaching children computer science ensures their place in the digital workforce — a benefit both to themselves and to companies. This claim is misleading. Working as a professional programmer, for instance, requires more than being exposed to coding and math. Programming languages change with some frequency. Different projects demand different skills. Being a programmer means knowing how to teach oneself new languages constantly and to work collaboratively with others. Communication and social-emotional skills are premium. An army of eighteen-year-olds who know JavaScript but cannot work well with others in an agile environment will do the economy very little long-term good. We cannot code our way out of poverty, as some would like to think.

Emphasizing economic need when making the case for K-12 computer science education also cheapens its real value to society. Our economy might rely on computer skills, but increasingly our system of government does as well. Speaking for myself, I want my child to be comfortable with computational thinking and programming because software is essential to the way our world works. Software mediates the way we help others, engage in activism, go to war, run our markets, create beauty, and find love.

I want my child to have a critical understanding of how our democratic ideals are both made possible and threatened by computer code.

And I want him to have ways of using languages — human, mathematical, and computational — to frame his stance on public issues so he can contribute to the discourse. If he becomes an engineer at some yet-to-be-founded technology company, fantastic. But that outcome is secondary to his participation in our democracy.


I’ve had the pleasure of working with different stakeholders in education for over a decade. I’ve witnessed their frustration when earnest ideas slowly fall apart. If we believe it is important that all children to learn computer science for the vibrancy of our democracy and economy, then we must take stock and honor the ways our schools currently serve our children. Rather than asking how we can expose students to computer science, ask how we can work with educational experts to teach teachers about the richness computer science can add to their craft. Rather than limiting our vision to the immediate needs of companies, read what theorists and scholars are saying about software in the world. Teach computer science as an extension of literacy, of writing. Imagine how computer science might resurrect the arts in schools. Finally, take seriously the charge to make K-12 computer science available to all children — equitably, sustainably — by focusing less on computer science.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.