Collaboration Policy - Read Carefully

For this problem set, you will work in assigned teams. 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 are also encouraged to seek help from people outside the class on the content, use and implementation of your site.

You may consult any outside resources you wish including books, papers, web sites and people. You may use the code from the example sites 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, include its copyright information and credit its authors. If you use resources other than the class materials, indicate what you used along with your answer.

Purpose

Assignment

Problem: Make an interesting dynamic web site.

Deliverables

Your site must be more interesting than just unchanging text pages — it must involve interesting computation. Most sites will also involve a database (but it is not required if you think of a computationally interesting site that does not). Your site can be anything you want. If you host your site on a University server, it must also be consistent with the University's policy on public computing resources. You may incorporate anything from previous problems sets you want into your site, as well as any other open source code you find (so long as your use of it is consistent with the provider's distribution license).

Team Requests with Project Ideas

You will be assigned teams for this assignment, but I will try to honor most team requests. To request a team, you should send me an email before Thursday, 12 November at 8:59pm. The subject line on your email should be exactly "Team Request". If your team has agreed to work together, your team should send exactly one email, with cc:'s to all team members.

In order to increase the chances I honor your request, your email should not only list the team members but should give a brief description of the web site you have agreed as a group to build (one or two sentences is fine).

The size of your team may be between one and sixty-one students, but the impressiveness of the web site you intend to build should scale as the square root of the number of people on your team (e.g., a team of four students should build something twice as impressive as a team of one student working alone). If you have a large team, you will need to figure out carefully how to divide your project into smaller, independent pieces.

Unless you have a good reason to have a smaller or larger team, the ideal team size in most cases will be three or four students. More than that, and you spend too much time on management issues. Less than that, and it is hard to build a sufficiently interesting web application.

If you are at a loss for ideas for what to do for your project, here are some suggestions:

Tools

There are many different ways to build web applications. For this assignment, we will provide a tutorial site that uses Python and the Django web application framework. You are encouraged, but not required, to use this as a starting point for your web application. If you want to use something else this is okay, but discuss it with me first.

Project Descriptions

Due: Monday, 16 November (4:59pm)

Send me a plain text email that describes:

Project Meetings

Will be scheduled for each team in class on Monday, 16 November.

In class on Monday, 16 November, each team will sign up for a time slot for a design review project meeting. These meetings will be held November 20, 23, 24, and 30th. All team members must attend the design review, so it is important that you select a time all members can attend.

At the design review, you will describe your ideas for what your site will do and how you will build it. We will discuss the questions on your project description and how you are dividing the work among your team.

The design review does not need to be a formal presentation, but you should prepare for it to make it as useful as possible. In particular, you should come to the design review knowing what you think the toughest problem for your project will be and having some preliminary ideas how to solve it.

Presentations and Reports

The final project deliverable is either a presentation (on the last day of class, Monday, 7 December) or a report (turned in before 11:59pm on Monday, 7 December). In order to be eligible for the presentation option, your team must send me an email before 4:59pm on Sunday, 6 December that includes either a URL to your site (if it is hosted on a non-development server) or a zip file containing all the files for your site. Some essential functionality of your project must be working by then to be eligible for the presentation.

In class on Monday, 7 December, teams that qualify for the presentation option will have an opportunity to present and demonstrate your web site. The time for each presentation will be alloted depending on the number of qualifying teams.

Teams that do not do a presentation instead submit a final project report containing:

If you present your site, you do not need to turn in a paper project report.

Recommended Reading and Browsing

Our emphasis on this project is doing something computationally interesting and (hopefully) useful and/or fun. We encourage you to focus on the computationally interesting parts of your site, and not to get carried away with background colors and images. We do, however, encourage you to try to build a tasteful, visually appealing, and easy to use website.