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


Fall 2016

 

Jump to syllabus

General Information:


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 115%
Homework 215%
Homework 315%
Homework 415%
Homework 515%
Exam #112.5%
Exam #212.5%
CategoryWeight
Homework 115%
Homework 215%
Project (5 deliverables)45%
Exam #112.5%
Exam #212.5%

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 C or better to pass. Students auditing the class will not be required to complete homework or exams (nor are they expected to do these assignments, so that the instructor and TAs can devote grading time to students taking the class for a letter grade or P/F).

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 assigned 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. While I can try to help facilitate team matching, it is students' responsibility to find a project partner early in the semester (well before the first milestones).

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. All code submitted for homeworks in this class must be written by you alone. Unlike some lower division classes, this class does not have a collaboration policy that permits working on homeworks together. Do not share your code with others or place it on public repositories (such as public GitHub). 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 8 for this class. Please be sure your code works with this version, as it's what we'll be testing against. If you don't already have Java installed, make sure you download the Java 8 SDK (software development kit) rather than just the JRE (Java Runtime Environment). You can download Java 8 here.

 

Tentative Class Schedule and Syllabus

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

WEEK

DATE

TOPIC

MATERIALS & READINGS

ASSIGNMENTS

1

Tues

Aug 23

Introduction & Course Overview

  • Introductions
  • Course goals
  • Grading, policies, admininstrivia.
  • Grad project overview
  • Motivation: why a class on UI software?


Slides: Introductory Materials


Supplemental Readings:


Overview of Grad Project


Thurs

Aug 25

UI Software Organization Topic

  • Separation of concerns
  • Basic UI toolkit functionality
  • Some Swing examples


Slides: UI Software Org


Required Readings:


Supplemental Readings:


Assignments:



2

Tues

Aug 30

Wrap up UI Software Organization


Movie Day! Topic 


Links to some of the videos here


Slides:

  • None


Readings:


Supplemental Links:



Thurs

Sept 1

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:



3

Tues

Sept 6

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:



Thurs

Sept 8

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


Required Readings:


Supplemental Readings:



4

Tues

Sept 13

Input: Devices

  • Keyboards
  • Buttons
  • Valuators
  • Locators
  • Input hardware


Slides: Input 1 (Devices)


Required Readings:


Supplemental Readings:



Thurs

Sept 15

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 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


Assignments:


  • Grads: preliminary project proposal DUE!


5

Tues

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)


Required Readings:


Supplemental Readings



Thurs

Sept 22

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


Required Readings:



6

Tues

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


Required Readings:


Supplemental Readings:



Thurs

Sept 29

Wrap Up Constraints

  • Constraints as a Layout Solution
  • One-way versus multi-way constraints
  • Implementing Constraints






7

Tues

Oct 4

Exam Preview and Q&A


Assignments

  • Grads: final project proposal with lit review DUE 11:55PM tonight!

Thurs

Oct 6

MIDTERM EXAM


Assignments:



8

Tues

Oct 11

FALL RECESS

Thurs

Oct 13

Exam Review


Pen-Based and Simple Touch-Based Interaction

  • Natural data types, pens, and touch
  • Pen technology
  • Input techniques for pens
  • Ink as data
  • Soft keyboards
  • Recognition-based interfaces

Slides: Pen- and Simple Touch-Based Computing


Required Readings:


Supplemental Readings:



9

Tues

Oct 18

Building Recognizers for Digital Ink

  • Pens for text and command input
  • Implementing simple recognizers Pens for text and command input
  • Modality
  • 9-square recognizer
  • Siger recognizer
  • One Dollar Recognizer

Slides: Building Recognizers


Required Readings:


Supplemental Readings:



Thurs

Oct 20

Wrap up of Recognizers



Required Readings:



10

Tues

Oct 25

Multitouch Interaction

  • Multi-touch basics
  • Bi-manual input and interaction techniques (magic lenses, toolglasses, etc.)
  • Multi-user multi-touch


Slides: Multitouch Interaction


Required Readings:


Supplemental Readings:

  • A VIDEO showing Microsoft Surface (the tabletop version)
  • A VIDEO showing the original toolglass system
  • A VIDEO on tape drawing, and digital tape drawing
  • A VIDEO of DiamondTouch, a multi-person multitouch display that can identify the user associated with each input.
  • Some mostly hidden multitouch gestures for object manipulation in Keynote



Thurs

Oct 27

No Class Today!



Assignments:

  • Undergrads: Homework #3 DUE!
  • Undergrads: Homework #4 out


11

Tues

Nov 1

Wrap-up of Multitouch Interaction

  • Toolglasses and Magic Lenses
  • Examples and advantages
  • Implementing lenses


Required Readings:


Supplemental Readings:



Thurs

Nov 3

Touch Interaction: Hardware

  • Resistive
  • Capacitive
  • Vision-based
  • Limitations and trade-offs


Slides: Touchscreen Hardware


Supplemental Readings:



12

Tues

Nov 8

Topic 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


Video:

  • Video showing some of the techniques we'll discuss in class


Required Readings:


Supplemental Readings:



Thurs

Nov 10

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


Required Readings:


Supplemental Readings:



13

Tues

Nov 15

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


Required Readings:


Supplemental Readings:



Thurs

Nov 17

TBD



Assignments:

  • Undergrads: Homework #4 DUE!
  • Undergrads: Homework #5 out





14

Tues

Nov 22

Grad Project Demos (Project Milestone 3)



  • Grads: project implementations due BEFORE the start of class (9:35AM) for ALL TEAMS.

Thurs

Nov 24

THANKSGIVING BREAK

15

Tues

Nov 29

Grad Project Demos (Project Milestone 3)




Thurs

Dec 1

Undergrad Project Demos (Optional; extra credit)




16

Tues

Dec 6

Exam Preview/Q&A Session/Course Feedback



Assignments:

  • Grads: final writeup due TONIGHT at 11:55PM


  • Undergrads: Homework #5 DUE



Thurs

Dec 8

READING PERIOD/START OF EXAMS

FINALS

Thurs

Dec 8

FINAL EXAM THURSDAY, DECEMBER 8, 2:50pm - 5:40 pm

(in our regular classroom)