Introduction to Graphical Human-Machine Interfaces
COURSE OVERVIEW AND SYLLABUS
Monday, January 13, 1997
|Class meets||Mon/Wed 9:30-10:50 am CC 239|
|Office:||Amos Eaton 205|
|Office Hours:||Mon Wed 2:00-3:30 pm (or e-mail for an appointment)|
|Teaching Assistant:||Rick Kline|
|Office:||Amos Eaton 206|
|Office Hours:||Tue 10:30 am - noon,Thu 1:30-3:00 pm (or e-mail for an appointment)|
This course is an introduction to the design, implementation, and evaluation of human-computer interfaces. Good interfaces are developed by understanding the relationship between user interface design and human-computer interaction. The course begins with an examination of how poorly designed ``everyday'' devices, such as doors, VCRs, and telephones can lead to devices which are unusable by humans. Many of the design principles for everyday things are also applicable to the design of computer devices and user interfaces. After a brief examination of the design of user interfaces, we will concentrate on how to implement a particular design. We will examine a variety of user interface development environments which are used on today's computing platforms. Students will study and use a ``user-centered'' design methodology which will enable them to evaluate their user interface implementation to uncover problems which can be solved by revising their initial design, thus completing an iterative cycle. The final segment of the course will consist of student presentations of current research in human-computer interaction.
Several programming projects will be assigned to enable each student to implement user interfaces using a variety of user interface tools (at least 4), so that the students will get a better appreciation of the differences among the tools.
In addition, there will be several in-class, group projects, where students can apply design, prototyping, and evaluation techniques.
Participants are also expected to write a research paper and give an in-class presentation based on one or more relevant scientific papers.
Prerequisites: Students should be proficient with the use of common data structures and algorithms (courses 66-230 or 66-436) and have a working knowledge of the C++ or C language. Familiarity with HTML is also desirable.
On completion of this course you will have theoretical and practical experiences in the fundamental aspects of designing, implementing, and evaluating user interfaces.
There are two required text books for this course:
Other reading materials may also be handed out or otherwise made available as needed to supplement the two text books.
This course will not simply be a ``lecture'' course, instead, you will be expected to participate in a variety of activities, both inside and outside the classroom, to make the learning experience interactive and entertaining.
In class, there will be:
Some of the material, particularly at the beginning of the course, will be taught through traditional lectures. In most cases, lecture notes will come from sources other than the text books.
One of the best ways to learn about user interfaces is to see videotapes of actual systems in use. Videotapes allow us to explore important concepts in ways which are not possible using traditional, static media. Some videotapes will allow us to see user interfaces in action, which are otherwise not available on campus, either because they are research prototypes or because they are of historical interest. Yet other videotapes will allow you to see and hear guest lectures by renowned computer scientists. At the conclusion of each video session you will be expected to summarize what you have learned in a brief ``video lab report'' on special forms which will be provided.
Many techniques in user interface design and development require a group effort. In fact, almost all commercial user interface development is carried out in teams of people with varying expertise. Being able to work well with a diverse group of people is very important and necessary for most computing jobs.
You will have the opportunity to perform some group activities through several in-class exercises. For each of these group activities, you will be required to write up a group report and/or present your group's findings with the rest of the class.
The reading material for the course will come from not only the two text books, but also through scientific papers and other sources (which will be handed out in class). From time to time we will discuss some of these readings in-class. For each of these sessions, a few of you will be selected to act as ``moderators'' but everyone should be expected to participate actively so as to demonstrate competency in the material.
To be a successful computer scientist, you must be able to present your work, both through effective writing and oral presentation. Toward the end of the course, you will have the opportunity to practice both of these important tasks! You will work in pairs to investigate some aspect of human-computer interaction, by reading one or more papers presented during the past year at a major conference. Together, you will write a research paper (more on this below), summarizing what you have learned, and then present your findings to the rest of the class.
Outside of class, you are expected to:
A Usenet newsgroup ( rpi.courses.Spring97.GHMI) has been created to allow us to carry on discussions of the material outside of the classroom. You are expected to spend some time each week reading and commenting on what other participants bring up. In addition, a weekly discussion question will be posted in which everyone is expected to contribute. You are also welcome to post your own questions and comments about the course.
The World Wide Web has become a very pervasive medium and is being used not only in education, but also in commerce, government, and entertainment. During the course, you may be given some exercises that involve publishing your work (or that of your group) on the Web. Note that the course will also have its own Web site (more on this below).
There will be several programming projects (at least 4) to give you practical experience developing user interfaces using today's user interface tools. More specifics about these projects will be given later as the course unfolds.
You will work in pairs to investigate some aspect of human-computer interaction, by reading one or more papers presented during the past year at a major conference. Together, you will write a research paper summarizing what you have learned, and present your findings to the rest of the class. The specific selections will be determined in accordance to your own personal interests, in consultation with me.
The readings will be drawn from the following sources, all of which are available for perusal in the my office:
In order to provide a more interactive experience as we learn the material in the course, a Usenet newsgroup and Web site have been established so that we may share our experiences with others outside of the classroom.
Each week a discussion question - usually related to the material being presented that week - will be posted to the newsgroup. You are expected to spend a few minutes each week thinking about the question and posting your comments. This will, hopefully, stimulate some lively debate outside of the classroom!
Other course announcements may also be posted to the newsgroup, so it is important that you monitor the newsgroup on a regular basis.
The course has its own Web site on the Computer Science Department Web server. You can find course announcements and the current schedule here. Also, there will be some pointers to other sites related to human-computer interaction and user interfaces on the Web. In addition, I will do my best to make available all course handouts, such as lecture notes and assignments available on the Web as well.
There will be no exams for this course.
Your grade will be determined (roughly) from the following grading scheme:
30% Programming projects. 30% Research paper and oral presentation. 15% In-Class exercises. 15% Active participation inside and outside the classroom. 10% Video lab reports.
How your work will be graded. All evaluations, whether of homeworks, programming projects, or in-class exercises/presentations, are first and foremost on the basis of overall effort and creativity displayed.
All work turned in is due on the date specified on the assignment sheet. No exceptions! Late assignments will be accepted only with prior notification, and will be penalized one letter grade for each day the assignment is late. A late assignment turned in without prior notification to the instructor or TA will get no credit.
Programming projects are graded on the basis of the quality of the human-machine interface and the breadth/variety of features provided for interaction with the system on the part of the user. Your grade will also be based on how well your system demonstrates your proficiency in utilizing the user interface tool being used for the underlying implementation.
Programming projects will be due on midnight on the date specified, unless otherwise noted. Although, your source code will not be examined to determine your grade, you will be required to submit your source code by the project due date. Sign-up sheets for scheduling a live demo (either with the instructor or the TA) of your system will be made available around each deadline. Since you will have to demonstrate your program to us, your program must run! Programs that fail to run will receive zero credit.
Research papers will be graded on the overall quality and effectiveness of the writing. In addition, we will be looking for your own thoughts and comments on the systems you discuss, not just a reiteration of what is presented in the scientific papers you have read.
For group write-ups please include the names of all participants. All participants in a group activity, whether it be an in-class exercise or a research paper/presentation, will get the same grade for that activity. Remember, it is important that everyone in the group participate. If you find that someone in the group is not making a contribution, please let me or the TA know.
It is expected that each student will do his or her own work on individual assignments and projects (those not part of a group activity). For group activities, the work should be done by the participants of each group only. Copying another person's or another group's work is considered cheating.
Your feedback is important to us! As the course evolves, please feel free to send e-mail to either the instructor or the TA about any aspect of the course. Let us know what you think of the lectures, readings, exercises, projects, etc. Your input will help us to ensure that the course is an educational and enjoyable experience for everyone.
The following is a tentative list of topics that are to be covered in
the course. The actual topics and order of presentation of the topics
may differ from that shown below. A more detailed syllabus and
schedule can befound on the course Web site.
Course overview and Introduction to Human-Computer Interaction
History of human-computer interaction
Human factors and cognitive psychology
DESIGN OF USER INTERFACES
The design of everyday things
Designing with the user
- user-centered design
- participatory design
Designing without the user
- task centered design
- models of human behavior
- design guidelines
- usability heuristics
What is usability?
Usability engineering lifecycle
Usability inspection methods
IMPLEMENTATION OF USER INTERFACES
User interface software tools
- windowing systems/GUIs
- application frameworks
- higher order tools
- prototyping tools
- interface builders
Examination of many systems
EVALUATION OF USER INTERFACES
Evaluation with user testing
Evaluation with usability inspection methods
- heuristic evaluation
- cognitive walk-through
ADVANCED TOPICS IN HUMAN COMPUTER INTERACTION
Will be drawn from recent conference proceedings