University of Virginia, Department of Computer Science
CS200: Computer Science, Spring 2002

Problem Set 8:
Make a Dynamic Web Site
Out: 10 April 2002
Proposal Due: Monday 15 April 2002
Progress Meetings: Monday-Tuesday 22-23 April 2002
Final Due: Monday 29 April 2002

Collaboration Policy - Read Carefully

For this problem set, you will work in groups (preferably of three students). Unlike in previous problem sets, you should divide work among your group members in the most efficient way. It is not necessary for everyone in the group to work together on all parts of the assignment, but every student should contribute equally to the work.

You are encouraged to discuss this assignment with other students in the class and ask and provide help in useful ways. You may consult any outside resources you wish including books, papers, web sites and people. You may use the code from the example site in any way you see fit. You may also incorporate any open source code you find into your project so long as you follow the licensing rules for that code and include its copyright information. If you use resources other than the class materials, indicate what you used along with your answer.



Make an interesting dynamic web site.

Your site can be anything you want (so long as it is consistent with the University's policy on public computing resources). Your site must be more interesting than just unchanging text pages — it must involve computation. Most sites will also involve a database (but it is not required if you think of a computationally interesting site that does not).


The three tools you will use to make your site are:

A simple example site is found at You can download the code for the site from A good strategy for this assignment would be to start by understanding how the example site works. You can reuse any code from that site to start making your own site. Your project sites should be much more interesting, though!

We hope you will produce web sites that continue to be used after this class is over. One source of project ideas is to do something useful for a UVa organization. Here's one possible project:

The Digital Media Lab at the Robertson Media Center ( would like a way for students to sign up for time on a computer online, and for staff members to be able to sign up for their work hours online, and it has to be smart and not let a student sign up unless a staff member has already signed up.
You can also produce some that is useful to the world outside UVa. If you're really having a hard time thinking of a cool idea for your project, try reading Envisioning a Site That Won't Be Featured in from Philip and Alex's Guide to Web Publishing by Philip Greenspun.


On Monday, 29 April you will turn in a final project report containing: Since this is a big project, there are two checkpoints before the final due date:

Monday, 15 April: Proposal

A printed document explaining: You will get feedback on your proposal that should make it clear what you need to do to have a successful project.
Monday-Tuesday, 22-23 April: Progress Meetings
Your team will meet with Dave and present your progress so far. There will be a signup sheet to schedule meeting times in class on Friday, 19 April. You should demonstrate that you have achieved the milestones you set in your proposal. You should come prepared with questions about the rest of your project and be able to explain how you will complete it.


Instead of having lab hours for this assignment, each team will be assigned a consultant from the course staff who will help out with your project. Your consultant will work with you on your project design (for the proposal due April 15th), and will help with technical issues after that.

CS 655 University of Virginia
Department of Computer Science
CS 200: Computer Science
David Evans
Using these Materials