I have been more and more coming to believe that Java is no longer the right
programming language for teaching people programming. Java has to be learnt,
it is after all one the most important programming languages of the moment.
However, I now believe that dynamic programming languages, in particular
Python and Groovy, are
better languages for the first introduction to programming. Following this you
can introduce type, compilation, design patterns and all the good software
engineering material as second courses on programming using languages like
Java and C++. Of course, everyone interested in programming should also learn
languages like Haskell, Erlang, Prolog, but that issue is for another time.
I started thinking about Python as a first programming language for university
courses back in 2003. The idea bubbled as a publishing project but didn't
really take off until 2005. I was introduced to Sarah Mount and James
Shuttleworth (then both at Coventry University, Sarah has now moved to
University of Wolverhampton) who were using Python to teach their introductory
courses to physicists, economists, art and design students, as well as
computer science students. We immediately waded into taking all our material
and forming it into a book. The result is _Python for
Rookies_ published by Thomson Learning (now
called Cengage Learning). This should be in the bookshops next week.
Buy this book, you know you want to :-)
PS It is true that Graham Roberts and I authored the book _Developing Java
Software_ as a first programming course using
Java (and we'd like you to buy that as well :-). We are however in the process
of writing a book using Groovy instead. More on this at a later date.
PPS The _Python for Rookies_ website has
only just been started so it doesn't have much on it yet. Over the next few
weeks more and more material will be added.