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


Fall 2012

 

Jump to syllabus

General Information:

Previous Semesters: Fall 2011 Fall 2010 Fall 2009 Fall 2008 Fall 2007 Fall 2006 Spring 2006 Fall 2004 Fall 2003 Fall 2002 Fall 2001 Fall 2000


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 112%
Homework 212%
Homework 312%
Homework 412%
Homework 512%
Exam #120%
Exam #220%
CategoryWeight
Homework 110%
Homework 210%
Project40%
Exam #120%
Exam #220%

For final letter grades, 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:55PM on the announced due date. The grade for a late homework assignment will be marked down 10 points for each day it is late, maximum of three days (homework turned in more than three days late will receive a zero).

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 class. The project consists of separate milestones, including a project proposal, implementation, demo, and final writeup.

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 Georgia Tech alum. Another, more recent book in a similar vein that I haven't yet checked out in as much detail is Filthy Rich Clients by Haase and Guy.

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

We will be using Java Standard Edition, version 6 for this class. Please be sure your code works with this version. Note: at the time of this class, version 7 is available but very new and has some reported bugs. Please do not use Java 7 for the homeworks!

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 Tues
Aug
21
Introduction
  • Introductions
  • Course goals
  • Grading, policies, admininstrivia.
  • Grad project overview
  • Motivation: why a class on UI software?
Slides: Introduction Supplemental Readings: Overview of Grad Project
Thur
Aug
23
UI Software Organization
  • Separation of concerns
  • Basic UI toolkit functionality
  • Some Swing examples
Slides: UI Software Org
Supplemental Readings:
Assignments: Readings:
2 Tues
Aug
28
Wrap up UI Software Organization

Movie Day!

Slides:
  • None
Links:
Thur
Aug
30
Wrap up movies

Output: Low-Level

  • Basic devices (CRTs, LCDs)
  • Framebuffers, color palettes, and gamma correction
  • Imaging models (raster, vector, stencil-and-paint)
  • "Undrawing"
Slides: Output 1 (Hardware)
Supplemental Readings:
Readings:
3 Tues
Sept
4
Continue Output: Low-Level
  • Imaging models (raster, vector, stencil-and-paint)
  • "Undrawing"
Output: Toolkits and Window Systems
  • What's a window system?
  • Toolkit responsibilities
  • Compositing window systems
  • Division of responsibilities between toolkits and window systems
  • Resolution independence and HiDPI
  • Computer typography
Slides: Output 2 (Software)
Supplemental Readings:
Thur
Sept
6
NO CLASS TODAY! Instructor out of town.
4 Tues
Sept
11
Continue Output: Toolkits and Window Systems
  • Division of responsibilities between toolkits and window systems
  • Resolution independence and HiDPI
  • Computer typography
Slides
  • Continued from previous class

Supplemental Readings:


Thur
Sept
13

Input: Devices
  • Keyboards
  • Buttons
  • Valuators
  • Locators
  • Input hardware

Slides: Input 1 (Devices)
Supplemental Readings:

Assignments: Readings:
5 Tues
Sept
18

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)
Slides: Using MVC with Swing Components Supplemental Readings:
  • Tutorial on writing event listeners
  • A bit of history on where the Java "delegated" event model came from
  • Tutorial on using the Swing focus subsystem
  • Tutorial on Swing drag-and-drop
  • 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
  • The ImageIcon class is the easiest way to load and display an image in Swing
Readings:
Thur
Sept
20
Wrap up Input (SW)
  • Picking
  • Focus
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)
Supplemental Readings
Assignments:
  • Grads: preliminary project proposal DUE!
6 Tues
Sept
25
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 Readings:
Thur
Sept
27
Wrap up FSMs

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 Supplemental Readings: Readings:
7 Tues
Oct
2
Wrap Up Constraints
  • Constraints as a Layout Solution
  • One-way versus multi-way constraints
  • Implementing Constraints

Pen Interfaces and Recognition

  • Pens for text and command input
  • Implementing simple recognizers
Slides: Recognizers
Supplemental Readings and Materials:
Readings:
Thur
Oct
4
Wrap Up Pen Interfaces and Recognition
  • Pens for text and command input
  • Modality
  • 9-square recognizer
  • Siger recognizer

Brief Exam Review and Q&A

Slides:
  • Continued from previous class
Assignments:

8 Tues
Oct
9
NO CLASS TODAY! Instructor out of town.
Thur
Oct
11
Exam #1 Assignments:
  • Grads: final project proposal with lit review DUE 11:55PM Saturday, October 13!
9 Tues
Oct
16
GT Fall Recess
Thur
Oct
18
Exam Review

Wrap-up of Recognition

Pen-Based and Touch-Based Computing

  • Natural data types
  • Pen technology
  • Pen interaction
  • Ink as data
  • Pen versus touch interaction
Slides: Pen- and Touch-Based Computing

Supplemental Readings:

Readings:
10 Tues
Oct
23
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:
Thur
Oct
25
No class today! Assignments:
  • Undergrads: Homework #3 DUE!
  • Undergrads: Homework #4 out
11 Tues
Oct
30
Wrap up of Animation
  • subArctic, Core Animation, and Swing
Touch Interaction: Hardware
  • Resistive
  • Capacitive
  • Vision-based
  • Limitations and trade-offs
Slides: Touchscreen Technology Supplemental Readings:
Thur
Nov
1
Wrapup of Touch Hardware

Touch Interaction and Touch Gestures

  • Single-touch
  • Multi-touch
  • Bi-manual input and interaction techniques (magic lenses, toolglasses
  • Multi-user multi-touch
Slides: Touch Interaction and Touch Gestures
Supplemental Readings:
  • A VIDEO showing the original toolglass system
  • A VIDEO on tape drawing, and digital tape drawing
Readings:
12 Tues
Nov
6
Wrap-up of Touch Interaction
  • Toolglasses and Magic Lenses
  • Examples and advantages
  • Implementing lenses
Supplemental Readings:
Thur
Nov
8
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:
13 Tues
Nov
13
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:

Readings:
Thur
Nov
15
Ubiquitous Computing and Vision-Based Interfaces
  • Ubicomp and the third wave of computing
  • Envisionment videos
  • Video as a natural data type
  • Kinect and Wiimote
  • Off-the-desktop interaction
Slides: Ubicomp and Computer Vision
Supplemental Readings:        
Readings:

Assignments:
  • Undergrads: Homework #4 DUE!
  • Undergrads: Homework #5 out
14 Tues
Nov
20
Undergrad Project Demos (optional, extra credit)
Thur
Nov
22
Thanksgiving
15 Tues
Nov
27
Grad Project Demos (Project Milestone 3) Assignments:
  • Grads: project implementations due BEFORE the start of class (9:35AM) for ALL TEAMS.

Thur
Nov
29
Grad Project Demos (Project Milestone 3)
16 Tues
Dec
4
Grad Project Demos (Project Milestone 3) Assignments:
  • Grads: final writeup due TONIGHT at 11:55PM
Thur
Dec
6
Exam Preview/Q&A Session/Course Feedback Assignments:
  • Undergrads: Homework #5 DUE
Finals Thur
Dec
13
FINAL EXAM: Thursday, December 13, 8:00AM-10:50AM
In our normal classroom.