computer code != human language: Why coding can’t replace language education

So here’s a weird story for you. According to this source (and others), Kentucky state Senator Robert Givens has proposed that, in order to promote computer literacy, high school students should be allowed to use courses in computer programming to satisfy foreign language requirements. New Mexico wasn’t far behind with a similar proposal.

It doesn’t appear that the legislators are trying to enter a theoretical debate on whether computer programming languages should be called languages in the sense that they share sufficient characteristics to be classified in the same category as human languages like Spanish, Mandarin, Tagalog, etc. Instead, the motivation seems largely to be about satisfying a demand for programming skills, which Givens notes is projected to create one million jobs by 2020.

Nonetheless, it is the superficial similarities between the processes of learning to code and learning a new language (including the use of the word language for things like C++) that has allowed these legislators to suggest that foreign language education is a good place to insert advanced computer skills into an already packed curriculum. I might add that foreign language education is already on the decline in the United States in K-12 education and higher education. Thus, an area of education that is already facing extreme cuts will be further threatened by these proposals should they be successful.

Now, don’t get me wrong. Computers are obviously an extremely important tool, and I suspect this is especially true of anyone reading this right now. The ability to write code can be an important one. I find the ability to decipher computer code important both in my writing on this blog (when knowing HTML can be helpful for formatting purposes) as well as in my research where I utilize the computer language R for data analysis. These tools are a valuable aspect of my computer literacy, and I might even be better able to perform in my job (or have had other opportunities made available to me) if I had received further training in computer programming.

However, here is what I find concerning about this proposal. If foreign or modern language education were merely about learning abstract grammatical manipulations, then computer code would be fairly well-suited to act as just another set of grammatical rules. However, if one examines the goals of modern language education, it’s clear that computer programming is woefully inadequate as a substitute.

As a representation of what modern language educators are hoping to accomplish through the teaching of another human language, I will use the Modern Language Associations’ (MLA) 2007 report on the state of foreign or modern language education in higher education. This has been an influential report within the field that has argued for the value of language learning in contemporary undergraduate education. I should note that not everyone necessarily agrees with it, and that in many ways it is a call for reform rather than a summary of what already takes place in foreign language classrooms. However, the goals that these educators set forth make it clear why classes in computer coding cannot replace modern language education.

The principle issue here is what is often ignored when we reduce language learning to the memorization of a morphosyntactic system (or grammar if you prefer, for example, the rules of conjugation in Spanish), namely culture, broadly conceived. In the 2007 report, the MLA quotes Daniel Yankelovich:

“Our whole culture,” Yankelovich says, “must become less ethnocentric, less patronizing, less ignorant of others, less Manichaean in judging other cultures, and more at home with the rest of the world. Higher education can do a lot to meet that important challenge.”

The MLA believes, and I agree, that language education can play an important role in raising students’ cultural awareness namely because it involves the need to understand people who are in many ways different from us, who speak differently, who have different expectations about what is ‘polite’ and impolite’, and who value radically different things.

This has another important implication, namely that once you begin to view the world from the perspective of someone else with equal claim to being human, all of what we might think is simply ‘common sense’ or ‘the way things are and have to be’ become understandable rather as the cultural product of one human society. The MLA reflects on how these outcomes impact students of foreign languages:

They are also trained to reflect on the world and themselves through the lens of another language and culture. They learn to comprehend speakers of the target language as members of foreign societies and to grasp themselves as Americans–that is, as members of a society that is foreign to others. They also learn to relate to fellow members of their own society who speak languages other than English.

The important question is does learning computer programming accomplish this important goal? I don’t believe that it does. There is a lot to be said for what educational and practical benefits coding might have. Certainly, in learning to code, you will be asked to engage in unique forms of thinking in order to communicate with a computer.

However, and this is of the utmost importance here, you are never asked to consider or accept the values and worldview of computers. This is made particularly clear by the status difference between the computer programmer and the computer. Consider the example code below.

