CS 4470: Introduction to User Interface Software &
CS 6456: Principles of User Interface Software


Fall 2006

 

Jump to syllabus

General Information:

Previous Semesters: Spring 2006 Fall 2005 Fall 2004 Fall 2003 Fall 2002 Fall 2001


Class Policies and Grading

How Grades Will Be Computed. Final grades will be calculated based on the following weighting scheme. It is possible that the weighting formula may be adjusted as the semester progresses. Any such changes will be announced to the class:

Undergrads
Grads
CategoryWeight
Homework 110%
Homework 210%
Homework 310%
Homework 410%
Homework 510%
Homework 610%
Midterm20%
Final Exam20%
CategoryWeight
Homework 110%
Homework 210%
Homework 310%
Project (5 milestones)50%
Midterm20%
Final ExamN/A

The final letter grade may include a curve that respects the relative distribution of grades throughout the semester. However, an overall average of 90-100 will result in an A, between 80-89 a B, between 70-79 a C, between 60-69 a D.

Students taking the class pass/fail must receive a B or better to pass. Students auditing the class will not be required to complete homework or exams.

Homeworks. Details on the requirements for successfully completing the homeworks will be given in the assignment on the Web. The homework is due by 11:59PM on the announced due date. The grade for a late homework assignment will be marked down 25% for each day it is late.

The work is expected to be completed by individuals and not in collaboration with others.

Exams. Exams will be based on assigned readings, lectures, and homework.

I expect all students to show up for exams and submit homeworks in a timely manner. No make-up exams will be given without written notice of an emergency (doctor's notice if in the hospital, for example), and IN ADVANCE if possible.

Project. Graduate students in the class will be expected to complete a multi-part project during the second half of the course. The project structure will be presented in an overview lecture approximately halfway through the semester. The project consists of five separate milestones, including a project definition phase, compilation of a reading list, literature review, implementation, and demo.

Other Policies. A good portion of the learning in any upper level or graduate class comes from intelligent discussion during the class. If you don't attend class, you cannot participate, and your performance may reflect that. I expect that each student will make an effort to attend all lectures and contribute constructively to the discussion.

Students are expected to follow Georgia Tech's code of academic conduct. I am required to forward all suspected cases of academic misconduct to the Dean of Students, where they will be pursued to resolution. This is a very unpleasant process for all involved, so please do not put us in this situation.


Reading Materials

There is no required textbook for this class.

However, as we will be doing programming assignments using the Java Swing GUI toolkit, understanding the nuts and bolts of Swing programming may be useful. Thus, I'm recommending Java Swing, Second Edition (Loy, Eckstein, Wood, Elliot, and Cole; O'Reilly Press) as a good book on Swing with broad coverage of the toolkit.

If you don't want/need the book, you still may want to take a look at some of the links and documents in the Resources section of this page.

