$1.3 billion US were promised this week to promote computer science education over the next five years. As described by The New York Times, the White House has directed the Department of Education to provide $200 million/year (most likely in competitive grants). The next day, the Tech industry promised $300 million over five years. The grand total is $1.3 billion over five years. This is an enormous win for CS education in the United States, and we owe a lot to Hadi Partovi and Cameron Wilson of Code.org and Ivanka Trump, who are widely credited with instigating this funding.
So, what can you get for $1.3 billion? How much CS Ed will $1.3 billion buy you? I don't know for sure, but I'm pretty sure that you can't get every school or every kid in the United States.
Here's one way of thinking about it. In 2015, Mayor de Blasio promised to put CS in all New York City schools over 10 years for $81 million. CSNYC was charged with realizing that vision, building on three years of previous work in NYC schools. They decided that "putting CS in all NYC schools" operationally means, "Have a teacher able to run a significant CS learning activity for every student in every grade in every school." Preparing a teacher to run a significant CS learning activity is not the same as preparing a teacher to run a year-long computer science course. They figure that achieving this goal will take a full 10 years and cost $81 million. I have talked to the folks at CSNYC, and I trust their calculations. The biggest costs are paying existing teachers while they are learning CS, and possibly also paying for substitute teachers.
How much is New York City as a percentage of the whole U.S. education system? Depends on how you count. In terms of number of students, NYC has about 2% of the total U.S. student population. In terms of schools, it's a bit less, maybe 1.2% (e.g., NYC has 480 high schools, and there are 31,700 high schools in the U.S.). Let's call it 1.5% of the whole.
So what's the cost to do what CSNYC is doing for the whole United States? At the same cost rate ($81 million for 1.5%), that means it'll take $5.4 billion to do the same thing for the rest of the U.S. (assuming linear growth in costs, which is almost certainly wrong).
Now, that's the cost for reaching every student with a significant CS learning activity in every year in every school in the U.S. That's more expensive than providing a CS teacher for every school in the U.S. The data that I've seen from several states (and there are no data for all states about what high school teachers are teaching) suggests that most high school teachers who learn to teach CS only teach a single CS class (perhaps 30 students per year).
From the numbers I've seen, we probably could prepare a CS teacher for each and every school in the US for less than $1.3 billion. A typical low-ball estimate is that it costs $10,000 to prepare a high school CS teacher through summer classes, so $317 million would cover all U.S. high schools. There are about 67,000 elementary schools. Maybe it costs $5,000 to prepare an elementary CS school teacher. That's $335 million. So, for about $650 million, you can prepare a teacher for every school in the U.S. (and even less, when you consider that some schools already have CS teachers).
The biggest problem is teacher retention, which is a concern I blogged about when the NYC effort launched. There are very few teacher education programs producing new CS teachers, less than 10 nationwide. I do not know of any program to prepare new CS teachers in the United States with more than 20 future teachers enrolled. So we do not have a way to replenish teachers fast enough to replace those who quit, retire, or go to industry (which some states report is where they lose many of their best CS teachers). Code.org estimates that the average CS teacher lasts only three years in the classroom. At that rate, less than half of the teachers that learn CS in the first year will still be teaching in the fifth year.
Can we find enough teachers who want to teach CS (even if they are existing teachers) to cover the national need? Most teacher professional learning opportunities in the United States have empty seats -- we have a greater supply of CS for teachers than demand. 31,700 high schools (and many more elementary schools) is a very big number. Let's say that 25% of those high schools already have a CS teacher through the enormous efforts of NSF, Code.org, and everyone working in the U.S. effort to provide "CS for All." Are there 23,000 additional high school teachers who want to learn CS, especially when we already have a shortage of science and mathematics teachers? And will they work at the same rates as existing CS teachers, or will they demand higher wages?
Finally, let's consider that linear cost assumption from my earlier estimate. I'm estimating costs based on New York City, which is all urban. Most of the districts that Code.org is serving are urban. It is much easier to reach and provide professional learning to teachers who are just cross-town from a CS class. The costs will certainly be much higher to get CS education into rural schools and districts.
$1.3 billion is a huge investment in the future of CS education in the United States. However, it's only a down payment. Preparing CS teachers is not something you do once and you're done, not if you want to reach every school sustainably. The real trick is keeping a CS teacher in every school. And even that is not getting every student access to CS education. Changing the whole U.S. education system to include CS is a long-term and expensive challenge.
I am unpacking and extending this blog post here.