EE 408, Software Design for Visual Environments

Lecture:          MWF 16:00-16:50, Rowley 142
Office Hours:  TuTh 13:00-14:00

Instructor: Daqing Hou

Office: CAMP 127, or CAMP 115 (the Software Engineering Lab)   
Email: dhou at clarkson dot edu  (To best catch my attention, be sure to put 408 in the subject line of your email.)
Campus Phone: X7675

Required textbooks

(1)  Dan Olsen
      Building Interactive Systems: Principles for Human-Computer Interaction
      First Edition - ISBN: 9781423902485

      Available at the Clarkson bookstore.

(2) The Java Tutorials from Sun Microsystems, Inc., including Swing Tutorials.

     Available free online. Printed books for the JFC Swing also available from amazon.

Course Objectives

(1) Key design elements of GUI frameworks:
Optional topics:  (2) Principles of interaction design.
(3) Design and implementation of graphical user interfaces.
(4) Maintenance of an existing, real-world graphical user interface.

Learning Outcomes

1. Students will understand the design of the JFC Swing framework and be able to use it to write GUI applications.
2. Students will study the fundamental principles of interaction design and be able to apply them in their course work.

Schedule & Lecture Notes (Subject to change as the semester progresses.)

Aug. 30: Check out moodle for detailed weekly plan; this table is used only as an initial outline.

Week (Monday)
Topics (slides) + Reading Lab work
homework assignments
Aug. 29 (1)
Chapter 1 Introduction

seven stages of action
gulf of execution and gulf of evaluation
forms of presentation
forms of expression
model-view-controller (MVC)

Compiling and running Java programs with Eclipse
Read Chapter 1
Do Exercises 1.1. and 1.3.

Submit your answers via moodle.


Install the latest version of
Eclipse IDE for Java Developers
Sept. 5 (2)
Chapter 2 Drawing

windowing systems
window tree
Graphics object

Common methods from Object, classes and interfaces, and subtyping Read Chapter 2
Do Exercises 2.1, 2.2, and

Sept. 12 (3)
Chapter 4 Widgets


Overview of widgets

Top-Level Window (JFrame)
(code from Monday lecture)
JFrame and JavaDoc
Read Chapter 4

Assignment 1

How to Make Frames
Sept. 19 (4)
Make forms
   menu bar/menu/menu item, tool bar/button, label, panel

Absolute Layout

How to Use Menus

How to Use Tool Bars

How To Use Buttons, Check Boxes, and Radio Buttons

How to Use ButtonGroup

How to Use Icons

Java Look And Feel Graphics Repository
Sept. 26 (5)

Oct. 3 (6)
No Class on Monday

Class starts Wed Oct. 5
Make forms



Chapter 5 Layout and Constraints
Swing Layout Cheetsheet
Layout Tutorials

Chapter 3 Event Handling

Layout Managers Read Chapter 5 (Layout only. Skip Constraints).

Answer Exercise 5.1, 5.2, and 5.3. 


Oct. 10    (7)
More About Listeners

JComboBox, JSpinner, JList, JScrollPane,
JFormattedTextField, and JTextField

JSplitPane and JTabbedPane

1. Read Chapter 3
   Answer 3-1, 3-4.


2. Assignment 2
Oct. 17  (8)
Chapter 7 Abstract Model Widgets
Basic Widgets-1
Read Chapter 7
Oct. 24  (9)
Basic Widgets-2 Midterm Exam
Due: 23:59 pm, Oct. 22
Oct. 31  (10)

Organization Widgets Assignment 3 due 23:59 pm, Friday Oct. 29

To assist planning, here is the description of the Project.

Teams must be formed this week!

Each team may have 2 to 3 members.

Email instructor team information.
Nov. 7  (11)

Project Preparation

Nov. 14  (12)
Review of Assigment 3
Midterm Summary
9 Usability Principles

Read Chapter 8

Teams should work on project.
Nov. 21 (13)
Thanksgiving recess: 22-28

(No class Wed and Friday)
9 Usability Principles (cont.)

Nov. 28 (14)
project status update, in class.

Reading Guide

Dec. 5 (15)
Nov. 29 M Class Resumes
Tuesday, Project due for peer testing
Wed, demo & presentation
Friday Midnight, Project Due.

Dec. 12-16    (16)
Final Exam  (Format)

Clarkson Academic Calendar

Course Work and Evaluation*

Programming Laboratory (Java and Swing widgets)
will be held Friday 16:00-16:50, in Rowley 142
25% (5% for lab participation)
Homework Assignments

Midterm Exam
cover both programming and principles but with a focus on programming with JFC Swing
Team Project
teams will both build (or enhance) a GUI application and critique each other's work with written reports
Final Exam
cover both programming and principles but with a focus on interaction design principles

* This is only an estimation. It may be adjusted based on student feedback.

July 15, 2009 --           Redaction 1
August 26, 2011 --      Redaction 2