Another good book (also not required, but useful if you want to do fancy Swing stuff either in class or later on your own) is Swing Hacks (Marinacci and Adamson; O'Reilly Press). Lots of nifty tricks, plus it's written by a Tech alum.

Additional required readings for each class will be provided electronically and posted on the course syllabus. In addition, some supplemental readings will be provided. These readings will not be required but may prove useful as background material for students.


Resources, Documents, and Software


Tentative Class Schedule and Syllabus

(Please check the class schedule periodically, as it may be updated as necessary.)

Week Date Topic Materials Assignments & Readings
1 Aug
22
Introduction
  • Introductions
  • Course goals
  • Grading, policies, admininstrivia.
  • Motivation: why a class on UI software?
Slides: Introduction
Aug
24
Movie Day! Slides:
  • None
Links:
2 Aug
29
UI Software Organization
  • Separation of concerns
  • Basic UI toolkit functionality
  • Some Swing examples
Slides: UI Software Org Supplemental Readings: Assignments: Readings:
  • State of the Art in User Interface Software Tools, Brad Myers
Aug
31
Continue UI Software Organization
Output: Low-Level
  • Basic devices (CRTs, LCDs)
  • Framebuffers, color palettes, and gamma correction
  • Imaging models (raster, vector, stencil-and-paint)
  • "Undrawing"
  • Drawing abstractions
  • Computer typography
Slides: Output 1 (Devices) Supplemental Readings:
3 Sept
5
Continue Output: Low-Level
Slides:
  • Continued from previous class
Supplemental Readings:
Readings:
Sept
7
Output: Toolkits and Window Systems
  • What's a window system?
  • Toolkit responsibilities
  • Damage management
  • Layout
  • Drawing and redrawing
Slides: Output 2 (SW) Slides: Using MVC with Swing Components Supplemental Readings:
  • MVC Meets Swing (somewhat out-of-order but will be helpful in the next homework)
  • Chapter 28 (esp. Creating Your Own Component) in Java Swing
Assignments:
  • Homework 1 DUE tonight at 11:59PM
  • Homework 2 out
4 Sept
12
Input: Devices
  • Keyboards
  • Buttons
  • Valuators
  • Locators
  • Input hardware
Slides: Input 1 (Devices) Supplemental Readings: Readings:
Sept
14
Input: Toolkits and Window Systems
  • Dealing with device diversity
  • Device ontologies
  • The event model as unifying abstraction
  • Implementing event systems
  • Dispatch strategies, focus, and picking
Slides: Input 2 (SW) Supplemental Readings: Readings:
5 Sept
19
INSTRUCTOR IS OUT OF TOWN TODAY--NO CLASS!
Sept
21
Wrap up Input (SW)
Assignments:
  • Homework 2 DUE tonight at 11:59PM
  • Homework 3 out
6 Sept
26
Interaction Techniques
  • What's an interaction technique?
  • Design of interaction techniques
  • Affordances and feedback
  • Fitts' law
  • Case studies
  • "Beating" Fitts' law
Slides: Input 3 (Interaction Techniques)
Sept
28
Continue Interaction Techniques
  • "Beating" Fitts' law
Implementing Interaction Techniques
  • Case study: rubber banding
  • Finite State Machines
  • Hand-coded FSMs
  • Table-driven FSMs
Slides: Implementing Interaction Techniques
7 Oct
3
Damage and Layout
  • Recap of damage
  • Swing validation
  • Bottom-up versus top-down layout
  • Boxes-and-glue
  • Springs-and-struts
  • Constraints
  • One-way versus multi-way constraints
  • Implementing constraints
Slides: Damage and Layout
Oct
5
Continue Damage and Layout
  • Boxes-and-glue
  • Springs-and-struts
  • Constraints
  • One-way versus multi-way constraints
  • Implementing constraints
Slides:
  • Continued from previous class
Assignments:
8 Oct
10
Continue Constraints
  • One-way versus multi-way constraints
  • Implementing constraints
Slides:
  • Continued from previous class
Oct
12
MIDTERM EXAM Assignments:
  • Grads: Project Milestone 0 DUE Friday 10/13, 11:59PM
9 Oct
17
No Class! GT Fall Recess!
Oct
19
Exam review

Pen Interfaces and Recognition

  • Pens for text and command input
  • Modality
  • 9-square recognizer
  • Siger recognizer
Slides: Recognizers Supplemental Readings: Assignments:
  • Grads: Project Milestone 1 DUE Friday 10/20 11:59PM
  • Undergrads: Homework 4 out
Readings:
10 Oct
24
Continue Pen Interfaces and Recognition
  • 9-square recognizer
Pen-Based Computing
  • Natural data types
  • Pen technology
  • Pen interaction
  • Ink as data
Slides: Pen-Based Computing Supplemental Readings: Readings:
Oct
26
Animation in the Interface
  • Why animation?
  • Three principles from traditional cartoon animation: solidity, exaggeration, reinforcement
  • Animation in a toolkit
  • Example: subArctic
  • Example: Swing
Slides: Animation in the Interface Supplemental Readings: Readings:
11 Oct
31
Continue Animation in the Interface
  • Animation in a toolkit
  • Example: subArctic
  • Example: Swing
Slides:
  • Continued from previous class
Supplemental Readings:
Readings:
Nov
2
Two Handed Interaction and Magic Lenses
  • Motivation for two-handed interaction
  • Examples
  • Toolglasses and Magic Lenses
  • Examples and advantages
  • Implementing lenses
Slides: Two Handed Interaction and Magic Lenses Supplemental Readings: Assignments:
  • Undergrads: Homework 4 DUE 11:59PM
  • Undergrads: Homework 5 out
Readings:
12 Nov
7
Finish Lenses
  • Implementing lenses in Swing
Sound and Non-speech Audio
  • Basics of sound
  • Speech versus non-speech audio
  • Using audio in interfaces
  • How audio interaction is different from graphical interaction
  • Case study: Mercator
  • Audio input
Slides: Sound and Non-speech Audio Supplemental Readings: Readings:
Nov
9
Speech-based Interfaces
  • Low-level properties of speech
  • Challenges of speech-based interfaces
  • Features of speech
  • Menu systems versus SpeechActs
  • Case studies: Suede, PAL, Family Intercom
Slides: Speech-based Interfaces Supplemental Readings: Assignments:
  • Grads: Project Milestone 2 DUE today at start of class
13 Nov
14
Video in the Interface
  • Video as a natural data type
  • Properties of video
  • Capture-and-access applications
  • Capture-and-access infrastructure
  • Video recognition
Slides: Video in the Interface
Nov
16
Ubicomp and Physical Interaction
  • Context-aware computing
  • Context applications and infrastructure
  • Case study: intelligent rooms
  • Smart room infrastructure
  • Tangible user interfaces
  • Phidgets
Slides: Ubicomp and Physical Interaction
  • Keynote
  • PDF
  • Assignments:
    • Undergrads: Homework 5 DUE 11:59PM
    • Undergrads: Homework 6 out
    14 Nov
    21
    Feedback session, Q&A
    Nov
    23
    No Class! Thanksgiving Break!
    15 Nov
    28
    Undergrad project demos -- hook up to the projector and flaunt your project's chops.
    Nov
    30
    Project demos and presentations (Project Milestone 4) Slides:
    • None
    Assignments:
    • Undergrads: Homework 6 DUE 11:59PM
    • Grads: Project Milestone 3 DUE Sunday, 11:59PM
    16 Dec
    5
    Project demos and presentations (Project Milestone 4)

    Final exam Q&A session

    Slides:
    • None
    Dec
    7
    INSTRUCTOR IS OUT OF TOWN TODAY--NO CLASS!
    Finals Dec
    12
    FINAL EXAM: Period 4
    Tuesday, December 12, 8:00 - 10:50
    In our regular classroom