if( %in% L1.names==TRUE){

This bit of code from a recent research project of mine performs a rather simple function. It tells the computer to first look at the object and determine whether the string of letters it finds there is to be found in a list of names contained in another object L1.names. If that is the case, then it tells the computer to add the string “L1” (meaning first language) to the object prof.lang and then move on to the next task. If this is not the case, then it tells the computer to add the string “L2” (meaning second language) to the object prof.lang and then move on to the next task. “The next task” is defined through the sequential ordering of lines.

Although there are of course millions of programmers with far greater skill in the task than I possess, the point is that, as this example illustrates, the act of coding is largely a task of issuing commands in a way that is intelligible to the computer. My point is not that this is easy; indeed, it is quite frustratingly difficult at times as the computer is sensitive to details that I would expect a human to be able to gloss over (for example, if I had not placed quotation marks around “L1” and “L2”, the computer would have been unable to process my commands, although a human would have likely understood what I intended to say). I’m sure you found that if you’re not already a proficient user of computer languages that my code above was not immediately transparent or even necessarily straightforward (even though it uses English vocabulary).

The point is that, in communicating with the computer, I get to be the master. I tell the computer what I want it to do with little regard for what it would prefer. I also to a great extent get to define reality for the computer, for example, by defining “L1” and “L2” using my own operationalization. I don’t really have to struggle to understand the cultural context in which I issue these commands or the computer’s own historically-influenced understanding of these concepts because the computer has no rights and is merely a tool being used within my own quite familiar cultural context (at least until androids rise up and demand their rights). I do not have to earn the computer’s trust or cooperation in these matters; they are given to me on the condition that I wrote code, and it’s the computer’s sole task to process that code.

This is strikingly different from the task of learning and communicating in a new human language. When I wish to communicate with a human being in another language (and in English for that matter), I have to consider that person’s personhood, including the rights that they have and their ability to impose social consequences on me. I have to consider that their willingness to grant me attention is conditional on my being not only intelligible but also respectful and worthy of attention, in their eyes.

In this way, the act of learning another human language is undertaken in a social and political context that is entirely different from that in which computer programming takes place. This difference is key to understanding why modern/foreign language education cannot and should not be replaced by computer programming courses. Our social realities are marked by social difference, and we are not always in the position to impose our will on those who are different from us (nor should we be). Coming to understand our own and others’ values, communicative norms, and cultural practices as arbitrary, human-made preferences or customs is an important process in building a more just society (and one that is perhaps especially important for English speakers in the United States who enjoy a great deal of language privilege), one person at a time, and this is one of the principle goals of modern or foreign language education.

In light of this, in trying to find ways forward in the politics of education, we would be better served by attempts to find ways to have both computer literacy and the humanistic goals of language education rather than replacing one with the other.


Thanks to Nicole Pettitt for bringing the issue to my attention. Also, if you are wondering about the title of this post the “!=” is a common operator in computer languages that essentially means “is not” or “isn’t in the subset of”.  Hence, my title claims computer code is not a human language in the sense that there are meaningful differences between computer coding languages and human languages like Spanish, Mandarin, and Tagalog that compel me to exclude coding languages from this category.

Tagged with: , , , , , , , , , , , ,
Posted in Language and education, Technology and language
2 comments on “computer code != human language: Why coding can’t replace language education
  1. Chandra says:

    Is it too cynical of me to question whether these proposals have less to do with promoting computer code, and more to do with an opposition to the “encroachment” (as certain people might see it) of foreign languages and cultures into American society?

  2. Chandra, I certainly don’t want to pretend that the US is somehow welcoming of languages other than English (see the recent Coke ad controversy (,0,1361331.story). However, my sense is that the greater threat to foreign language education in the US is not jingoism but the ever growing marketization of education that views foreign language learning as a ‘luxury’ (especially given the prominence of English in the world) and would view computer language as a marketable skill. I believe that this is what will make the proposal appealing to people who are not part of the far right.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 465 other subscribers
Follow linguistic pulse on Twitter
%d bloggers like this: