CS 6456 Principles of User Interface Software

Project Overview



Outline

Project Overview

The purpose of the project is to give you the opportunity to explore some topic in UI software in more depth than permitted in lecture. You are asked to propose a topic, perform an extended literature review of the topic area, implement your project idea, write up your project in the form of a conference-style paper, and give a final presentation/demo on your work. The project essentially replaces the final three homeworks, and so should represent a substantial effort, both in terms of novelty and implementation, on your part.

You have a lot of freedom to come up with a project idea. You don't, for example, have to do a Swing-based project (although that's ok if you want to). Whatever you choose to do, your project should represent a substantial implementation effort that's motivated by, and grounded in, the principles we discussed in the class. Example: suppose you do a project where you come up with a new interaction technique, implement it, and show its use in an application. A project like this would need to be grounded in the discussions of affordance, feedback, and mechanics we had in class (in other words, just doing a different interaction technique that doesn't meet some need, or that has crappy mechanics or feedback, is a bad idea). You would also need to come up with a complete and polished implementation of the technique to demonstrate it. See here for some possible project ideas. Feel free to run ideas by the instructor if you want early feedback.

What not to do: don't come up with an idea that's just based around some application functionality, like a better email reader, or a better web browser. This is a user interface software class, so your project needs to demonstrate some interesting, hopefully novel, and certainly substantial contribution to user interface software--new interaction techniques, interfaces, toolkit capabilities, and so forth.

Projects should be done in teams of two, and must be on a topic approved by the instructor. If for some reason you really want to do an individual project, see me for permission first. Depending on whether we have an even or odd number of people doing the project, we may have a single team of 1 or 3 at the instructor's discretion. It is possible that more than one team works on a related project topic. However, those teams must work separately on their projects. You are responsible for finding team mates. If you're looking for a partner, using the discussion forums on T-Square may be a good way to match people and project ideas into teams.

I suggest reading carefully through this entire document so that you understand the requirements and grading criteria for all parts of the assignment before deciding on a project topic.

The breakdown of grading for the project is given below.

Please see the online class schedule for due dates.

Milestone 0: Project proposal + lo-fi prototype

You need to first declare what your project will be about and give the instructor a sense of what your project will "do." You are asked to choose a project topic that relates (broadly) to topics covered in lecture--GUI toolkits, interaction techniques, ubicomp, media-based interfaces, animation, and so on.

Your project of choice should also explicitly involve at least one of the class topics covered after the midterm exam. Examples: animation, recognition, sound, video, lenses, etc.

There are two deliverables for this phase of the project:

These materials should be ZIPped and uploaded to T-Square by one (only) of the project partners. If you're doing a prototype that needs to reside on a website, please include a link to it. Be sure to include a project title and the names of the people on your team.

The Instructor will give feedback on your proposed project. This feedback may suggest changes in direction to ensure that the project supports the learning goals of the class. Project proposals that seems to be out-of-scope for the class, or represent an insufficient amount of work, will be disallowed.

There will not be any grading of this portion of the project; this is merely the "approval" stage.

Milestone 1: Reading list

One of the first important tasks in the project is to assemble a reading list of relevant literature. This literature is expected to come from major conferences (such as UIST, CHI, Ubicomp, Multimedia, and CSCW) and journals (ACM TOCHI, IEEE Pervasive Computing, HCI Journal, and so forth), and in a few justified cases, authoritative Web sites and non-research articles.

For this part of the project, you must provide a list of 15-25 references that are the basis for your literature review, and for each a paragraph that describes its relevance to your work (for example: findings that influence your project idea, similar systems that you compare or contrast against, etc.) This list will be reviewed and graded for the quality and relevance of your literature search. In some cases we may suggest additions to the literature list. Please submit this portion of the assignment as a PDF in T-Square.

This reading list will count for 20 points in the project grade.

Milestone 2: Implementation

Milestone 2 is the completion of the implementation of your project. As noted above, you have complete freedom in choosing the development environment (language, platform, tools) for your project. The only requirement is that you be able to fully describe that development environment and provide some way for your project to be demonstrated at the end of the project (Milestone 4).

For this milestone you'll submit the following deliverables:

Please submit all of these as a single ZIP file via T-Square.

This portion of the project will be graded based on quality and quantity of implementation, as well as on how well your finished implementation reflects the goals you set out in your project proposal.

The implementation portion of the project will count for 30 points in the overall project grade.

Milestone 3: Project Presentation and Demo

During the last class meetings, students will be responsible for a presentation on their project.  This will include a demonstration of your work as well as an overview of your motivation and implementation.

If you rely on special equipment that can't be transported to class, please bring a video and slides; if you have special logistics considerations you may schedule time for a private demo with permission of the instructor.

The presentation will count for 20 points in the overall project grade.

Milestone 4: Project Writeup

The final project milestone is to do a writeup of your project that is in the form and style of a conference research paper. This will be a 6-8 page paper in standard ACM format. For details, please check here for the formatting instructions used by UIST (ignore the specification of 10-page papers; for this class please use 6-8 pages).

You can look at some of the assigned readings from the class, or proceedings of conferences such as UIST, Ubicomp, CHI, and CSCW to see the form and style of these papers. The typical paper will have an introduction section that motivates the work, a discussion of related work, a system description (including implementation details as necessary), sometimes an evaluation, conclusions, and references. The actual sections that you might have can vary, of course, but should be plausible as a research conference paper. I suggest looking for papers that are on topics that are at least superficially similar to your project and using them as templates.

The Author's Guides for various conferences provide details on how to write an effective research paper. As an example you can check out the Review Criteria for the UIST conference. This document details the set of criteria for how the reviewers (in our case, the instructor and any TAs) will evaluate your paper.

This portion of the submission is worth 30 points. Please submit your paper in PDF form via T-Square.


Back to CS 4470/6456 Home Page