CS 171 Final Projects
Your final project is to design and implement a visualization tool that allows you to answer questions you have about some topic of your own choosing. You will acquire the data, design your visualization method, implement the tool, and analyze the results.

Group Size:
The final project will be done in teams of three students. Distance students are expected to collaborate using remote tools of their choice, such as Skype. By permission of the instructor distance students may also work in smaller teams or on their own. You can use Piazza to find prospective team members. You may also find and discuss project ideas on Piazza. In general, we do not anticipate that the grades for each group member will be different. However, we reserve the right to assign different grades to each group member if it becomes apparent that some of them put in a vastly different amount of effort than the others. (The emphasis here is on "vastly different").

Important Dates: There are several milestones for your final project. It is critical to note that no extensions will be given for any of these milestones for any reason. Late days may not be used. Projects submitted after the final due date will not be graded. If you anticipate any issues (e.g., due to business travel) you need to contact the staff at least one week in advance.
  • Friday, February 24: Project Teams formed
  • Friday, March 2: Project Proposals due
  • Week of March 5-9: Project Proposal feedback meetings with the TFs
  • Friday, March 30: Project Reviews due
  • Week of April 2-6: Project Review meetings with the TFs
  • Friday, April 20: Projects and report (Process Books) due
  • Sunday, April 22: Presentation videos due
  • Week of April 23-27: Project presentations - attendance required
  • Friday, April 27: Project web sites due
  • Tuesday, May 1: SEAS project day

Submitting your work: For each milestone you will prepare a zip file with your writeup, images of your design sketches, process book, or final application. You can upload the file to the course iSite page in the appropriate dropbox.
Team Formation
We want you to start your project by forming your groups and let us know roughly what topic you may be interested in exploring by filling in this form. Think about a domain/dataset/visualization method that you are interested in exploring more deeply. The key is to find some domain and task that both interests you and presents an opportunity for visualization. That is, there is some task where a human needs to understand the structure of a large dataset.

Project Proposal
Your group needs to submit a project proposal by filling in this form. We will review each proposal and we may suggest modifications if necessary. Our main concern is the amount of effort a given project will require; either too much or too little is unacceptable.

Proposal Feedback Meetings
Each group will meet in person or via Skype with their assigned Teaching Fellow to discuss the scope and features for your project. It may take more than one meeting for us to sign off that you are ready to move on to the start your project.
Progress Report
By the progress report due date you should have your data collected and the design of your visualization fleshed out. Fill in your progress report by filling the following form.

Project Review Meetings

Following the submission of your progress report, you will be contacted by your assigned Teaching Fellow to schedule a 15 minute meeting to discuss your progress. During this meeting, you will have five minutes to briefly summarize your progress followed by 10 minutes of discussion time. You may prepare a couple of slides for your summary, but we will enforce the time limit. This meeting is a chance for you to get feedback from the teaching staff, and to come up with ways around roadblocks you encounter. It is also a chance for the staff to ensure that your project is on track, that your team is functional, and that your project is still in the appropriate-amount-of-work range.
Process Book
An important part of your final project is the final report, which we call the Process Book. Your process book tells the story of your project from its beginning to the final design. Equally important to your final results is how you got there! Your process book is the place you describe the space of possibilities you explored at each step of your project. It is not, however, a journal or lab notebook that describes every detail -- you should think carefully about the important decisions you made and insights you gained and present your reasoning in a concise way.

The format of your Process Book can be anything, including paper books or a web site, but you need to hand them using a self-contained electronic format, such as PDF, PNG, or MS Word.

We strongly advise you to include many figures in your process book, including sketches of potential designs, images of your prototypes, screen shots from different visualization tools you explored, etc. Several images illustrating changes in your design or focus over time will be far more informative than text describing those changes. Instead, use text to describe the rationale behind the evolution of your project.

