The NYC DOE has a program called CS4All which they say “will ensure all NYC public school students learn computer science” and that this will make students “better prepared to utilize computer science during their K-12 experience and after graduation.” Two weeks ago was their CSEdWeek, which encouraged many schools to bring “computer science to their students by hosting an Hour of Code or other CS community event”.
Computer science is defined by Wikipedia as “the study of processes that interact with data and that can be represented as data in the form of programs. It enables the use of algorithms to manipulate, store, and communicate digital information. A computer scientist studies the theory of computation and the practice of designing software systems.”
It is related to programming, but the two are most certainly neither one nor the same. I was programming for years before I was introduced to the basic ideas of computer science. Just as people can assemble their outfits without studying textile manufacturing, I can make useful programs with minimal knowledge of computer science.
The DOE says, “These skills will be key to student success in higher education, the 21st-century job market, and beyond,” and “Not only is computer science required for most modern careers and fields of study, it is also fun!”
I don’t know from where the DOE is getting this data, but it is incorrect and misleading. It may be true that most jobs require some computer use, but computer science knowledge is fairly irrelevant, especially when compared to the other subjects that schools are expected to teach, like arithmetic and reading.
Computer science is not what future citizens and employees need familiarity with. At most, they need to understand what computers can and can’t do, and maybe how they do it, and computer science education is a very inefficient way to do that. A cursory study of programming could do the same, and perhaps that is what the DOE means by CS4All, but when they have no standards to accompany their initiative, it leaves room for every school and every educator to interpret “computer science” as meaning anything, which would seem to me a very lazy attempt at educating the many students of this city.
The level of CS education that would allow someone to understand the inner workings of neural networks is unnecessary in order to understand that computers can recognize faces and that people should be careful of what information they let companies collect. Having students study computer science to prepare them to work with future technologies is like forcing students to learn how to build cars in drivers ed.
“Learning the basics of computer science prepares students for a world that is increasingly dominated by technology.” says the DOE. Here they are conflating computer science, computer programming, and information technology. Computer science, again, is mostly unnecessary for average workers in a technology dominated world. Some understanding of computer programming and the ways in which various technologies work would be useful however, but this is not what the DOE is promoting. They aren’t having a “Let’s all learn about how computers work!” week (that would include studying information technology and programming). They are having a “Computer Science for All” week. Teaching computer science so people can work with computers is akin to teaching students about locksmithery so they can unlock their doors.
Under the “What Does a Computer Science Education Look Like?” heading on the CS4All website, the description of what a CS class consists of is comically broad and more reminiscent of what you would find at a hackathon, than a computer science or programming course. One key thing to notice is that the answer to “What Does a Computer Science Education Look Like?” is entirely unrelated to anything that may be taught. Apparently, a CS education is only about what students do in the classroom.
The DOE’s CS4All initiative is not going to teach every student computer science, as the people behind it do not understand what computer science is. It is going to give some children some ill-defined tasks to do with computers. This initiative is an inefficient waste of resources, because it does not understand its own goal, and distracts from what is actually important.