CODING BAD

Now that I have your attention from the clickbaity title, here is my blog (I don’t actually think coding is bad).

Popular culture portrays “computer science” as a person, usually a man, hunched over in the dark, hacking away at a keyboard late into the night. This is far from the truth. Coding knowledge should not be required of students.

One should understand the mechanisms by which the modern world operates and the limits of what computers can and can not do, but knowing how to code, whatever that means, is not a prerequisite to that knowledge. As Evan Donahue notes in his blog, A Hello World Apart, “the discourse of programming is only the technical jargon with which computer scientists address many of the very same questions that one encounters every day in the humanities”. Requiring coding proficiency of humanities students pushes the narrative that computer science is a locked discipline that requires a knowledge of esoteric syntax and what a Hash Map is in order to engage in any conversation about the digital world. This is far from the truth. Stuff like this is only a sliver of computer science:

#include <stdio.h>

int main()
{
int a,b,c;
int count = 1;
for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b+++21]; )
for(; a-- > 64 ; )
putchar ( ++c=='Z' ? c = c/ 9:33^b&1);
return 0;
}

Learning to program does teach procedural algorithmic thinking that is valuable. But I argue that is the problem solving that teaches this cognitive paradigm, not the writing of code itself. This can be honed in numerous other disciplines. Philosophy and Math teach abstraction and the construction of rigorous arguments. Linguistics and Economics teach modeling and breaking a problem into its composite parts. Nowadays, one can even learn concepts like looping and conditionals graphically using something like Scratch. Coding is a fantastic way to learn for some, but not everyone is the same. Allowing students the flexibility to choose the arena in which they learn important skills ensures that they are engaged and get much more from the material. Requiring courses of uninterested students ensures that they gain nothing from the class. There’s a reason so many people scrunch Spanish 204.

I write all this as someone who at any given time has upwards of half a dozen unfinished coding projects. I personally love to code. I like the problem solving. I like the satisfaction of having a showable finished product, and I have taught myself several languages towards that end. But I recognize that this interest is not ubiquitous. I don’t particularly like to sing or paint. Others likely feel similarly towards coding. But I do play the piano and like photography, and perhaps the coding-uninterested person has an untapped interest in mathematics. All this to say that there are many ways to hone the same part of your brain. Blanket requirements are hardly the best way to educate our youth.

Alistair

3 Comments

  1. Interesting argument, Alistair! I enjoy your consideration of how we can best “educate our youth”. What are we going to do with our youth? Surely they must be mighty… strong and mighty for sure. How should we go about this? About educating our youth?

    I think this video has some ideas: https://www.youtube.com/watch?v=rRZYRIC69Bw

  2. Henry,
    I always enjoy receiving correspondence from others equally concerned with this issue of extreme national importance. I agree that we should raise our youth to be strong and mighty. I might also add brave and able to detect satire to that list. Perhaps also educated. Best wishes to you on all your endeavors.
    Alistair

  3. Hi Alistair, I am very happy that someone finally have the same idea as I do! I strongly agree that the key part of computer science is definitely not unique in computer science, and can be found in other subjects and areas such as other STEM majors. I also enjoy coding, but after seeing some people struggle so hard, including me sometimes, I think there could be better ways for people in different areas to work together without everyone having to learn coding.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.