CS 456

Interactive Systems

This course provides an introduction to implementing graphical user interfaces. The goal is to understand the software architectures of modern graphical user interfaces. Students will write programs in Java.

The goal of this course is not so much the content as learning how to learn new systems in graphical user interfaces. Because of this we will only spend a limited amount of time on Java. Students will be taught general concepts and then introduced to the way in which Java implements those concepts. It will be up to the student to find out the details necessary to complete the programming assignments

text materials
Building Interactive Systems by Dan Olsen

The Java API documentation

The Java/Swing online tutorials

Lecture Slides

In addition there will be chapter readings from a new textbook that is only partially written. These chapters are linked off of the calendar as PDF files. In particular these chapters upgrade the course to include architecture ideas from modern web UI designs.

Topic for the day Study assignments (complete before day listed) Projects due
9/3 Introduction Chapter 1 --
9/8 Data and Change Representation Data Trees, SPARK Data JavaDocs
SPARK Jar file
CS355 Review see Chapter 13 of text
9/10 Drawing Drawing Text --
9/15 Model To View Model to View --
9/17 Model Change Model Change Draw tree
9/22 Input Handling Input Handling
CS355 Review - See Chapter 12 of text
9/24 Dialog Design Chapter 11 --
9/29 Widget Architecture Chapter 4 Selection
10/1 Review for Exam
10/6 Exam 1
10/8 Out of town, no class
10/13 Layout Layout Widget Set (now due 10/20)
10/15 Abstract Model Widgets Chapter 7 --
10/20 Interaction with Transforms Chapter 14
10/22 Interaction with Transforms Chapter 14 Layout(now due 10/27)
10/27 Polygons and Curves Chapter 12 --
10/29 Cut/Copy/Paste Chapter 15 --
11/3 Command Objects Chapter 16 --
11/5 Interactive Design Environments Chapter 9 Curve Widgets(now due 11/10)
11/10 Review for Exam
11/12 Exam 2
11/17 Persistence Persistance --
11/19 Distributed UI Chapter 17 Undo
11/24 Animation Animation Slides --
12/1 Styling ?? --
12/3 Internationalization Chapter 10 --
12/8 Selection Chapter 20 --
12/10 Final Review Distributed & Animated
12/15 Final Exam 2:30-5:30PM
Programs 50%

Exams 50%

  • 2 Midterm Exams 12% each
  • Final Exam 26% - half of the exam covers the final third of the course and half is comprehensive
programming assignments

It does not matter what machine you use to implement your assignments. However, your code must be passed off on a Windows PC. Java is supposedly portable but is actually not in subtle ways. DO NOT WAIT until the last minute to make certain your code runs under Windows.


All programs are turned in through LearningSuite. There is a mechanism to upload files attached to each assignment in the Assignments section. Submit your source files, class files and any other data as a single zip file to Learning Suite. Include a "readme.txt" file that tells the TA how to run your program.

Late Policy

Programs are due 1/2 hour before class starts on the day the assignment is due. Program loose 10% per week up to a maximum of 40%. There is no way to pass the class by putting everything off until the end. Employers want to know that you can get stuff done on time. Your grade will reflect that.

  • ALL PROGRAMS ARE DUE BY NOON ON THE LAST DAY OF CLASS. No late submissions after that time.

Cheating Policy

All programming assignments (unless specifically indicated otherwise) are individual projects. They are designed to test your individual mastery of the material.

Students are encouraged to talk to each other, to the TAs, to the instructor or to search online for ideas and understanding that will help solve the programming assignment. However, the code should be your own. Copying from anyone else or from the internet is a violation of the Honor Code and will be dealt with as such.