What language should be taught as the first language on a university computer science degree course?

A friend of mine asked me for my opinions on what programming language should be taught in the introductory class of computer science at university.

I remember this debate when I was at university 20 years ago, this debate has no doubt been raging for centuries. (This may not be literally true, or rather, it is just not yet literally true at the time of writing...) This is what I reckon. What do you reckon?

I reckon these things are not important:

OK so what languages satisfy the above constraints? The official databases & life list of approved first languages. I think if I was teaching an introduction to programming, I would be happy to teach:

I used to help out at uni teaching non-computer-science students programming, I mean there was a student there who really didn't get variables or "for" loops. I tried really to explain it to her. Maybe she got some way to understanding it (or maybe not). I don't reckon she could handle Integers vs int or a bunch of #includes just to get something written on the screen. Or == between Integers working with low numbers only.

Maybe really Ada. Can interface with C stuff with gcc gnat so might be able to develop useful programs. Teaches many concepts in a good way.

What do you reckon?

Or maybe the objective is actually to give an accurate impression about the level of pain they're going to be experiencing for the rest of their lives, in which case start with Javascript with npm installing all frameworks that exist simultaneously.

P.S. I recently created a nerdy privacy-respecting tool called When Will I Run Out Of Money? It's available for free if you want to check it out.

This article is © Adrian Smith.
It was originally published on 4 May 2017
More on: Coding