Charles wrote: ~~~~~~~~~~~~~~ I've been campaigning with the main teacher of programming on my campus
-- from my thoroughly non-leveraged position as prof of English -- to consider
switching from Java to Python, for all the reasons which will be obvious to
everybody here. (The existence of "wxPython in Action" is the
decisive event for me.) I recently got a thoughtful reply from him which
included this paragraph:
~~~~~~~~~~~~~~~~~~~~~~~ While true, I’m not sure this comment
is particularly useful. It’s the equivalent of saying that
an automatic transmission is useful until shifting becomes important. Or that a
snowblower is useful until shoveling becomes important. The real question is, what are you trying
to encourage in your students? If you’re trying to get students to
understand algorithmic thinking, precision in their thoughts, and breaking down
complex concepts into a series of small steps, you want the lowest-friction
programming language you can find, and Python is certainly a great candidate (I
think it’s one of the best, but that’s why I’m here.) I’m
a huge fan of teaching introductory programming in high level languages with
high level tools. Last summer I taught a group of high school teachers to teach
programming using Python and PyGame. I had 4 days – and by the end of 4
days these inexperienced teachers had a working game written in Python, which
at least one of the teachers later gave to her students as a programming
assignment. But if you’re trying to prepare
students to be useful programmers in the real world, there are people who will
argue that students eventually need to understand enough about computer
architecture to deal with pointers and data types in their native bits. Joel
Spolsky (“Joel on Software) argued this fairly eloquently in this
article: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html I actually co-wrote a computer science
textbook on Java…but in the couple of years since, I’ve come to the
conclusion that Java is pretty much the worst of all possible worlds. Too
low-level to be a scripting language, too high-level to be a good systems
language, too damn wordy for applications programming. (But I do quite like the
Java VM.) So in terms of discussions with your
colleague, I’d suggest that he’d probably achieve everything he
wanted by teaching both Python and C or C++ instead of doing it all in Java.
But programming languages are religious artifacts, so be prepared for responses
that may not be completely based in “objective” rationality. |
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig