On Saturday, 5 May 2018 at 15:13:34 UTC, Russel Winder wrote:
In that C is a portable assembly language and Java is an
object-based language supporting some forms of polymorphism
they are very different, but they are far from extremes.
Come on, the difference between C and Java is far more than that.
The differences are so extreme actually, that undergrads deserve
to be introduced to both.
Introducing python to undegrads is an abomination!
Introducing D to undergrads is problematic, since D is an
unprincpled mix of pretty much everything - and more to come
(which is good in some sense, and bad in another sense).
D is the swiss army knife of programming langauges. What is great
about D, is how it integrates it all into one tool, making it
easier to use those tools.
But IMO, D is not ideal for undergrads, as it's a little too
unprincipled - and undergrads needs principled approaches when
starting off.
In addition, the syntax of C and Java is not too different, so
undergrads can switch from one to other other without too much
drama. Imagine switching between C and Go, or Java and Go, or
Java and Python etc..etc.
C and Java provide the greatest learning experience for
undergrads, IMO, and at the least 'cognitive' cost.
Python should be banned! Cut of it's head!!
Hopefully this is a troll, and you don't mean that.
No. I do mean it. Python has no place in an undergrad course.
As someone intimately involved with a university for many,
many years, I have to wonder whether teachers are the problem,
rather than the solution ;-)
I can't speak with direct evidence for the last decade but
certainly till then far too many academics in the UK couldn't
really program well at all. The whole university system
militates against programming as something an academic is good
at. Fortunately there seem to be just enough academics who can
program well, at least in the top universities, that the
programming courses do actually get taught well. Of course with
programming moving from university to school (6 to 18) the
problem shifts from academics to school teachers.
The thing is, those teaching in uni are not really 'teachers'.
They are usually just filling in time, to earn some extra money
or whatever, while continuing their studies or research. Very few
actually know how to 'teach', and even few are motivate to
'teach'.
Undergrads can learn a great deal more from just buying some good
books (or even a single good book).
Perhaps this is why programming should be 'taught' before
students reach uni, and then they can focus on doing more
productive things when they get to uni, rather than learning how
to write a for loop, or move circle around the screen!