Thu, 24 Jan 2008

Python for Rookies

PfR Book Cover

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.

Russel, I'm keen to hear more about using Groovy as the first language to teach non-programmers.  I'm currently teaching my 15 year old daughter, but I've approached the problem by building an application using Grails.  I went down this route because there are no Groovy introductions for non-programmers.  I have found that this approach helps to get the key concepts across (classes, views, persistence) and to get a running application quickly.  Of course, it is mixed language (groovy, html, css, hsql), but so far it seems to be a success.

So, let us know when the books ready then :)

Martin
Posted by Martin Flower at Fri Aug 22 15:08:19 2008

Name:


E-mail:


URL:


Add 3 and 16 (required):


Comment: