Due Date: May 13, 2009, 5pm EST
Final Project List
Final Project Presentation Information
Your final project is to design and implement a visualization tool that allows you to answer a question you have about some sort of personally relevant data. You will acquire the data, design your visualization method, implement the tool, and analyze the results.
There are three milestones for your final project. First is a project proposal. Second is a progress report along with a conversation with the teaching staff about the status of your project. And third is the final project submission and an in-class presentation. The complete project will be graded on a 0-100 scale.
You are permitted (and encouraged!) to form teams of two and to partition the work between the team members. The work expected from each person should roughly be on the order of two homework assignments. You can use the class forum to find prospective team members.
This document contains the project requirements, as well as a couple of project ideas. None of the projects are worked out in detail; they are only suggestions to give you an idea of the project scope we have in mind. You may also find and discuss project ideas on the course forum or propose a project of your own.
1. Important Dates
| Wednesday, April 8, 5pm EST | Project proposals due |
| Wednesday, April 22, 5pm EST | Project progress reports due |
| April 27 - May 1 | Conversation with teaching staff |
| NEW | Friday, May 15, midnight ESTProjects due |
| Monday, May 18 and Wednesday, May 20 | Project presentations |
| Friday, May 22, 5pm EST | Project webpages due |
2. Project Proposals (5 points)
Your group should submit either an html page (i.e., a zipped directory including all linked images) or a pdf of your project proposal, which should be 1-2 pages. If multiple groups submit proposals on the same topic, the group that submits first will be approved and the other groups must resubmit another idea. Here is what your proposal should contain:
- Project title
- Project members (names and emails)
- The questions you want to answer with your interactive visualization
- Sources of data (if your project will require specific equipment such as sound capturing devices please talk to us in advance and we may be able to purchase some of this)
- The target audience
- Proposed visualization and interaction methods, i.e., what exactly are you planning to implement? What is the list of features you will include (loading data, switching between different types of plots, mouse functions, etc.)? Describe each feature, and be as specific as possible. Bullets are fine. You should order the features of your program in terms of importance (most important feature first, etc.).
- The minimum set of features you will include. The number of minimum features must be proportional to the number of team members, i.e., something like n*num_members where n is the number of features one person can implement. We consider what one person can implement to be at least equivalent to two homework assignments.
- Partition of work for each team member
3. Progress Report (10 points)
By the progress report due data you should have your data collected and the design of your visualization fleshed out. We would like for you to describe the data you acquired, and sketch out your design. You can use any tools available to you for your design (i.e. Photoshop, pen and paper, markers, paint, PowerPoint, Keynote, Matlab, etc.). Your write-up should address the following questions:
- What are your motivating questions and why did you choose them?
- Describe your data in detail: where did it come from, how did you acquire it, what does it mean, etc.
- Describe your design, and why you chose the features you did, in one or more sketches (no working code is required at this stage).
Following the submission of your progress report, you will be contacted by a member of the teaching staff to schedule a 15 minute meeting to discuss your project and progress. During this meeting, you will have five minutes to present your tasks, the acquired data, and your visualization design, followed by 10 minutes of discussion time. We will strictly enforce the 5 minute limit with an egg timer, so please practice your presentation beforehand. This meeting is a chance for you to bounce ideas off of the teaching staff, and come up with ways around roadblocks you encounter. It is also a chance for the staff to ensure that your project is on track, and that your project is still in the appropriate-amount-of-work range.
4. Final Project (80 points)
Your final project can be implemented using any API or programming language you would like, but we will only support and answer questions regarding Processing. The hand-in for your final project will include a write-up html file and a working application. Include a README that describes the code and application files, and how your program should be run. We will be grading these projects on a variety of platforms, so if you are not using Processing, 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 the final project.
Your write-up should address the following questions:
- What are your motivating questions and why did you choose them?
- Describe your data in detail: where did it come from, how did you acquire it, what does it mean, etc.
- Describe your design and why you chose the features you did.
- How do you use your application (mouse and keyboard functions, input/output, etc)?
- What are the answers to your questions? What other interesting insights about your data did you gain from your visualization?
- What extensions and improvements can you suggest?
- What did you most enjoy about working on this project? What was the most challenging aspect? What was the most frustrating? What would you do differently next time?
The final project grades are dependent on the following criteria:
- Attempted difficulty: Some projects are harder than others. For example, an assignment based off of one of the homework assignments is probably easier than a Facebook application that visualizes a person's friend network.
- Did you meet your major goals? The most important grading criteria is functionality: A working program will always garner the majority of available points; no credit will be given for non-working programs. A modest solution that works will be graded much more favorably than an ambitious "solution" that core dumps! Also important is implementing your minimum feature set. And finally, we expect to see sufficient answers to your motivating questions.
- Secondary criteria: The following secondary criteria will be used to differentiate among working programs: additional features included beyond the minimum set; complexity of insight into the data your visualization enables; astetic quality of the design; and efficiency of the implementation.
5. Project Web Page (5 points)
Finally, you will submit a webpage that describes your final project. We will be posting these off of the course website to hightlight all the great work you did for your projects! If you use 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. You can find an examples on the final project site from last year's class.
To submit your webpage and all linked files and images, place the .html file and all other files in a directory named teammember1lastname-teammemeber2lastname with the appropriate number of team members (e.g. meyer-pfister), and zip the directory. You can upload the file to the course iSite page in the Project Webpage dropbox.
6. Academic Honesty
With the proliferation of vast amounts of code on the internet it may be tempting to copy source code from the web. Although we encourage you to look at other code, all material you hand in is assumed to be your own work. You absolutely must acknowledge any source code that was not written by you. You can mention the original author(s) directly in your source code (comment or header). You should also acknowledge sources in your write-up if you used whole classes or libraries. Do not remove any original copyright notices and headers.
Without prior written approval you may not submit the same material to two courses. Plagiarism, cheating, and other forms of academic dishonesty will be reported to the office of the Dean and can have very serious consequences. If you have any questions about the use of source code derived from other sources please contact both Hanspeter and Miriah. For more information see the Harvard Extension School academic guidelines.
For further details regarding the academic honesty policy for CS 171 please check the course syllabus.
7. Project Ideas
For further inspiration you may want to look at the 2008 Final Projects.
What are you listening to?!?!
The folks at Last.fm have a site called Audioscrobbler that provides access to the listening habits and statistics of Last.fm users. Using this database, you could perhaps visualize listening trends that help you decide the perfect music choice for a particular time of day, or, what you should load on your iPod when visiting San Francisco so that you will be sure to fit in.
Facebook My Application
Ever see those furball network graphs of someone's Facebook friend network and think, gee, there must be a better way to look at this data? Well, you can for your final project! On the Facebook developers site you can find loads of information about developing your own Facebook application and how to access Facebook data. Go ahead, invite someone to try-out your app!
Good luck, and have fun!