James Shuttleworth

Since finishing a Software Engineering degree in 2000, I have worked in various positions at Coventry University. My research started off in automated medical image analysis, but since finishing my PhD thesis it's wandered into mapping, visualisation and wireless sensor networks.

From the start, I was involved in teaching programming. At first, this meant mostly assisting in studio sessions. At the time I was a Tutorial Assistant, so I didn't really have much weight when it came to decision making. I wouldn't have known what to do with it, back then, even if I'd had it.

Back then, Java was the only language being taught in the department. Sarah Mount and I were asked to staff a new "Support Centre", running for a few hours a day providing drop-in support for the great number of first-year programmers. Time in the support centre was the most hectic and difficult I've ever known, but we both learnt a lot about how to teach programming and why Java might not be the best language to do it in.

A few years into my time at Coventry, after becoming a Research Assistant to my Director of Studies, Dr. Alison Todman, I was given leadership of a foundation module in computer science. As long as I covered the learning outcomes, which were suitable broad and vague, I was given free reign to do whatever I liked. I'd been using Python to develop image and data analysis systems for a while (Java took too long to write and I was fed up of trying to decipher my own Perl), so I took the plunge and tried using Python as a first language. I was pleasantly surprised at how well the module went and especially how well the students performed in the programming.

In 2005, I became a Lecturer in Computer Science in the newly formed Department of Creative Computing. The department needed its own programming module that would suit students interested in the creative aspects of computer science, games technology and digital media. Sarah and I were given the responsibility of creating that course. With the experience gained over the previous few years and the results of the foundation module as evidence that Python worked as an introductory language, we set about writing a set of lecture notes that would be the basis for the new module.

Thankfully, the new module was a success. Our students performed exceptionally well and were able to write fairly sophisticated non-trivial programs by the end of the year. Playable arcade games in year one was a first for Coventry.

Before the end of that year, we started working with Russel Winder to convert the notes into Python for Rookies. I hadn't realised just how raw the notes were until Russel showed us how much they could be improved and generalised.

Since then, I've become a Senior Lecturer and the department of Creative Computing has moved into the larger Department of Computer Science, but I still teach Python and our students are still performing excellently and, more importantly, enjoying the course.

Please email us with your comments about this book.