Where: room MS 680J, 220-6055
one hour after class on Monday and Wednesday
by appointment, arranged via email or telephone
by drop-in for short queries if you really need some fast action (but no
guarantees on this!)
|Fundamental theory and practice of the design, implementation, and
evaluation of humancomputer interfaces. Topics include: principles
of design; methods for evaluating interfaces with or without user involvement;
techniques for prototyping and implementing graphical user interfaces.
|Relation to other
333 (Foundations of Software Engineering).
Prerequisite For: CPSC
547 (Advanced Information Systems)
Recommended Preparation For: CPSC
453 (Computer Graphics I)
||Human computer interaction stresses the importance of good
interfaces and the relationship of interface design to effective human
interaction with computers. On completion of the course, you will have
theoretical knowledge and practical experiences in the fundamental aspects
of designing, implementing and evaluating interfaces.
You will know what is meant good design, and you will have experiences
designing systems that are usable by people.
You will know contemporary techniques for implementing interfaces, and
you will have experienced building applications through prototyping tools,
window-based systems, and toolkits.
You will know and have practiced a variety of simple methods for evaluating
the quality of an interface.
||The course will unfold by examining design, implementation,
and evaluation. Theoretical class lectures will be augmented by case studies
of interface successes and failures; you will be expected to provide examples
of problems you have had with computers and contribute to class discussion.
You will also apply the theoretical knowledge learned to series of assignments
that brings you through selected portions of a design, implementation,
and evaluation cycle. The course will also introduce you to novel interfaces
that go beyond what we normally see in today's graphical user interfaces.
||If you are enrolled in this course, you are probably an
undergraduate student in Computer Science at the University of Calgary.
You are probably in the third or last year of your degree program. You
should already have basic computer science skills (programming, data structures,
software engineering). You will be especially well prepared if you have
taken an introductory psychology course as one of your options.
Copies of the lecture notes and handouts available as both paper booklets
you can buy at cost and through the web.
Baecker, R., Grudin, J., Buxton, W., and Greenberg, S. (1995)
in Human Computer Interaction: Towards the Year 2000 (2nd Edition),
950 pages, Morgan Kaufmann Publishers Inc, California. ISBN 1-55860-246-1,
Dewey Catalog QA76.9.H85R43. Back-cover
While you do not need this book to pass the course, reading the relevant
chapters will give you greater knowledge and depth of the material discussed
in class. Chapters and excerpts relevant to the class are noted along with
the topic descriptions in each topic page. In general, this book contains
a huge amount of material related to HCI, much which goes far beyond this
course. It contains over 70 important papers written by HCI researchers,
structured into 14 chapters. Each chapter introduces and briefly surveys
its particular topic, and includes many references to other literature
as well as appropriate technical videos.
You may also need an on-line tutorial or book to help you learn the programming
language to be used for your assignments. Because there are now so many
good books available, no specific book will be recommended here.
||You must achieve a passing grade in both the exam component and
the assignment component to pass the course!
Exams will be a mix of short and long answers, and multiple choice questions.
Questions will test your knowledge about facts you have learnt in the course,
your interface design abilities, and your ability to link and apply the
concepts presented in the course. This includes both in-class work and
text readings. The exams will also test your ability to communicate your
knowledge to us: brain-dumps and knowing an odd phrase or two don't count
for much with us. If you don't communicate your answer, you don't get any
Registrar's final: 30%
Assignment 1: 13%
Assignment 2: 12%
Assignment 3: 25%
In the assignments, you will apply the knowledge you learnt in class.
Some assignments are pen and paper exercises. Reports that are poorly
written or presented will be heavily penalized or rejected, no matter
how good the content!
Other assignments have a programming component. They will require you to
learn particular interface implementation tools outside of class. All programs
must be demonstrated to myself or the TA. Non-working programs get an
F. We are not prepared to go through your code to try and figure out
how your system should have looked. However, code should be well structured
and well documented. You will lose marks if it is isn't.
Assignments will be handed out in class and further elaborated upon in
the labs. Assignment deadlines are strictly enforced. Late assignments
will be heavily penalized or not accepted. No extensions will be given
without medical documentation.
Do not fall into the trap of spending weeks programming an assignment ,
but studying for only hours on an exam worth 30% of your grade!
||Labs will be used to guide you through your assignments. You will:
receive assignment details and expectations;
learn specific skills necessary to successfully complete your assignment;
e.g. evaluation methodology, details of programming window systems
and interface toolkits;
participated in class discussions of intermediate results of your assignments;
receive feedback on project milestones by the teaching assistant and the