CS 338: Graphical User Interfaces
Project Stage 1: Idea & Description
(10 pts out of total 100 pts for the project)
Due Tuesday, February 10, at the start of class
Email PDF file to professor by class time
The class project is a half-term individual project that allows you to design
and implement a sophisticated, useful, and fun user interface. In Stage 1, you
will decide on a project idea and write up a description of your idea. In Stage
2, you will discuss your interface design and implementation plan with fellow
students for evaluation and revision. In Stage 3, you will complete the implementation
of your project and demonstrate it to the class in special class session.
First, you need to decide on a project idea that you would like to work on. You
should note the following as you work out an idea:
- You should aim to develop a novel idea / user interface for a
particular purpose, and/or to address particular deficiencies of
existing systems with your new system. In particular, you should avoid
very common, general systems that people use often (e.g., contact
manager, calendar system, chat messenger, photo manager, etc.) --
instead, be as creative as possible and try something different. Some
of the most interesting ideas come from considering subsets of
possible users -- e.g., what applications might be good for a
pharmacist? coach? fireman? artist? pilot? etc.
- Roughly speaking, your system should have both a significant,
interesting interface part and a significant, interesting
computational infrastructure behind the interface. On the one hand,
an application that focuses solely on GUI components would likely not
do anything interesting; on the other hand, an application that is
primarily "computational" (e.g., neural-network training) with the
most basic GUI features would not be appropriate for this course.
Thus, you should aim for a project in which you could imagine
approximately half of the code being devoted to GUI construction and
event handling, and half of the code being devoted to doing something
interesting based on the user's interaction with the system.
- The application must be implemented in Java/Swing, and all code developed
for the project must be new code -- that is, you cannot build on or
extend a system that you may have developed in a co-op, another class, etc.
However, it is acceptable to import complex packages (e.g., a speech recognizer)
to be utilized by your project code.
You will receive feedback on your project idea from the instructor after submitting
Stage 1, and also from your fellow students at Stage 2. If you have any questions
about the appropriateness of your idea, please email the TA and/or the professor
for comments and suggestions.
Create a 1-page description for your project as follows:
(1) Come up with a catchy title for your project, likely including
a system name and a catchy phrase that describes what it does -- e.g., "The
Emblogulator: Brillig for Slithy Toves that Gyre and Gimble in the Wabe"
(though yours should make sense! :))
(2) Write one paragraph (5 sentences minimum) describing the users
of the system. This should expand on potential persona(s) of people intended
to use the system, what are their goals for using the system, and what constraints
may come into play (both limitations of the user and constraints on the task
(3) Write one paragraph (5 sentences minimum) about the system
itself. This should not be an interface sketch/design at this point (since we
will do this in Stage 2); instead, it should be a description of what the user
is able to do with the system to achieve their goals.
Please note that we will revise this description into an advertisement in the
final stage of the project, at which point we will include screen shots, make
it look more appealing, etc. But this first description will allow you to think
creatively about the problem you'd like to solve and how you intend to approach
this from the users' point of view.
On a separate attached page, write up a project plan that covers the remaining
four-week period of the project. The first of the four weeks will be spent on
Stage 2 sketching the interface design and receiving evaluations and suggestions
from fellow students. In subsequent weeks, you should describe, in as much detail
as possible, what aspects of the project you plan to implement.
You should make special note of two things in your plan: (1) besides the GUI,
what other code needs to be developed? (e.g., data structures and a database
related to information in your project); and (2) are you using any special packages,
etc. (e.g., Java Speech API), and if so, when do you plan to integrate this
into your system?
Please email your materials (1-page description,
1-page project plan) as a single PDF file to the professor before the start of class. Please make sure the first page include your name and email address.
The description will be graded for clarity of writing, thought-out and interesting
description of users and system, and comprehensiveness and feasibility of the
As always, your work in this assignment should be your own. It's a
good idea not to do the same project as your best buddies in class --
try something different!