Why use #python when teaching #coding in school?

Much (most?) of the literature is gloriously one-sided and IMHO deceptive in pretending that Python is good at many things it sucks at. This doesn’t help those teachers trying to make a fair and balanced decision.

Overall, I believe that if you learn programming primarily via Python you’ll be a weaker programmer than if you take other, more appropriate, routes. But that’s not the question teachers and schools must ask; we have a more nuanced set of questions, beginning with:

For instance:

In my school, for my pupils, with their home backgrounds, and the experiences they had at Primary school (did they merely use Scratch? or actually learn it? Have they done algorithmic thinking?) … trying to pass the often ill-planned national exams required by the government … while fitting inside overloading, conflicting timetables … what is the best programming language to teach?

But at the same time … let’s be clear that Python has some huge benefits to classroom teaching, based on my experience:

The lack of syntax reduces the amount of “weird symbols” you have to explain to flummoxed Y8 / Y9’s

Ditto them explaining to each other. Ditto them debugging line-by-line.

It fulfils many of the essential features of “My first programming language”: case sensitivity, functions, traditional control structures (if/for), etc.

Basic input-handling is simpler than in any non-scripting language out there. This lets students rapidly start writing basic input code.

The small amount of syntax means students can more rapidly type in code by “read it and copy it”.

The IDE ought to be irrelevant. Yes, IDLE sucks several ways … so don’t use IDLE :). The major IDE vendors generally support Python directly by now, so anything (insert language of choice here) does, also exists for Python.

(I’ve heard a lot of schools say they use VB mostly because it has an IDE. This is disappointing – the same IDE’s exist for all the languages)

Finally: significant whitespace is a particular cruelty we shouldn’t be inflicting upon anyone. Especially when most Ss will have done years of HTML by the time they start Python, and already discovered that non-significant whitespace is the norm in programming.

Leave a Reply