CS 349: User Interfaces

SE 382: Human Computer Interaction (User Interfaces)

Term and Year of Offering: Winter 2010

Course Number and Title: CS349, User Interfaces, SE382, Human Computer Interaction

Instructor

Professor Michael Terry (mterry@cs.uwaterloo.ca)
Office: DC 2118
Office hours: Wednesdays, 2:30-3:30 in DC 2118

TAs
Eugene Greene (eugene.d.greene@gmail.com): Fridays, 1:30-3:30 (DC 2303)
Matthew Kay (matthew.kay@gmail.com): Wednesdays, Thursdays, 2:30-3:30 in DC 3591 (HCI Lab)
Ben Lafreniere (bjlafren@cs.uwaterloo.ca): Mondays 3-4:00PM, Wednesdays 10:30-11:30 in DC 3591 (HCI Lab)
Adam Fourney (afourney@cs.uwaterloo.ca): Tuesdays, Thursdays, 9:30-10:30 in DC 3591 (HCI Lab)

Meeting Time and Location
SE 382
MWF 11:30-12:20PM, RCH 307

CS 349
MWF 12:30-1:20PM, RCH 309

Course Description

This course teaches the principles of constructing user interfaces. In this course you will learn how to actually implement user interfaces. Some attention is paid to issues of design and usability, but CS 489, HCI, provides more complete treatment of these topics.

Course Objectives

This course provides an introduction to contemporary user interfaces, including the basics of human-computer interaction, the user interface design/evaluation process, and the architectures within which user interfaces are developed. Students implement and evaluate portions of typical user interfaces in a series of programming assignments.

Course Overview

Required Text

Supplementary Text

Class, Assignments, and Exams

Lecture notes are generally made available on the course website before class.

There will be 4-5 assignments. The assignments involve large amounts of programming and require significant time to complete. A common mistake people make in this course is to underestimate the time required to create a truly interactive application: Interactive applications are complex and require developers and designers to attend to numerous details before the application can be easy-to-use, intuitive, and useful. However, if done well, you will construct applications that others will find entertaining and enjoyable to use.

All posted assignments should be considered drafts until two weeks prior to the due date, at which time the requirements will be fixed (though clarifications may occur within these last two weeks). Any revisions will be announced in class and the assignment web page will be annotated with the changes. That said, any additions/revisions to assignment drafts are generally minor in nature, so you should start working on the assignment as soon as it is posted.

Unless otherwise specified, all assignments are individual assignments. You are expected to do your own work. If you use code from a third party (such as code examples from the web, but not code from another student in the course, past or present), you must properly attribute this use in your code. While it is expected that you will incorporate and modify code from external sources, it is expected that such code reuse will constitute a significantly small portion of your final code. If there are any doubts, contact the prof. We reserve the right to check your code against others' code and previous terms' assignments to detect instances of cheating.

We typically supply code to assist you with the assignments. The code is provided with the following caveats:

Absolutely no late assignments will be accepted. You may not email the prof or TAs with your assignments; they will be discarded. There are no exceptions to this rule. If the deadline is approaching, it is highly advised you submit a version just to insure you have something submitted.

Your mark will be determined based on these weights:

Marked assignments may be retrieved from the professor after class or during his office hours.

Course Resources

The course resource page will be of help to you when doing assignments.

Syllabus

The following is a tentative syllabus. Specific lecture topics may vary.

Date

Topic

Lecture Slides

Assignments

January 4

Introduction + Overview

Intro


January 6

X lib, drawing and handling basic events in X

X Windows

xdemo_2.c

Olsen, Chapter 1

pages 79-86 of X Window System

January 8

More on X

Output

Olsen, Chapter 2

 

 

 

 

January 11

Events

Events, part 1

PaintDemo.java

Olsen, Chapter 3

January 13

Events

Events, part 2 (.NET)

ListenerDemo.java

DelegateDemo.cs

EventDemo.cs

Olsen, Chapter 4

January 15

Interactive components

Designing Components


 

 

 

 

January 18

MVC

MVC

ComponentAndTableDemo.java

