Teaching students to code

I’m sure at some point you’ve have read or heard about teaching students to write code as early as high school. In Chicago, they almost made it a requirement for your high school diploma. Microsoft also has the Hack the Classroom event.

I understand why they want to do it, to give students future skills, but the problem I have is, not every student wants or can learn to write code. I’m not putting down those students, we all excel in different areas.

I don’t mind having high school programming courses, if those courses remain as electives, and are properly structured. On the surface it may seem easy, because anyone can declare a string and print hello world or write a function and pass data, but when it comes to the advanced topics, for example, data structures and algorithms, will they put in the effort to do it?

Want do you think? Is the whole teaching high school students CS overblown? Do you consider it a necessary course for the future?

1 Like

I think that mandatory basic programming in school is good.
Information technology plays an increasingly important role both in society and for many jobs. Even for students who plan to take jobs which do not require programming (assuming that they already know this), it is still an important “background” knowledge imho.
Schools also have art, music and literature as mandatory classes (at least in Germany), even though some students are not interested in these topics and the majority of students won’t need this for their later jobs just because of this reason - it is part of the general higher education.


I think it is a good idea if done correctly. It is important to separate the tangible from the intangible here. The tangible thing they get out of it is some knowledge about programming, which may or may not be helpful for their future (likely will be in at least some minor capacity). The intangible benefit is the stuff that you get while learning to program that isn’t really about programming at all. Problem solving, attention to detail, following rules and directions, pattern recognition, etc. These things are applicable far beyond writing code.


I think the same questions could be asked of almost any current HS subject, many of which are taught “because they have always been taught”, and their relevance has not been reviewed in a long time.

I like this post about the math curriculum a lot: https://mathwithbaddrawings.com/2016/03/02/why-the-math-curriculum-makes-no-sense/

Personally, I would like high-schools to approach programming as a method to think about problems. That, and not Word or basic Python or (shudder) Java, could be argued to be relevant to most people, regardless of what their career ends up being.


I’m not certain programming needs to be required in high school, but we’ve recently made it a requirement for PhD students in our neuroscience program. You might say, “oh, of course, PhD students should know this.” But for a field like neuroscience it’s still not a slam dunk, and most neuroscience PhD programs don’t require this. While probably more than half of our students learn to code as an essential part of their research (and some of them are really good coders), our field is a huge, sprawling domain weaving together molecular biology and genetics, chemistry, animal/human behavior, surgery, optics & electronics, mathematics, data management, and algorithmic development (and probably many others I’m forgetting). There are still many students who do really exciting and important research without needing to write any code at all. Since most of us here in the Julia community like & value coding, it’s easy to imagine it should be required, but with so many worthwhile skills one should proceed cautiously before elevating any particular one to the status of “required.”

However, in PhD training we’re preparing people for careers that might last 40 years. What are the odds that they will never need to write code? Unless AIs suddenly get really good at writing code, it’s pretty hard to imagine this not being an essential skill at some point. To me, the clinching argument is that even if you never become a great coder, there’s a huge advantage in at least being able to visualize, based on experience, what that would “feel” like if your work suddenly does demand it. It kind of seems irresponsible of us if we didn’t ensure they got that experience.

So last year we started a required first year class. I know we can (and will) make our class better, but even in its first year most of the students seem to have seen the value and approved of making it required.


Everything done correctly is good. Yet, every specialist in every field thinks that “that” thing they do is absolutely essential for life. Well, it is not. If kids got out of high school with a good mastering of language and basic math, plus an overall general understanding of the world and scientific thinking, that would be good enough for a prolific life.


IMO there are far more pointless subjects in high school — my particular nemeses were history and geography, at least 70% of which are memorizing a more or less random database of facts.

In an ideal world those would be electives, but a second best could be having some coding crowd them out at least a tiny bit. I support making coding mandatory, to make life easier for my young fellow nerds.

(And of course the course should use The Little Schemer as a textbook.)


Mine were art and music, in Canada, you have to at least take one to get your HS diploma. Thank goodness for media art (think art on the computer, photoshop, etc).

The Little Schemer, cool find, have to check that out.

Yeah, I suffered from that too. I only learned as an adult that 90% of music theory is math, and very simple math at that: harmony is a good approximation to integer ratios of frequencies, the Circle of fifths is simply a minimum distance traversal across major scales, and the rest follows from that (for Western music).

Thanks Tamas,

I have a similar experience and opinion, except that I would add Introduction to phylosophy, which was just another name for history, painting, chemistry, etc. I especially like when people say that history is important for not repeating the same mistakes. Really?

1 Like

Those who don’t know history repeat the same mistakes made in the past.

Those who know history get to sit and watch helplessly.

(and here I am. attempting to make a joke despite my history of failure at joke making :slight_smile: )


As someone that worked briefly in an IT department, as quality assurance, and helped the analysts to get the project requisites from the users, I would say that the life of a lot of people in that position would be vastly improved if every user had studied the basic concepts of computation and algorithms in high school.

1 Like

One thing is certain about History. It is an extremely powerful drive .How we learn it, deal with it? Unknowns.

I think teaching history, geography and philosophy is way more important than teaching computer programming for high school students. Again, it is possible to teach those badly, or well, motivating students or not. The same with computer programming.


My point on History is that it is super cool, if taught properly. For example the History of Mankind is really nice. But I was not lucky for teachers, so it was only who has died when and where he ruled for how long.

As a Lecturer on university I struggle with students being very good at memorizing, but being lazy / having troubles to understand. I frequently ask them, why is it so and they replied that it is just easy for them to memorize and forget.

So I welcome any subjects on highschools and below that would prompt kinds to think over memorizing.


I had 4 years of both art and music at school, 2 hours per week. If this would be shortened by 1 year each, one could teach 2 years of computation / programming, which would be sufficient to give the students at least a basic understanding of this subject.

In the days of my youth, we had “labor” lessons, where we were taught how to work at the factory or we were cleaning streets or we were harvesting potatoes from the community fields. Also we had “basics of the security” lessons where we were taught how to count seconds between nuclear flash and explosion sound in order to estimate your remaining lifetime.

Computer science classes are not that bad, I think. It can be worse.


In combination with Marxism-Leninism in History, Social Studies, Geography and everything else actually quite good for the development of critical thinking.

The most common mistake I observe in policy discussions around CS education is the assumption that programming classes are vocational training. That can be the case, but the merits of any proposal depend very much on the nature of the learning that can be expected to take place.

I’d suggest that it’s better to think of CS more like math, which provides an extremely useful set of conceptual tools for interpreting the world and solving problems. Programming is about building well-structured, efficient systems, and many of those lessons carry over into other types of systems as well (e.g., bureaucracies, supply chains, etc.). I see CS’s importance as comparable to math in this respect. Perhaps even more so, potentially, since it can readily be made to feel vivid and real to students.

Perhaps an important question to ask is whether a student’s time will have been wasted if they don’t end up directly using the skills they acquire. If you think of CS as tedious job preparation, you would presumably answer affirmatively. But it’s worth doubting this conclusion.


The UNESCO has been working on this topic since the 90s. See for instance the 2019 report Coding, Programming and the Changing Curriculum for Computing in Schools.