January 25-27, March 1-5, and April 25-May 14.
The course is officially scheduled for M/W/F 11-11:50. However, since I'm out of town much of the semester, we will generally continue the class through the lunch hour and "brown bag" our lunches. Thus you should think of the class as running from 11 to 12:45 on the days we can actually meet.
During the other parts of the semester, the course will be conducted by independent study and email discussion.
The course meets in SCIE 2435.
This course is intended to give students both a theoretical understanding of, and practical experience with, the art of designing computer systems that are easy for non-specialists to use. There will be three main categories of course assignments: readings, evaluations, and projects. Students who are taking the course for 2 credits will have a small number of non-programming projects. Students who are taking the course for 4 credits will also have a set of programming projects, which will require learning the Tcl/Tk programming language.
Despite years of effort, user interface design remains at least as much an art as a science. No textbook tells precisely how to design good user interfaces, but there are quite a few good books and articles in which successful designers reflect on their own experience. These readings cover such topics as task analysis, initial design, prototyping, evaluation, and iterative design. The class will draw on a significant number of such sources as starting points for class discussion and for the evaluations and projects.
Users interfaces surround us all the time, from complex software packages to parking meters, and we often take them for granted. To become more conscious of the design decisions implicit in the artifacts that surround us, class assignments will include detailed evaluations of a number of common devices and software programs.
In the course project, each student or group of student will design and build a useful and usable piece of prototype software with a graphical user interface. We will use the Tcl/Tk software platform for GUI development. Tcl is a simple scripting language, and Tk is an associated graphical tool kit. Together they provide a substrate for rapid GUI prototyping. Although student projects will primarily use this environment, the readings will expose the students to a wider away of alternative tools.
Project topics may be drawn from the students' own research interests, or from a list of ideas to be provided by the instructor. Project scope may range from new widget inventions to whole application systems.
Required for 4 credit students:
Optional for 4 credit students:
Required for all students:
Because I will not be here on a continuous basis, the timing of the work will be a bit different from most other classes. In particular, since he will be on campus during the first week of the semester and then gone for several weeks, there will be readings assigned before that first week, which will be assigned before winter break to allow students time to read them in advance.
During the month of February, students will be expected to correspond with me by email, and to participate in discussions via a class mailing list. Specific milestones to be achieved during that time will include:
I will return to the campus for a week on March first. During that time the class as a whole will meet for a few lectures, and students will also schedule individual meetings to discuss their projects and plans for the rest of the semester. The class will then resume a "virtual" existence until late April, focusing on the actual implementation of the projects, with a few milestones:
I will return to Grinnell on April 25, and will remain for the rest of the semester (3 weeks). During that time, there will be additional readings, lectures, and class discussions, and students will have the opportunity to present their projects to the class.