CS 6395
Principles of UI Software
Spring 1999
College of Computing 101
TT 1:35-2:55
Description
This course is designed to introduce the principles underlying
interactive software and to provide experience with user interface implementation.
We will discuss the principles behind various strategies, techniques,
and tools that make the development of quality UI software faster and easier.
Examples will be drawn from the various toolkits and systems that have
been developed over the years.
-
Instructor
-
Blair
MacIntyre
blair@cc.gatech.edu
239 College of Computing
894-5224
Office Hours: 3-4 Tuesday and 1-2 Wednesday (in 239 CoC)
-
Teaching Assistant
-
Doug
Bowman
bowman@cc.gatech.edu
388 CRB
894-5104
Office Hours: Monday 3-4 CRB 388, Thursday 11-12 CCB Commons
Prerequisites
-
CS 6751: Human-computer Interaction.
-
Programming experience, preferably in Java.
-
Basic data structures and object-oriented software knowledge.
Newsgroup
Here's a link to the git.cc.class.6395
newsgroup.
Online Notes (for you to print before class)
In this section, there will be links to the notes that will
be used in class. These files will be Adobe Acrobat files, which you should
be able to view and print from a web browser that has the Acrobat plugin.
(sorry, this was not captured)
Here's a link to the automatically
recorded notes from class. Note: there is no audio or video
recorded with the notes.
Textbook
There is no required textbook for this class. If you want
a book to read for additional information, you could look at
Dan R. Olsen, Jr., "Developing User Interfaces", Morgan
Kaufmann Publishers, Inc., San Francisco, 1998, ISBN: 1-55860-418-9.
In addition, you may find it useful to get a book on the
Java programming language. Numerous such books are available. Depending
on your background and experience learning programming languages, you might
want to consider either a tutorial or reference-style book. Several books
that have been recommended include:
David Flanagan, and Mike Loukides, "Java in a Nutshell:
A Desktop Quick Reference", O'Reilly & Associates; ISBN: 156592262X.
David Flanagan ,"Java Examples in a Nutshell : A Tutorial
Companion to Java in a Nutshell"
O'Reilly & Associates, 1997, ISBN: 1565923715.
Ken Arnold and James Gosling, "The Java Programming Language",
Addison-Wesley Pub Co, 1997, ISBN: 0201310066.
James Gosling, Bill Joy, and Guy L. Steele, "The Java
Language Specification", Addison-Wesley Pub Co, 1996, ISBN: 0201634511.
In addition, a brief tutorial on Java for C/C++ programmers
can be found here.
For this class you will need to have access to a Java
system on some platform. You can use the CoC computers, or you can download
the latest version of the system (JDK 1.2, aka the Java 2 SDK, Standard
Edition, v 1.2) directly from Sun. It is free and can be found at: http://java.sun.com/products/jdk/1.2/.
Extensive on-line documentation from Sun can be found
at http://java.sun.com/products/jdk/1.2/docs/index.html.
The API docs for all classes can be found at http://java.sun.com/products/jdk/1.2/docs/api/overview-summary.html.
An online tutorial for Swing can be found at http://developer.java.sun.com/developer/onlineTraining/GUI/Swing1/index.html
Another page to look at is http://www.cc.gatech.edu/classes/cs4812_99_winter/swing/index.htm
Web page
The class will use the web, the class page will be located
at http://www.cc.gatech.edu/classes/cs6395_99_spring/
(this link should return to this page)
Grading
Grading will be based on
-
Assignments (50%) (a mix of programming and written questions)
-
Midterm (20%)
-
Final exam (30%)
Programming Assignments
All programming assignments should be done using the CoC
Solaris machines. You are free to work on any machines you want, but they
must work on these Solaris machines. I anticipate most assignments will
use the Java programming language with the Java Foundation Classes (i.e.
the Swing UI toolkit). However, I may require you to use other toolkits
and languages for some assignments (to be determined).
You will write 2-4 programs for this course (we'll see
as we go along). Documentation/code clarity will count for part of the
grade for each program. The remaining portion of the grade will be based
on the program's ability to handle various requirements that will be specified
when the assignment is given.
Late programs will be penalized 25% per day late.
Weekends count as two days. Programs that are more than 2 days late
will not be graded. You may discuss high-level design strategies and specifications
of the assignments with other students in this class. However, your programs
and homework are to represent your own work. All coding and detailed design
decisions are to be made without consultation with others.
We will include links to online versions of the assignments
as they are handed out. We will also make sample solutions available.
For this project, you are to pick a window system or
toolkit that we have not discussed in class and evaluate/discuss it in
relation to what we have discussed in class. (i.e., we discussed various
ways of looking at window systems and toolkits, and examples of existing
ones). I want these discussions to go into some depth, not be superficial!
Learn as much as you can about the system and report on it.
Two phases:
-
Due next week (11th): short paragraph describing which you
intend to look at and what you think major points will be.
-
Final version due three weeks (25th): I expect around 3-5
pages "conference style", focusing on the interesting parts.
Some possibilities:
http://www.berlin-consortium.org/
Subarctic (http://www.cc.gatech.edu/gvu/ui/sub_arctic/)
GIMP (link?)
Motif, OpenLook (somewhat boring, as they sit on X)
-
Combination (Toolkit, Window System)
BeOS (http://www.be.com)
MacOS, Windows95
Syllabus
Additional lectures (TBA) will cover issues related to other
UI paradigms (beyond the 2D GUI).
|
Tuesday
|
Thursday
|
|
March 30
|
Intro |
April 1
|
Architecture
and Organization of UI Software |
|
April 6
|
Window Systems
(1) |
8
|
Window Systems
(2) |
|
13
|
Interaction
Techniques (1) |
15
|
Interaction
Techniques (2)
ASSIGN #1 Out |
|
20
|
Toolkits (1)
Papers: Artkit, Foley and Geiskens, Ascente |
22
|
Pen-based Input
Papers: Igarashi (UIST 97&98, SIGGRAPH 99) |
|
27
|
Toolkits (2) |
29
|
MIDTERM
ASSIGN #1 In |
|
May 4
|
Constraints
Paper: Eval/vite
ASSIGN #2 Out |
6
|
Constraints
(2)
Paper: DeltaBlue |
|
11
|
Building Interactive
Objects (1)
Papers: Interviews, A New Model for Input
ASSIGN #2 (Preliminary) In |
13
|
Building Interactive
Objects (2)
ASSIGN #3 Out |
|
18
|
cancelled |
20
|
cancelled |
|
25
|
Higher Level
Tools
Papers: Cardelli, Olsen, Sukaviriya & Foley &
Griffith |
27
|
Higher Level
Tools
Papers: Foley & Kim, Szekely & Luo & Neches
ASSIGN #2 (Final) In |
|
June 1
|
Animated and
Interactive Interfaces
Papers: 6 of them. Cognitive Coproc, Morphic, Cartoon
Animation, Animation Support for UI Toolkits, Fluid Docs, Pacers |
3
|
TBA
ASSIGN #3 In |