Important milestones (see your schedule for actual dates)
Organization. Keep your project in a 3-ring binder, beginning with an assignment grading sheet, with index tabs marking the sections; and hand in the entire portfolio at each checkpoint.
Overview. The term project is a major portion of CPSC 481 (worth 25%). Its main purpose is to give you hands-on experience applying some of the design concepts you have learnt in class. Secondary purposes include learning how to storyboard, learning an interface builder, writing a minimalist user manual, and learning how to program a window-based interface.
The project is executed in two parts: design and implementation. Because of equipment and time limitations, the project is limited to what can be accommodated on a modern bit-mapped workstation using the TCL/TK interface toolkit. (You may not use other platforms; sorry.)
General comments. You will select a 'simple' but interesting interactive system that represents an application for some user, or makes an existing application more effective in use. Your goal will be to produce a system that is usable with minimal training by someone who is familiar with computers and interactive window systems. A project should be chosen that maximizes the opportunity for you to use the techniques taught and that minimizes unnecessary coding of non-interface aspects.
Work in groups of three. Groups of four are usually too difficult to coordinate, while a single person working alone does not benefit from group discussion.
It is sometimes possible to combine work on two course projects (if the course instructors permit it). For example, one year a group did an interactive graphics slide-making program. The user interface was marked for this course, and the graphics programming for the Graphics course.
Grades are based on the quality of the written submissions and the quality of the interactive interface, not on the complexity of the database or underlying application. Remember that you are creating a full horizontal prototype, with enough there to show the 'vertical' flavor. You can do this by working in a simple application domain or by hooking into existing software. Alternatively, you can create a very limited real system or simulation that supports the interface enough to give a flavor of what it would be like to interact with the real thing.
Choosing a project. Chose your own project. The best projects are often ones that students either had a direct personal interest in, or were motivated by real needs of people they know (e.g. friends in business). If you are really stuck, a few possibilities are listed below.
WARNING: Don't be too ambitious! I am more interested in seeing a well thought out interface to a simple system than a second-rate interface to a really complex system. Check with your teaching assistant if in doubt.
The Paper Storyboard, Outline, and Design Rationale. You are urged to start thinking about how to implement the system while doing the design, and should have started in earnest by the time the design documents are submitted. Note that your design will be affected by the implementation platform you will be using.
- the application and task domain, with an example task
- the kinds of users who will use it (or would, if it were released);
- a summary of the steps that you are taking to investigate the users and their needs (including investigations of existing systems, vendors of related software, etc.)---be realistic!
- a statement of any difficulties or problems foreseen.
The Screen Snapshots plus Re-design Rationale
The System. You will now implement the interface you have designed, or at least a substantial part of it, in TCL/TK. 'Substantial part' means that examples of the more interesting features (screens, error messages, handling of unexpected input, defaults, robustness, ...) should be demonstrable, even if there are only 'stubs for many of the possible sub-tasks.
Beware of the effort needed to build a system that depends on a complex database, or requires new system facilities to be implemented, etc. The time spent on this should match that of a project with 25% (how much time did you spend studying for your mid-term)? However, people's working habits vary, and poor organization can severely limit the effectiveness of time spent, especially when working in a group. The best groups start early, plan activities, divide the work logically, and communicate well.
This part of the project is graded on the basis of a demonstration at the end of the term. A timetable will be posted and you can book demonstration slots. Groups must identify themselves in booking a slot, and will be required to stick to the booked time unless there is a very pressing reason (e.g. documented medical). I will also use this time to explore each student's involvement and knowledge concerning what has been done. Credit is based on creativity, robustness, how well your system has been implemented according to the interface design principles, and in terms of the overall 'feel' and 'ease of use.' It is permissible to have some sub task selections return some kind of 'This facility is still under development' message without penalty. Some credit given will be related to the choice of application and dialog style, as some are clearly more difficult or innovative than others.
You are emphatically cautioned against biting off more than you can chew! A small project that offers scope for a reasonable breadth of design, and that has enough carefully implemented to illustrate how you attended to the design principles taught in class, will score much higher than an ambitious project that does not offer scope for application of the principles and/or illustrates only a restricted range of them. Clarity and good organization in the design documents are also considered important in assessing credit.
The minimalist manual. This is a minimalist manual! It should be short, concise, and be something that the user will actually read. It is not a reference manual. I will tell you how to write these manuals in class. Quality, not quantity, is sought. Maximum length of manual is 10 pages.
Final design critique. You must also write a 1-2 page final design critique of your system, including what parts of the design works well and what still needs improvement.