CS for All? Where Are We Going to Fit It In?

Last November, Virginia became the first state in the US to require computer science instruction – specifically “computer science and computational thinking, including computer coding” – at all levels K-12. For elementary students, teachers will be expected to integrate the concepts into the rest of their instruction. In middle and high school, students can choose elective courses in computer science but will not be required to take one.

Is this a good thing?

Lots of politicians, business folks, and other education “experts” have declared that CS for all students is necessary. Some say that the economic future of the country depends on training many more computer programmers, although the case for that is rather shaky (like that for the emphasis on STEM). Others seem to believe that CS would be beneficial to every high school graduate for a variety of rather murky reasons.

I certainly believe that everyone should have a fundamental understanding of how the hardware and software they use every day works. If we’re going to depend on computers to run our lives and the rest of the world, we should at least know a little about what’s happening.

However, I’m not sure these new requirements from the department of education will ever get that job done.

For one thing, these new Standards of Learning will not be tested which means it’s quite likely that, in most classrooms, the content will be added in when time allows. I also suspect that many teachers will be given the requirements with little or no help implementing them. Professional development of any kind is not given a big priority in most districts, especially for something not tested.

All of which points to a larger problem for not only CS for all, but also for STEM, the maker movement, design thinking, project-based learning, and the other “reform” ideas we have been pouring into schools in the past decade or two: there’s no room for them in the “normal” school day.

Coding is done in an hour. STEM lessons are done in after-school programs. Students go to maker spaces for special activities, in they same way they used to go to the computer lab. We bring out the projects after the “regular” work is complete.

If computer science and the rest of this is really important, it needs to be part of the standard curriculum. Every day for all students, not just on special occasions for the kids we know will pass the standardized tests.

Fitting it in shouldn’t be hard since much of the mathematics and science curriculums used in schools is crap and could easily be trashed (or at least minimized).

Replacing the classical, college-prep academic training that begins early in elementary grades with curiosity-driven, hands-on activities would not only allow plenty of time for CS and the rest, it would also make school more meaningful and interesting for students.

A win for everyone.

Look Behind the Graph

According to many excited retweets in my stream today, the number of females and “underrepresented” minorities taking AP Computer Science tests is way up. Like double up according to USA Today.

 

Now, I don’t want to rain on anyone’s parade (although a little rain today might be nice :-), but I’m also bothered by the unquestioned acceptance of statistics in the form of dramatic bar charts. So let’s take a closer look at that chart.

Notice that the bar to the far right combines two AP exams, the standard AP CS A exam, first offered in 1984, and the new AP CS Principles exam which was first administered in May of this year.

If you remove that new program, there is still a growth in both females and “underrepresented” minorities1 in the CS A class, just not nearly as dramatic as reported in the headlines. Even so, a very positive sign. It’s also positive that so many students are enrolling in the Principles course, which is far more accessible to those who are not necessarily looking at CS as a career path.

However, also missing from the analysis, both in the article and tweets pointing to it, is any information about how many of those new students actually did well on those AP exams. Five is the best score but three or four would also be respectable. We could discuss some value in earning a two.

I call this the Jay Mathews syndrome: attributing all success to just taking an AP exam, regardless of any measure of actual learning demonstrated by it.

Anyway, I mean absolutely no disparagement of the efforts to encourage more female and minority students to at least sample the study of computer science. And hopefully we’ll see this kind of steady increase when AP statistics are released next summer.

But anytime someone reports huge statistical increases, or decreases, especially in anything dealing with education, be skeptical and take a closer look. The story is likely much more complicated than the graph out front.

CS Is Not The Solution

Despite being “someone who’s been making software and Internet technologies for 20 years”, tech pioneer Anil Dash is “skeptical about ‘teach the kids to code!’ as a panacea for all of society’s ills”. Me too, and he does a great job of making the point.

To start with the obvious elephant in the room, many of the people advocating for these programs aren’t particularly knowledgeable about technology, or the economics of today’s tech startups, in the first place. (Most people making policy haven’t yet realized that there is no “technology industry”.) And most of the technologists advocating for these programs aren’t particularly literate in how today’s educational systems work, or what constraints they face.

Most of those policy makers also don’t have a clear idea of what students need to learn and be able to do before they move into the real world. Their concept of “school” is usually firmly rooted in the 1950’s, with their favorite “solution” – charter schools, STEM, standardized testing, coding, and more – grafted onto the standard framework.

Anyway, in the case of coding for all, advocates often make an economic claim, one that says American companies will be desperate for new workers to write software, with the numbers often in the hundreds of thousands. But even if all those vacancies come to pass, Dash says turning schools over to code training is not in the best interest of society.

If the effort to educate many more programmers succeeds, simple math tells us that a massive increase in the number of people qualified to work on technology would only drive down today’s high wages and outrageously generous benefits. (Say goodbye to the free massages!)

And at a more philosophical level, a proper public education, paid for by taxpayers, shouldn’t be oriented toward simply providing workers for a group of some of the wealthiest, most powerful companies to have ever existed.

However, Dash does believe that every students does need a basic understanding of technology literacy and computer science, saying that these concept, woven throughout the curriculum could be “a powerful way to empower the most marginalized, most needy people in society”.

Rather than turning every school into coding academies, he wants us to commit to some broad principles about how we teach computer science, including teaching computational thinking which includes an understanding of how “human concerns are translated into problems that computers can help solve”.

As we commit to broadly teaching technology, we must do a better job of addressing all of the personal, social, cultural, and civic concerns that arise with technology’s transformation of our society. Teaching CS as simply a way of filling a pipeline of employees for giant high-tech companies is not enough. Indeed, if that’s all we succeed in doing, we’ll have failed. But if we can show a whole generation of young people that technology and computer science can be one of the tools they use to pursue their passions, and amplify their impact on the world, we’ll have made a worthy addition to the canon of material that students use as a basis for their life’s work.

As someone who has studied computer science and taught programming classes, Dash’s ideas sounds a whole lot better than what is in most of the “computer science for all” proposals I’ve read.