Legislators in Florida have put forth a bill that would encourage high school students to take computer science classes by allowing them to earn foreign language credits after obtaining technical certifications. While their goals are laudable, their execution is flawed. As a recent Vox article pointed out, programming languages are completely different from natural languages. Computers and the code that powers them are literal, emotionless, strict, and free of nuance or ambiguity. Human language is anything but. This is not to say that code cannot be artful, clever, and beautiful, but to think of learning code as a substitute for learning a second language completely misunderstands the point of learning both coding and foreign languages in the first place.
Learning a foreign tongue is likely the first exposure most students have to thinking critically about how languages work and how they have developed, with imperfect and sometimes contradictory rules, to express the range of human emotion and experience. It provides a window into new histories, literatures, and culture. And it helps students to better understand the grammar and structures of their native languages. Who among us can say that they had a thorough understanding of the subjunctive mood or the present perfect before encountering it in a foreign language class?
By contrast, you mostly just have to give lists of instructions to computers. Even if programming languages contained the same history, complexity, and richness of human language, the closest analogy to a programming class in foreign language instruction would be a class in which one only read and composed how-to manuals, a literary genre that is not known for its stirring prose. And Java certainly never helped me understand the pluperfect.
None of this to say that learning to code is a dry, boring, or unfulfilling pursuit. As a software engineer with a master’s degree in computer science and a bachelor’s degree in French, I’ve spent plenty of time on both subjects and find them fascinating and fulfilling in their own ways. While perhaps not everyone needs to be conversant in the command line, learning to code and eventually pursuing careers in computer science are certainly pathways that should be open to high-school students.
My primary objection to this particular programming push lies in the other studies that it could be displacing. Programming has much more in common with math and logic than it does with actual language-learning, so why not design a math curriculum that incorporated programming instead? Many people have trouble connecting with high school math for various reasons, including feeling that the material is not relevant to real-world pursuits. What if students wrote programs to calculate derivatives or perform matrix multiplication? Or students could look at the plethora of online data sets and write scripts to analyze them when learning statistics.
Measures like this could not only promote computer science education but also help to spark students’ interests in other math- and science-related fields while giving them powerful skills to apply to those disciplines. This also serves to abstract away another sticking point of high school math—phobia of numbers. By focusing the essential logic and processes of mathematical problems, students wouldn’t need to get bogged down in pages upon pages of numbers, arithmetic, and “showing their work.”
Foreign languages and programming languages both belong, without question, in our schools. But the presence of the word language in their names is about where the similarities between the two subjects end. Students need to acquire technical skills, to be sure, but we shouldn’t stymie their opportunities to acquire human skills in the process. If we want them to grow into full, well-rounded individuals, we shouldn’t be encouraging them to talk to computers rather than one another.