Nearly every day, some article crosses my radar about getting CS into schools. There are articles touting that it should count as a foreign language, that it should be math or science, or that it should be its own thing. Some articles suggest its career/job training and not a discipline at all. And those in the field will jump in and say that everything they learned in their CS program is useless, so don’t bother, just learn on the job.
It’s very frustrating to be in a field where a) most people don’t really understand it and b) most people think they do because they use it every day. So you get the people who think that if a student can navigate Facebook, they’re all good, no need to pursue the field further. And you get the people who want a specific language to be taught because the people they supervise use that language to code in. And you get the people concerned about keyboarding. Or you get the robotics enthusiasts or the app enthusiasts or the web enthusiasts. And if you could get all these people in a room to talk to each other, they might start to realize that a) they don’t know everything and b) maybe the field is bigger than you think.
One encapsulation of these struggles appeared in a recent Science Friday that left me frustrated, to say the least. I’m a Science Friday fan, but this is the first one where I’ve been an expert listening and I was frustrated, not by Hadi Partovi and Jane Margolis, but by Ira Flatow’s questions, which seemed so uninformed. About the only CS “myth” he didn’t pull out was the one about all the jobs being shipped overseas. You can almost hear Partovi and Margolis’ frustration at having to explain things that should have been evident from just reading either of their websites or any of the many articles that came out during CS Ed Week. The icing on the cake was when Flatow suggested “computer clubs”. I wonder if the two guests were thinking, “Hello?! We have those. The point is to make CS *not* just a club. That’s why we’re on your show.” And they did sort of take him to task, suggesting as I have before, that the people who join those clubs are the people who are already interested while the goal of CSTA and Code.org and Exploring Computer Science is to attract students who don’t know they’re interested.
Some legislators are on board with the spirit of this idea that everyone should have some exposure to CS, but after that, it goes a little awry. Some (Kentucky, New Mexico, and the US House) want to make it a foreign language requirement. Their hearts are in the right place. They recognize that students have little room in their schedules for anything else and so, if you make CS a language requirement, they might be able to squeeze it in. The problem is, it’s not a language. The French I learned through high school and college is still the same French they speak today. And the Latin I learned in grad school hasn’t changed. And both continue to help me with vocabulary and sometimes, communication with others. But the BASIC I learned in high school, no one codes in that anymore. Ira Flatow mentions FORTRAN. No one uses that anymore either. CS is not about the programming language you use. It’s about solving problems. It’s about figuring out a puzzle, using the tools available to you. Since I took CS, I’ve learned at least a little of 7 different “languages” and used countless tools to solve problems.
Math and Science teach foundational ideas that can be used in many disciplines. CS is the same. There are foundational ideas in CS that can be used anywhere, something Partovi and Margolis were trying to get across in their interview. CSTA, Code.org, and other organizations argue it should count as a Math or Science. Better yet, of course, it should count as its own thing, and it should be required for all HS students in addition to foreign language, Math, and Science, not instead of. Logic, one of the underpinnings of Computer Science, was one of the original disciplines. We spun that out into Philosophy and Math instead of CS. Maybe we should go back to our roots.