MVCDemo.java

Assignment 1 due

Wikipedia entry on MVC

January 20

UI design patterns

Guest lecturer: Adam Fourney

Design patterns

LayoutDemo.java


January 21

Layout

Layout

 

 

 

 

 

January 25

History

History

History video: Part 1, Part 2

Olsen, Chapter 6

 

January 27

Graphic output devices, graphic output abstractions

 

Graphic output

Olsen, Chapter 7

January 29

Input devices

Input devices


 

 

 

 

February 1

Undo

Undo

UndoDemo.java

 

February 3

Custom components

Custom Components

HouseModel.java


February 5

Users

Users


 

 

 

 

February 8

?? Mystery Lecture ??

Visual Design

Assignment 2 due

Olsen, Chapter 5

February 10

Visual design

Models of interaction

Olsen, Chapter 8

February 10, 5-6:30PM
Location:

Note change!

MC 2066 (SE), MC 4061(CS)

Midterm    

February 12

Models of interaction

 

 

       
February 15 Reading Week    

 

 

 

 

February 22

Design

Guest lecturer: Matt Kay

Design

 

February 24

Drag and drop and the clipboard

Guest lecturer: Ben Lafreniere

Clipboard

ClipboardDemo.java

Required readings:

February 26

Timers, threading, and handling long tasks

 

Guest lecturer: Adam Fourney

Long Tasks

ThreadDemo.java 

 

 

 

 

 

March 1

Interaction and interaction guidelines

Models of Interaction

Assignment 3 due at 5PM

March 3

Typography

Typography


March 5

Specifying interaction

Specifying Interaction

Olsen, Chapter 11

 

 

 

 

March 8

Production systems

Production Systems


March 10

Production systems

 

Olsen, Chapter 15

March 12

2D graphics, affine transforms, and scene graphs

 

Olsen, Chapters 12, 13, 14

 

 

 

 

March 15

Affine transforms and scene graphs

Internationalization

AffineDemo.java

Scene graph demo code (coming as part of A5)

Internationalization
LocaleDemo.java

 

March 17

Accessibility

Accessibility

Olsen, Chapter 10

March 19

Scripting

 

Scripting

Olsen, Chapter 9

 

 

 

 

 

March 22

Experimentation

Experimentation

Assignment 4 due, 5PM

March 24

Bias in UI Design

Bias


March 26


Class canceled due to SE design symposium


 

 

 

 

 

March 29

Class canceled

 


March 31

UI/HCI research at Waterloo

 

 

April 2

No class -- holiday

 


April 5 Areas of HCI research
Research

Last lecture (from '09)
Assignment 5 due

April 15, 4PM - 6:30PM

RCH 301 (SE)

RCH 302 (CS)

Final Exam    

Important notes about being a student here at Waterloo...

Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check www.uwaterloo.ca/academicintegrity/ for more information.]

Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4, www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.

Discipline: A student is expected to know what constitutes academic integrity [check www.uwaterloo.ca/academicintegrity/] to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about 'rules' for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline, www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, www.adm.uwaterloo.ca/infosec/guidelines/penaltyguidelines.htm.

Appeals: A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals) www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.

Note for Students with Disabilities: The Office for persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.

Notice on student absences due to the H1N1 influenza virus

Students seeking accommodations from a course instructor for missed course requirements due to an "influenza-like illness" (including the H1N1 virus) must declare their absences through Quest. Specific instructions on how to declare such absences may be found on the following web page:

http://www.quest.uwaterloo.ca/help/howdoi/students/influenza_absenteeism.html
Note that a declaration of absence must be made by the second calendar day after the absence began, and that the form referred to by the above web page is only intended for an online declaration of absences due to an "influenza-like illness".

For absences due to other illnesses, as well as absences due to influenza-related illnesses lasting longer than 10 days, the standard Verification of Illness form should be used. A link to this form is available on the following web page:

http://www.healthservices.uwaterloo.ca/Health_Services/verification.html
General information concerning University policies on illnesses may be found at
http://www.registrar.uwaterloo.ca/students/accom_illness.html