Skip to content

Should We Teach Coding in High School?

February 24, 2020

Robert Sedgewick and Larry Cuban faced off today in the Wall Street Journal (WSJ) on the issue:


Should everyone be taught coding in high school?

Today we will discuss their recent comments on this issue.

Bob is a long-time friend of mine, so I want to say that that up front. He is a professor of computer science at Princeton. Cuban is an emeritus professor of education at Stanford. Note, I do not know Cuban but will call him Larry—I hope that is fine. Besides what they say in the article, Larry wrote a threepart series in 2017 on his own education blog, while Bob was associated with a 2013 White House-led initiative on coding in schools.

The WSJ article consists of ten short paragraphs by Bob followed by eleven from Larry. This is sequential structure—like with statements {S_1; S_2;}—or like having candidate town-halls for consectuive hours on CNN and such. What we’d like to see is a debate—like having parallel processes that must sync and communicate. Below we imagine one based on statements in the article.

A Conversation

The following is a paraphrase that tries to re-structure some of the article in debate format.


Bob: Teaching students to code will help them understand logical thinking and foster creativity.


Larry: You could say the same for teaching writing, math, history, and many other subjects. There is no research that shows that coding is better than other topics in this regard.


Bob: I am not aware of any research that shows that each topic that is taught now is better than coding.


Larry: Yes that is true, but consider how durable core education has been for our society. A century ago, industrial groups pushed the federal government to require vocational training in schools for particular industrial and agricultural skills and to establish separate vocational schools. Those undermined the broader goals of social development and civic engagement.


Bob: Technology is basic to much of society’s issues. Perhaps the Iowa caucus fiasco could have been avoided if they had a better understanding of computing.


Larry: I think the main argument for coding is being pushed by technology CEOs. They need more coders. The educational system should not just do what they need. Do you not agree Bob?


Bob: If we teach coding it seems that it may help in lessening economic and gender based gaps. In summary, in the last millennium, education was based on reading, writing, and arithmetic. Perhaps we should now switch to reading, writing, and computing. Coding includes arithmetic and a whole lot more.


Larry: I agree education should help students achieve their potential. I just do not see that coding will do this. And further, data and projections from the U.S. Bureau of Labor Statistics show only an 11 percent increase in IT jobs, from 4.5 to 5 million, between 2018 and 2028. That’s going out a whole decade and still IT will only be about 3 percent of all jobs. Health care will grow in that time by as many jobs as IT has total.


Bob: Those percentages hide much of the benefit. Only a fraction of the thousands I have taught—in person and online—work in tech companies. The rest have gone into a broad variety of careers. Coding literacy is becoming a necessity in health care, social assistance, business services, construction, entertainment, manufacturing, and even politics.


Larry: But what would you cut to make room? Foreign language? History? Arts or music? Or decrease other aspects of math and science? Curricula are already crowded with required courses and frequent testing.

Open Problems

What should the role of coding be in our society? Who is right?


[some word and grammar tweaks]

