Spring Semester 2008

January 28, 2008 – May 2, 2008

Assignment 11: ...getting closer...

Out on: April 21, 2008
Due by: April 28, 2008, noon (before lecture)
Collaboration: Team
Grading: Packaging 10%, Style 20%, Design 20%, Functionality 50%

Overview

The eleventh assignment is the second part of your final project for the course. It describes the general expectations we have but many of the details will probably be discussed in lecture and on the discussion list, so attend lectures and read your email every other hour. :-)

Since you are working in teams now, it's important that you coordinate your schedules and stay in touch during the assignment. Working together (physically!), either in a lab or at a laptop in a cafe somewhere, is highly encouraged! (Most programming problems are solved by talking about them, I do the same thing myself when I can't figure out what I am doing wrong...) After the assignment is over, each of you will be asked to evaluate the contribution your partner and yourself made to the assignment. Each member of a team will receive the same score for the product you submit together. Decide early on who is going to be responsible for submitting the assignment and when! Make sure to include all the relevant information (who is in the team?) in your README file!

Problem 1: Updated Planning (30%)

Your first task for this assignment is to update and improve the project planning you did last week in light of your past experience and changing requirements. Please update both your vision for how the application will work and be used, as well as your plan for how you will complete the application by the end of the semester.

Problem 2: Updated Application (70%)

The second task for this assignment is to transition your prototype from last week to a first version of the actual application we defined in lecture and on the mailing list. You certainly need to have user registration and login done, as well as the basic admistration functions of adding a course and adding assignments with their respective information. The more you can get done beyond this the better for your project. Remember that you have to present all this at the end of the semester, and you want to be able to show something useful, right?

Hints

Deliverables

Please turn in a gzip compressed tarball of your assignment; the filename should be cs102-assign-11-webbers.tar.gz (since webbers is the code name of your team). The tarball should contain no derived files whatsoever (i.e. no executable files), but allow building all derived files. Include a README file (a plain Unix text file) that contains your answers to written problems, briefly explains what your programs do, and has any other notes you want us to check out before grading.

Grading

For reference, here is a short explanation of the grading criteria. Packaging refers to the proper organization of the stuff you hand in, following the guidelines for Deliverables above. Style refers to programming style, including things like consistent indentation, appropriate identifiers, useful comments, suitable documentation, etc. Simple, clean, readable code is what you should be aiming for. Performance refers to how fast your program can produce the required results compared to other submissions. Design refers to proper modularization and the proper choice of algorithms and data structures. Functionality refers to your programs being able to do what they should according to the specification given above; if the specification is ambiguous and you had to make a certain choice, defend that choice in your README file.

If your programs cannot be built/run you will get no points whatsoever. If your programs fail miserably even once, i.e. terminate with an exception of any kind or dump core, we will take off 10%. Finally, make sure to include your name and email address in every file you turn in!

Bonus Problem

The project you have is problem enough. :-)