Python is such a better language for teaching programming and CS fundamentals than Java or C++.<p>There is of course a case to make for teach C , ASM or LISP first.<p>Trying to teach something like OO best practices will be lost on students if they haven't done enough programming to understand code complexity and why OO might be a useful paradigm.<p>Java is especially bad because you need to use the static keyword as well and the System.out object just to get "hello world" working
I've been following this in my spare time for the last month. I've found it really useful.
As a sysadmin who doesn't really do any <i>proper</i> programming day to day and ends up learning just enough to scrape by in a few languages, I've found it really beneficial to go back to basics and learn to <i>think</i> like a proper computer scientist.