CM10228 / Programming Ib:   Assignment 4  (2010)

Databases & Web Applications:  An Introduction to Django

Assignment Date:  Tuesday,  27 April  Due date:  Monday,  3 May at 22:00 PM

This assignment is the final of four you will have in this course.  Your mark in Programming Ib is composed of 50% coursework, 50% exam.  This assignment is worth 5% of your final mark for the unit. The assignments are:

Handed Out
Labyrinth of Dooom:  Reading & using maps 10%
23 February
9 March
Labyrinth of Dooom:  Networking and multiple concurrent agents in one dungeon 10%
9 March
23 March
Labyrinth of Dooom:  GUIs to show your friends & family 25%
23 March
16 April
demoed in lab 19-23 April
Back on the surface:  Databases & The Web 5%
20 April
done in lab 26-30 April
demoed in lab 3-7 May



This assignment allows you to explore contemporary web application development using scripting technology, in this case Django.  It also requires you to understand enough about objects and relations to create a sensible database.

Your assignment is to create a database and web applications which allow you to both edit and view that database.

The domain of this application is up to you.  A few obvious possible domains are:
This coursework will be marked entirely in the laboratory.  There you will provide a short talk and a demo.  Your talk should have at least two slides, one explaining your domain and one describing your data model.  You will then have an opportunity to demonstrate editing and viewing your application.  The talk and demo should be just 8 minutes total, including starting up the browser.

You will not get detailed feedback on your code in this coursework.  You will be demoing your coursework in your tutorial on the week of 3 May, and will receive your mark then.  Note that we are not asking for any documentation of your requirements-gathering & design phase for this coursework, but you may find that doing these properly still helps you perform your task, regardless of whether anyone looks at the output.  You may also want to show a specification to the tutors in the lab before you begin development, just to get feedback about whether you are on the right track.

Warning:  If you are assigned to Monday's lab, you will be reallocated to another laboratory for marking the week of 3 May.  This will be done during break in the lecture on 27 April.  If you miss this, check Moodle for your assignment.

Your code must run on the machines in the Lovelace Lab.

The code for this assignment is expected to take the average student (one who got about 58 in Programming I) about 2 hours, hopefully to be completed in lab during the week of 26 April.  You should have picked your domain before lab, and come to lab with a data model drawn out that you can show the tutor.  You will also need to put together a very short presentation before you upload your code, so total time on this project may be 6 hours.  Because programming takes different people radically different amounts of time, some students will spend more or less than 6 hours on this assignment.

An important note on plagiarism:  Plagiarism occurs any time that you use someone else's ideas without acknowledging them.  If you get help on any part of your assignment you should acknowledge this in the comments and in your presentation.  This includes asking coursemates, tutors, or other staff questions, and of course any code or ideas you get from books or the Internet.  Say exactly where your ideas came from, and exactly how much of the code you hand in is your own. 

What to do:

  1. Pick a domain for your web application.  Determine what data you will need, and draw a model.   Also plan at least two pages to build: at least one data entry page and at least one data viewing page, and sketch what these will look like. You can hand draw these iff your handwriting is legible.
  2. You should probably read the Django tutorial in advance of coming to lab in case you aren't ready to build Django applications from just the lecture.
  3. Bring your model & planned web pages to your tutorial; have it checked by the tutor. 
  4. Download Django onto your computer.
    1. The real Django page has everything.
    2. But if you are on windows, just download Instant Django and double click start.bat (follow the first 20 lines of the tutorial).
  5. Get the basic Django running in lab.  
    1. You may want to do this by working through the Django tutorial, but with your own model and relations.
    2. If you suspect this will take you more than two hours, you should probably come to the 9am tutorial on Wednesday so you can have four hours of support rather than two.
  6. Comment and clean your code after lab if you have not done this during lab.
  7. Prepare & practice your presentation.
  8. Upload your code and presentation by the deadline. 
  9. You may want to continue practicing your presentation after submitting your code.

What to hand in:

  1. Note:  For this coursework you do not need to physically hand in anything.  You need to upload your code to demonstrate you have met the deadline.  You should bring a hard copy of the code along with you to your assigned marking session, because the tutors may want to look at it.
  2. A zip file containing uncompiled versions of your code and your presentation.
  3. In your demonstration, you should explain your domain and your data model, then demonstrate your web application. 
    1. Your demo should be eight minutes long in total.  You should practice this.
Remember, marks are not given just because a program compiles or runs.  It should run robustly, and it should be well commented and well documented in the talk and demonstration.

How you will be marked:

The marks allocation for this assignment is as follows:
  1. Clarity of task and model. 40% 
  2. Working of the code. 60 % 
Total 100%

You will probably get 0, 20, 40, 60, 80 or 100 marks for this coursework.  The tutors will not go into detail on the marking.

Threshold for Pass (40%+)
  1. Two web pages work, one that allows storing data in a table and another that allows viewing the table.
  2. You turned up to demo and presented your work in a comprehensible way.
Good Pass (~60%)
  1. Meets all the criteria of a threshold pass.
  2. You use more than one table in good relational style.
  3. Your talk is well-presented.
Distinction (80%+)
  1. All criteria of a good pass are met.
  2. Demonstration is sophisticated and entertaining, and within requisite time limit.
  3. Code structure is clear & easily comprehensible in a quick overview.
  4. Sophisticated coding structures derived from documentation (beyond those in the lecture) are used and drawn to the marker's attention.  Possible examples include:
    1. sophisticated template usage
    2. sophisticated object relational logic
    3. sophisticated search ("advanced" on Google -- more than one criteria)

Marks Table:

Note:  Because this coursework is marked in lab, all marks are likely to be to the nearest 20%.

Out Of
explained data model in demo

demo ran for at least one table

used multiple tables correctly

demonstration of sophisticated techniques, beyond what was shown in lecture (see description of distinction, just above)

demo was really impressive




page author: Joanna Bryson
27 April 2010 (checked by MDV 21 April)