21 Comments leave one →
  1. February 24, 2020 5:27 pm

    The comparison between job growth in healthcare vs IT is interesting. Without knowing the source of that data or how it breaks down. I would guess the explosion in healthcare jobs is due to unrestrained growth in that industry of the worst kind. I’ll bet the explosion is not in doctors and nurses but administrators. If so, it’s not a good thing. Sure, the population is growing slowly and getting older but I suspect it will be the result of the continuing trend of health care taking a bigger and bigger chunk of everyone’s paycheck.

    On the other hand, IT is something we successfully export to the world. Growth in IT jobs represents growth in an important industry that we should seek to promote.

    An introductory computer class in which HS students learned the fundamentals of writing a computer program would be essential education in our modern world. It’s goal would not be to make them into computer programmers but just give them an introduction to the kind of logical thought processes involved. Just enough to give them a basis for deciding whether they want to learn more and a little understanding of something which powers our economy, science, and technology.

  2. February 24, 2020 6:23 pm

    I think teaching music would help children’s minds as much as teaching coding does. If you’re meant to be a programmer, you’ll end up being a programmer.

    • javaid aslam permalink
      February 25, 2020 4:00 am

      Very good point. Mental health should come first, before thinking along the line of utilitarian thinking.
      Besides, a training in logical thinking can be done in so many other ways, without incurring the overhead of learning coding.

  3. February 25, 2020 1:05 am

    Coding may not help children’s brain more than music/history/X does, but it has other advantages. It will be useful for a greater proportion of students in their future lives (anyone that goes onto study STEMM or works in economics/business etc ) than music. It is also perceived as “cool” so HS students are more likely to spend their efforts on it, rather than in a more traditional subject.

    • rjlipton permalink*
      February 25, 2020 12:17 pm

      Dear Maria:

      I do agree, with no data to cite, that coding should apply to a larger population of students than music. As one with no musical talent I would definitely had preferred a coding class rather than the music class we had. This is eons ago, but I still recall the music class as one I did not do well in.

      Best

      Dick

      • February 25, 2020 12:40 pm

        Everybody has *some* musical talent. Maybe you just didn’t have a good music teacher.

      • rjlipton permalink*
        February 26, 2020 10:49 am

        Dear Paul Reiners:

        Thanks for your kind comment. I do think my teacher was just fine. It was me. But I do love to listen to certain music, so that part is just fine.

        Best

        Dick

      • alanone1 permalink
        February 26, 2020 10:58 am

        Hi Dick

        If you like to listen to music then you have more than enough music in you to be able to learn to play quite a bit — this is both well known, and also has been shown many times in school districts that have special music programs that include all children — I grew up in one of those (a little town in Massachusetts) and every child got to be quite good (“talent” meant that a few children got astoundingly good).

        The methods used were both extremely effective and rather different than the poorer ones used by many music teachers (which have turned children away from playing music for life).

        This also something to ponder about mathematics and science. There are only a few examples of “really doing this well” with young children, but one of them was Project SEED in Pasadena some years ago (run by two extremely good CalTech professors for the entire city).

  4. frog101 permalink
    February 25, 2020 1:06 am

    In France, coding is introduced in math courses in middle school, with Scratch typically. There was a big uproar from math teachers a few years ago, who were unhappy to loose some content, and felt unprepared, but now it’s part of the landscape. Kigs learn what is a variable, an algorithm, through games. And that one cannot be sloppy, or it won’t work. And in high school there’s a switch to Python 3, still within math courses in the first year, then it becomes a separate topic within a renage of optional choices.

    • David J. Littleboy permalink
      February 25, 2020 9:04 pm

      This sounds like the right idea to me. My high school tried to teach programming (it had just been given an IBM 1130) and the math teachers were seriously lost, so I taught myself. To a large extent, coding isn’t really a big deal. The intellectual content, the concepts of computer science, though, is. That material can, and should, be taught along with the rest of math.

      FWIW, though, I’d guess that the old snark that “if Silicon Valley paid their programmers as much as they paid their MBAs, there’d be a lot more programmers” still holds true. From checking out the Python world (in particular, the near infinite amount of stuff teaching beginning programmers Python), though, it seems that the idea that anyone can program is alive and well. The mindset there seems to be that doing a Comp. Sci. degree is too much time and money, and one would be better off learning on one’s own or at one of the coding bootcamps. You get what you pay for, and since salaries aren’t enough to justify doing an comp. sci. degree, you get lots of self-taught programmers. Still, the book “Elements of Programming Interviews in python” that just showed up on the doorstep seems heavy on the basic Comp. Sci. (My MS therein is from 1984, and that’s getting to be seriously ancient history.)

  5. alanone1 permalink
    February 25, 2020 4:15 am

    I don’t like this argument. It is much more sound to start off by asking: what do children need to be helped to learn in the 21st century? Then find the most important of these, and start to put together a curriculum that relates all of them to each other as much as possible.

    It is very likely that one of our perceived needs would be to help children “to grow up thinking much better than most adults do today”. This gets us thinking about thinking and will generate a number of fruitful questions. By looking at great thinkers in the past, we can conclude that (a) knowledge really helps good thinkers think better, and (b) that learned methods for thinking make an enormous difference over just native cleverness (even with knowledge).

    I will look at the knowledge question ahead. First let’s look at “method”.

    By looking at “brain work” today, we can informally conclude that one of the least enlightened and weakest thinking subgroups comprises many of those who have learned to program. This is counter to beliefs from 50-60 years ago, but there is quite a bit more evidence now.

    Mathematics uses considerable abstractions and a kind of thinking that tries to preserve consistency of inference. This is a kind of “logical thinking”. But it’s worth noting that math in the large doesn’t care whether premises/definitions map to anything outside. So it’s a simple syllogism to wind up with the Holocaust by defining some people as “sub-humans” or “vermin”. In other words, just logical thinking can be quite dangerous in the large.

    One of the best candidates for method that can be extended into the large is Science — which, as Francis Bacon pointed out is the invention of heuristics and method to get around as much as possible our “bad brains”. He particularly singled out: bad genetics, bad cultures, bad languages, and bad academia (but had any and all else in mind as well). Since this year is the 400 anniversary of the book in which he put forth these ideas, I thought it would be germane to mention it here.

    Some of the “nice things” about science are that it is not absolutely sure, it knows that it is a negotiation between phenomena and our abilities to represent and think, it has many gradations of “confidence” (and some of these are literally life critical), and the larger methods and general diffidence can be adapted to many kinds of subject matter and phenomena.

    So, on this hand, I would start with the idea that helping children get really fluent with Science should be one of our critical aims of education today.

    To keep this as short as possible, let me just point out that helping children understand their own species and themselves is equally important in my mind, and there is some overlap between these two (e.g. anthropology, history). But there are also the arts, including music, theatre, and literature which are another set of paths to learn about us.

    After all of this is when I start thinking about -how-. As Bruner challenged us, we need to find “intellectually honest forms of every subject that can be taught at every age” and as Montessori taught us, can be embedded as the -culture- of a school (as opposed to being just isolated subjects taught as classes).

    This should tell us a lot about how to think about computing and children. For example, computing can make a tremendous difference on the kinds of real science children can learn at early ages, because it can embody a number of very powerful mathematical ideas in forms that children can deal with very easily (take a look at: http://www.vpri.org/pdf/rn2005001_learning.pdf to see how some of Papert’s ideas were adapted for “real physics” for 5th graders).

    It’s worth noting that — just as ordinary language can be used for both writings of great importance and great inanity — computer programming and its languages have the same property. They don’t help anyone with learning modern thinking per se, but can be tremendous vehicles in a great and enlightened curriculum. For the latter, we have the problem of Diogenes looking for an honest man. We can be sure there is such a thing, but just looking around to what most people are doing will not reveal what we are searching for.

    Diogenes’ search was a stunt, but our needs for helping children today go far beyond stunts: their abilities to think better than we can could save the planet, and if they are not up to it? …

  6. February 25, 2020 6:57 am

    The discussion left out that coding is an activity that, for many people with a technical bent, is fun. It gives people pleasure. Of course, theater is fun for people into drama and working on engines is fun for people in the tech center, but nontheless, that is a point in coding’s favor.

    • rjlipton permalink*
      February 25, 2020 12:14 pm

      Dear Jim Hefferon:

      Thanks for the comment. I really like your point about fun. Coding can be fun, can be amusing. I do think that is a cool point.

      Best

      Dick

      • javaid aslam permalink
        February 28, 2020 1:03 am

        Coding can also take your sleep of many many nights! And deprive you, at least temporarily, of your basic needs, of your mind and body.
        All this only to remove a tiny bug!!

  7. A.G.McDowell permalink
    February 25, 2020 1:55 pm

    I think that education takes up too many resources – both pupil time and money for the education system – for it to disregard producing economic payback, and therefore pleasing CEOs. But does this imply teaching coding in school? The most impressive coders I have come across were converted mathematicians of an age to typically encounter their first computer at University. The comparative economic payback of mathematics and statistics should not be neglected, either.

  8. February 25, 2020 8:05 pm

    I think the most forceful argument for introducing and emphasizing coding in education (and society) may be along the following:
    1. a general and ubiquitous tendency in education is to consistently broaden fields/areas and reduce/dilute low level details of any given subject at any early stage.
    2. coding represents a most significant new field of training as compared with the existent core.
    3. The coding field has great potential to be integrated or configured with some other fields of the core, such as math and logic. In some sense, adding or emphasizing coding can be viewed as a restructuring the general math and logic field (by diluting certain detail of the field).
    4. The weight increase of math/logic/coding in general early education is a also a consistent tendency. (there is a reason of life-time efficiency for this.)

    • rjlipton permalink*
      February 26, 2020 10:52 am

      Dear Charles Yu:

      I do like your comment about connecting coding with other areas. I do think that coding could help shape students view of other fields. Perhaps we should talk about this in the future.

      Thanks again.

      Best

      Dick

  9. February 27, 2020 12:16 pm

    We teach elementary-school students long division or how weather works because these are relevant, foundational concepts. At a time when most first graders can already navigate through websites and apps, why aren’t we teaching them how the Internet works or how to program a computer?

  10. February 27, 2020 5:40 pm

    I think the best reason to teach programming is that ideally it would teach precision of thought. Mathematics does this too, of course, but it’s harder to get into. Programming you can get your hands on. You can fool a teacher with fuzzy thinking, but not a compiler!

  11. February 28, 2020 2:03 am

    These debates are all fine in theory, but there is an important practical aspect – having teachers competent to teach coding well. The current system for preparing teachers (in nearly every country, but in particular in the US) already fails to produce enough well trained teachers in math, physics, and other technical areas. Even at the university level much programming is (poorly) taught by people trained as mathematicians/physicists/economists/etc. (and often self-trained as programmers) – I’m a typical example. To teach “coding” at an elementary level would require a serious effort to provide competent teaching personnel, and any discussion that omits this point is not going to lead to improved education of anyone.

    The fundamental difficulty in areas like mathematics and programming is that those competent in these areas can easily find work that is better paid, has better work conditions, and is more interesting than teaching.

Trackbacks

  1. Should We Teach Coding in High School? – Technical Coding

Leave a Reply

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

WordPress.com Logo

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

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s