A major component of this course will be the execution of a term project. You may propose your own idea, or choose from a list of suggested projects.
You must clear your project idea with me before you get started. The preferred method is to schedule a meeting with the instructor to discuss project ideas. Contact the instructor to schedule a time.
Projects will be structured as a sequence of phases. Completion of one phase is not required for initiation of the next. In many cases, it will benefit you to be working on multiple phases at the same time. For instance, you might be working on the implementation of an initial prototype concurrently with searching and reviewing the relevant literature.
Each phase includes a written component. Spelling and grammar count, so check them before you hand anything in.
Describe your plans to meet these requirements in a proposal of approximately a page. Ideally (or at least by the revised proposal), your proposal should describe:
the motivation for your project (a paragraph or so)
your approach to the problem. Include as much information about specific representations, user interface design, and code design as you can.
exactly what you expect to produce (i.e., your deliverables).
planned extensions if time permits. Mark these clearly as extensions and prioritize them
Review the literature describing other approaches to problems similar to yours. Revise your proposal based on what you've learned in your literature survey and to address any instructor comments from the initial proposal. Your revised proposal should include a new section approximately one page in length describing what you found in your literature search. Describe how the approach taken in related work is similar to and different from yours. Include complete references for all papers cited.
Summarize progress to date (including images) in a report of 1-2 pages. This report should include sections on both implementation and results. Give a 5-10 minute summary to the class. Feel free to ask the class for feedback on how to approach remaining problems.
Write an approximately 6-page technical paper describing your project in the style of a (very short) SIGGRAPH paper (other formats may be acceptable with pre-approval). Sections you should plan to include are: abstract, introduction, related work, implementation, results, future directions, and references. Revise and reuse text from your proposal and status report. Your paper should include figures and images as appropriate. Remember, correct spelling and grammar count in all submitted work.
Package all code and supporting documentation into a final release. Your final release should include:
all code produced
description of how the completed project corresponds to the proposal
an informal user's guide describing how to use your project
Prepare and present a 10 minute presentation of your project. Your presentation should be professional enough to give at a technical conference (e.g. organized approach, prepared slides, a short demo or video if appropriate).