CSCI A290/A590

Tools for Computing: Django

Second Eight Weeks, Spring 2010

Preliminary Syllabus

Overview

Most webs today are developed with very low-level tools. This makes them tedious to write, terribly difficult to maintain unless they are small, and prone to subtle errors including security holes. High-level web development frameworks provide powerful abstractions that allow complex web sites to be developed and maintained with much less effort, and they eliminate many security holes. This is nicely summarized with the django motto "The web framework for perfectionists with deadlines."

A framework is a programming library, or interrelated collection of libraries, that support writing programs of a particular kind of application. Of the two most popular broad-based web frameworks, django and Ruby on Rails, django has the advantage of being based on a language, Python, that is widely used for many purposes. This course provides students with practical experience developing a web site, either individually or in a small team.

The goal of this course is to get practical experience with a variety of functionality offered by the django framework.

Prerequisite

This course assumes prior experience with Python. If you do not have this experience, my Python A290 in the first eight weeks is recommended. But if you already know several languages you might well get sufficient experience by self-study and practice with Python prior to this course. Experience with core web technologies such as HTML and CSS will be helpful, but can be picked up as needed in this course.

Instructor: Prof. Chris Haynes, chaynes@indiana.edu, office LH230F, office phone 855-3376, home phone 336-3221 (business hours only, please), office hours to be announced, and by appointment. Don't hesitate to contact me if you have any questions or concerns.

Schedule: TR 2:30PM-3:45PM in SB221, Sections: A290: 26877, A590: 26889, Credit hours: 1.5

Text

Python Web Development with Django, by Forcier, Bissex, and Chun, is a likely choice, but other recently published are being evaluated as possibilities.

Django's online documentation is very good and will be much used.

The Definitive Guide to django: Web Development Done Right, 2nd edition is a fine book by django's designers, Adrian Holovaty and Jacob Kaplan-Moss, but the second edition is not yet available in printed form.

Evaluation

Evaluation is based primarily on the django web site development projects. Making appropriate use of a variety of django mechanisms with good overall style is valued more than extensive content and functionality based on simple web technologies. Efforts to use the more advanced features of django are especially valued.

Course participation is also considered in evaluation and is valued in all its forms, such as asking and answering questions in class, class presentations, and office visits.