Your process book should include the following topics, however the specific format and content of the book is completely up to you. Depending on your project type the amount of discussion you devote to each of the following topics will vary:
  • Description of the problem: Data, tasks, and users.
  • Related work: Anything that inspired you, such as a paper, a web site, visualizations we discussed in class, etc.
  • Problem abstraction: If your abstraction changed or evolved over the course of your project, be sure to describe how and why.
  • Design evolution: What are the different design aspects you considered? Justify the design decisions you made, and show any major changes to your ideas. How did you reach these conclusions? Provide clear and well-referenced images demonstrating the design evolution.
  • Final design: Describe the design and functionality of your final design. Provide clear and well-referenced images showing key elements of the final design. What was left unimplemented and why? What would you do if you had more time?
  • Analysis of data: What did you learn by using your visualization?
  • Team evaluation: Each team member's role over the course of the project
As this will be your only chance to describe your final project in detail make sure that your process book is a standalone document that fully describes your results and/or final design.

If you are submitting code it should be packed up as well. You must include a README file at the root giving a brief roadmap/overview of the organization of what you're handing in: which parts are your code, which parts are libraries, and so on. It should also state how to compile and run the program. I do not necessarily expect that your software compiles on my machine if you developed for a different platform, but I want to see what you've done.

Examples
A few examples of process books. These are meant as inspiration and are not necessarily indicative of the scope for your specific visualization projects.


Project Software
Your final project can be implemented using any API or programming language you would like, but we will only support and answer questions regarding Python and Processing. The hand-in for your final project will include a working application. We will be grading these projects on a variety of platforms, so you must include detailed instructions on how to run or compile your code. If we cannot run your application from the instructions included with your submission we will not be able to grade this portion of your project.

What to submit
You need to submit the following items in one tar/gzip/zip package:
  • Code: Including all libraries assuming they are not too big to include
  • Data: Include all the data that you used to do your project. If the data is too large then store it on a cloud storage provider, such as Dropbox or Yousendit.
  • README.txt file: You must include a README file giving a brief roadmap/overview of the organization of what you're handing in: which parts are your code, which parts are libraries, and so on. It should also state how to compile and run the program.
  • Report: Your Process Book in electronic format, such as PDF, PNG, or MS Word

Project Presentation Video
Your presentation is important for conveying the key ideas of your project. Each team will create a two minute screencast with narration showing a demo of your application and/or some slides. Information about how to prepare these screencasts can be found here, and some examples are here. We will show these videos in class and will put them online. We will strictly enforce the time limit for the video, so please make sure you are not running longer. Focus the majority of your screencast on your main contributions rather than on technical details. What do you feel is the coolest part of your design? What insights did you gain? What is the single most important thing you would like to show the class? Make sure it is upfront and center rather than at the end.

Please submit your video in a format that plays under MacOS X, and make sure the files are not too big. Also make sure that the sound quality of your video is good - it may be worthwhile to invest in an inexpensive USB microphone.


Project Web Site
You need to submit a webpage that describes your final project. We will be posting these off of the course website to highlight all the great work you did for your projects! If you used Processing, we hope that you will be able to include the working applet of your visualization into the web page. We encourage you to include your application code - but we do not require you to make it public, so the decision is yours. At a minimum, you must include screenshots of your visualization, along with a brief overview of your project question and the features of the system you developed. We also strongly encourage you to include links to your Process Book. You can find an examples on the project web sites of previous years (see links on this page).

To submit your webpage and all linked files and images, name your file
index.html and place it and all other files in a directory named teammember1lastname-teammemeber2lastname with the appropriate number of team members (e.g. "paul-pfister.zip), and zip the directory. You can upload the file to the course iSite page in the Project Webpage dropbox.

SEAS Project Day
For the first time this year, SEAS is holding a school-wide project day on May 1. We still have to figure out the details, but your projects will somehow be featured that day. Either as posters, or - more likely - by playing the presentation videos. More details about this will be announced in class.