
The Argument Against Python in Introductory CS - orobinson
https://medium.com/@drmarkclewis/picking-a-languages-for-introductory-cs-the-argument-againstpython-4331cca26cfa
======
shaneprrlt
Will always be grateful my professors chose C++ as the introductory language.
It had the downside of acting as a kind of filter for first-year CS students
who had never written code before (which might be a counterargument to
choosing a higher level language such as Python). But I think starting with a
low-level language is critical for understanding fundamental CS concepts like
how memory is allocated, stack vs heap memory, etc.

~~~
orobinson
Same, on my course the introductory module was C for intro to programming
principles and then Haskell (!) to introduce the functional paradigm. Starting
out by learning a language that doesn't abstract anything away from you is
certainly the way to go I think, helps you to realise there's no "magic"
happening.

My one criticism of the blog post here is that it settles on Scala as a good
introductory language. Although I love Scala, it has so many features (many of
which are "magic") that it's very easy to lose sight of what's going on under
the hood without going into very deep technical theory well beyond the scope
of an introductory course. C seems like a much better intro as it can be used
to teach the basics of control flow while, as you say, introducing lots of
fundamental concepts, without layers upon layers of abstraction getting in the
way.

