SPA Conference session: Agile Development for the Web and Elsewhere: A Tutorial in Python

One-line description:How Python and Python tools can help you to become a more productive developer
Session format: Long tutorial (330 mins) [read about the different session types]
Abstract:As we continue to evolve our software development methodologies and embrace agile techniques, isn't it time we did the same for our choice of programming languages? Languages such as Python and Ruby continue to gain ground as tools for rapid prototyping or the speedy development of robust, fully-fledged business applications, particularly in the fast-moving domain of web-based systems. This tutorial will explore how you can make the most of these powerful tools.

The session will be a fast-paced, hands-on introduction to the very latest version of the Python programming language (version 2.6, to be released in Spring 2008), with a special emphasis on developing web-based systems. Along the way, we will explore some of the interesting recent developments in the world of Python - such as Microsoft's IronPython, an implementation of the language using the .NET Framework.

Python has gained significant traction as a very effective tool for developing database-driven web applications, YouTube being a prominent recent example. Participants will gain direct practical experience of this approach to web application development, via an exercise using one of the latest and most highly regarded Python web development frameworks, Django.
Audience background:Participants should be proficient in at least one modern object-oriented programming language such as Java or C++. Prior experience of Python or other very high-level languages is not required. Some familiarity with building database-driven web applications is desirable, but by no means essential.
Benefits of participating:Participants with no prior experience of very high-level languages will gain a very useful and productivity-boosting 'second string to their bow'.

Participants with some knowledge of Python or other very high-level languages will benefit from learning about the latest features of the language, and how it interfaces with the Java and .NET platforms.

Those with an interest in web application development will get a very practical introduction to the use of modern web frameworks.
Materials provided:CD-ROM containing slides, details of practical exercises and software (including Python 2.6 itself, the Django framework and various other useful tools).
Process:The session will consist of short, lecture-style segments, punctuated by Q&A and short practical exercises. There will be a longer period of practical work near the end, where participants will build a web application using Python and Django. There will be the opportunity to work on this final exercise collaboratively.

Participants will need to bring with them a laptop of some sort (Windows, Linux or Mac OS X).
Detailed timetable:0:00 - 0:10: Introductions
0:10 - 0:30: Overview of Python
0:30 - 0:50: Q&A / software installation & first exercises
0:50 - 1:10: Python's data structures
1:10 - 1:20: [break]
1:20 - 1:50: Procedural & object-oriented programming in Python
1:50 - 2:10: Python's standard library
2:10 - 2:30: Q&A / exercises
2:30 - 2:50: [lunch break]
2:50 - 3:10: Jython and IronPython
3:10 - 3:30: Q&A / exercises
3:30 - 3:50: Python and the web
3:50 - 4:00: [break]
4:00 - 4:20: The Django web development framework
4:20 - 5:10: Exercise - building a web application with Django
5:10 - 5:30: Group reflection on Python & Django / closing remarks
Outputs:Participants will take away with them a functional, prototype web application built using Python and Django.

Group reflection on Python and Django will be collected and summarised and will be made available via the web.

Slides, solutions to exercises and links to useful resources will also be made available via the web.
History:This proposal made it into onto the reserve list for SPA2007 but was ultimately not used. I have revised it and I am resubmitted the updated version for SPA2008. It has not been presented elsewhere.
1. Nick Efford
University of Leeds
2. 3.