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 CarefullyFor 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.Purpose
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.
- Gain confidence that you can learn new languages on your own.
- Learn some useful languages for making web sites: HTML, SQL and PHP.
- Make a useful and interesting web site.
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 http://www.cs.virginia.edu/cs200/problem-sets/ps8/example/home.php3. You can download the code for the site from example.zip. 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!
- HTML (Hypertext Markup Language) — the language used to describe web pages Schemer's Guide to HTML
- PHP (PHP: Hypertext Preprocessor) — a universal programming language that can be incorporated into web pages and is evaluated by the web server when a page is requested Schemer's Guide to PHP
- SQL (Structured Query Language) — a language for manipulating and extracting infromation from a database Schemer's Guide to SQL
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 (http://www.lib.virginia.edu/clemons/RMC/dml.html) 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 suck.com from Philip and Alex's Guide to Web Publishing by Philip Greenspun.
DeliverablesOn 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:
- a short text description of your site
- the URL for your project site
- a URL to a zip file containing all the files in your project site
Monday, 15 April: ProposalA printed document explaining:Monday-Tuesday, 22-23 April: Progress Meetings
You will get feedback on your proposal that should make it clear what you need to do to have a successful project.
- what the site you will build will do
- a rough design of your site showing how you can divide the project into smaller problems
- a list of milestones that will be achieved before the progress report (22 April)
- a description of how you will divide the work among your team (who will do what)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.
ConsultantsInstead 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.
University of Virginia
Department of Computer Science
CS 200: Computer Science
Using these Materials