Should Computer Programming Be Required in Schools?

The following is one of several rants I have on the topic of computer programming as a life skill vs a vocational skill.  I love swimming upstream on this topic.
An article in Quartz at  http://qz.com/340551  argues that it helps students know “how to think logically through a problem and organize the results”.  It applies to most coding languages so the skills learned are transferrable, maybe for non-programming work.  In my opinion, this article is pretty simplistic and nonlinear.

The initial premise that there is a shortage of programmers is not supported beyond the first couple of paragrdaphs. Mostly, it is another anecdotal showcase for pretentious students in a high profile private school program.
My reaction to articles on this topic is less about how they scare parents into forcing programming onto their children (get hip or get left behind!).  My reaction is more about what the impact of replacing other things from the curriculum and student mental bandwidth in general.  The deeper thoughts about the world around us and man’s place in it and how to elequently articulate these thoughts is being replaced by a series of if-then statements.  This is the scary scenario.
The value of computer programming?
Computer programming can be thought of in several ways.
View A: One view is that it is a natural transformation or evolution of human communication from the direct, siimplistic gutteral representation of personal or social nuances to an formation of complex models that incorporate vast amounts of data into multi-media representations.
Maybe someday, all communication will be between peoples software, rather than their minds and their voices.  As a form of communication it has several advantages.  By its basic Von Neumann principles, it is recorded, archived and reproducible. It captures history.  Another advantage is that it can identify and even correct inaccuracies or conflicting information dynamically. It naturally converges on points that are not conceptually flawed.
Some would call this condition a fault rather than a benefit as it places limits on the creative, out-of-the-box thinking from whence many great ideas evolve.   There are programming dialects that deal with levels of statistical certainty that can admit to less plausible concepts.
In this view, advanced programming methods is the evolutionary step that will sustain and advance our natural minds ability to productively communicate.  The nature of evolution is that it is not contrived, but rather a result of natural selection.  Forcing programming on students is an artificial means to producing a new universal language.  Think Esperanto.
View B: Another view is that computer programming by humans is actually just an interim bridge between systems and the people that use them.  In this view, the  bridge  can/will be replaced by AI.  That is, systems will program themselves. Presumably, humans will always control the meta-information, the purpose of the systems that are self replicating.  At that point, the demand for programming skills will drop preciptiously.
View C: Yet another view is that students must be taught programming as a means to learning logic and thinking skills. The basic elements of logic and reasoning are not taught through or require computer programming.  Absolutely brilliant minds, observed, analyzed, and articulated the human condition, both physically and metaphysically, centuries before an electron flowed through a man-made semiconductor.
The universal truths that have been articulated by great mathematicians, philosophers, political scientists, natural scientists, inventors, and musicians (Aristotle, Darwin, Michelangelo, Camu, Bach, etc,)  should be considered for what they brought to civilization and how these geniuses approached their subject matter.  If this were so, then the demand for learning a programming language would drop to the level of demand for auto mechanics.
These views are not mutually exclusive and are only vaguely described here.  My point is that the arguments for forcing computer programming education in schools are driven by fear and/or are narrow minded approaches to social engineering and thus, are bound to failure.  The longer term fallout of forcing a programming curriculum on students is lost opportunity to present the underlying human capacity  for thinking, communicating and creating.

You may also like...