[ Home | Lab | New Students | Courses | Research | Publications | Activities ]

Project Rubric

This is a generic description of what I expect from a semester-long project, which I require in some of my courses. The details may change over time, so please visit the online version again. The specific topics to be considered in this project are described in a companion document listing the main topics, which should be available from the course home page.

Assumptions

In doing your project, you will need to make additional assumptions as well as identify any potential inconsistencies in the specifications, and resolve such inconsistencies. Any reasonable assumptions are fine, but they must be documented in your reports. You can consult with the TA or instructor if necessary.

Implementation Plan

The way this project is envisioned you will carry out the following steps.

  1. Understand the problem.
  2. Describe some scenarios on paper to a moderate level of detail. Make sure that the scenarios are sufficiently interesting and complete.
  3. Come up with an approach.
  4. Describe how your proposed approach would handle the above scenarios; flesh out the scenarios as necessary; these become the requirements for your approach.
  5. Implement a throw away prototype for your approach demonstrating how it would handle the above scenarios.
  6. Create a specification for your approach - not necessarily complete but describing the key points.
  7. Implement this more solid prototype. Test it with respect to the above scenarios.
  8. Think about the intellectual contribution of your effort. What can we do with it that we couldn't without? More importantly, what do we learn from the exercise? How would we evaluate the contribution of this work - in terms of its usability, its expressive, or what?

Deliverables (Reports, Presentations, Demos)

The project calls for the following tasks. Brevity is a good thing - hence the word limits for several of the writing tasks. In a single-space format, a page is about 400 words.

  1. Project report #1 (300 points)
    1. (100 points) Describe your system at a high level, concisely, and clearly. Describe the overall problem you address, explain why it is a problem, why a trivial solution won't work, and motivate your proposed approach. One page.
    2. (100 points) Describe the intended usage of your system. Will a programmer apply your system in building a larger system or application? Will an end user take advantage of your system? In either case, give us a closer look at how your system will be applied. One page.
    3. (100 points) Sketch the interfaces or protocols required for your system. These could be interrelated forms in the case of a GUI. Most of the time, however, these would be specifications of the interactions that your system will support. Think of these as requirements for your system.
  2. Class presentation #1 (if needed for a given course; points included in report #1)
    1. Describe your problem, background, intended usage, technical approach. (Include the main points from project report #1).
  3. Discussions with instructor over several meetings (no points)
    1. Demonstrate a throw-away prototype of your system in which many of the functions may be stubbed out, but the usage scenario looks kind of realistic. Include a few screen-shots or scenarios in report.
    2. Give a specification of your system. This will be more detailed than the requirements and will potentially describe about design objects. But don't go overboard on the details.
  4. Project report #2 (500 points)
    1. Submit revised versions of the previous report - you will get credit on the improvements, scaled by 50%. Please highlight the improved parts.
    2. (200 points) Describe the interesting technical challenges and trade-offs encountered during your project. What are the failure modes for your system?
    3. (200 points) Explain key aspects of your design along with your rationales. Explain the organization of your team, e.g., who played what functional role. One to two pages.
    4. (100 points) Describe the scientific and engineering contributions of your effort, i.e., what do we learn from it beyond the fact that you got it to work? Explain some extensions to your approach and how the present design will accommodate them. One page.
  5. Class presentation #2 (if needed for a given course; 200 points)
    1. Describe more specific aspects of your problem and technical approach.
    2. (200 points) Demonstrate a solid prototype of your system in which the key functions are implemented. Whether it is a tool meant for programmers or end-users, show how it would be put to use. Include a few screen-shots or scenarios in report #2.

Organization

The project is recommended to be a team effort, each team consisting ideally of 4 students. Please choose your project partners by the drop date. There is no extra credit for forming a team of fewer than 4 people, but such teams are allowed.

Organize the team so that there are clear responsibilities and functional roles.

Grading

The project will be graded according to the points specified above. In general, presentations (including demos) and other discussions during class will have a lot of influence, perhaps more so than the reports. I expect the reports to be in grammatical English and carefully proof-read. I don't much care for fancy fonts and glitter.

FAQ