CS 6452: Prototyping Interactive Systems (Fall 2008)

Details: Meets Monday 2:05-4:55, Management 223

Instructor: Keith Edwards, keith (AT) cc, TSRB 345; Office Hours by Appointment.

Mentors: Christopher Le Dantec (ledantec (at) cc), Zhicheng (Leo) Liu (zcliu (at) cc)

Grading and Class Policies

Project. (50% of overall grade) This will be a substantial software implementation project, delivered in multiple "modules" throughout the semester. This will be an individual effort (no teams). Unless otherwise specified, each project turnin is due at 11:59PM on the evening of the announced due date.

Written Assignments. (20%) We will have some number (TBD) of longer written assignments, based on readings and the project. I'll post more details later in the semester.

Reading Summaries. (20%) We will have reading assignments periodically throughout the semester. Homework will consist of written summaries of these papers, due at the start of class on the due date. I will provide details about format and what I'm looking for in these summaries at the time of the assignment.

In-class Presentations. (10%) Everyone is responsible for doing one short in-class presentation during the course of the semester to describe some aspect of their project (novel design choice; overcoming some debugging problem; etc.)

Documents and Software

Potentially Useful (but Optional) Texts

See Syllabus document above for some comments on each of these.

Useful Chapters from Text of 4452

Mark Guzdial has graciously given me permission to post sections from his book that cover a couple of topics that will be useful to us as we go through the class:

Other Resources

Tentative Class Schedule

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

Week Topic Materials Assignments & Readings
Aug 18
  • Course goals, structure, and context
  • Prototyping defined
  • Kinds of prototyping (lo-fi, hi-fi)
  • Practicum: setting up the development environment
Slides: Assignments:
  • Project Phase 0: Lo-fi prototype, due in class 8/25
Aug 25
Jython Refresher (prelude to Asynchronous Programming)
  • Jython syntax
  • Scoping rules
  • Collections, Classes, and Modules
  • Accessing Swing from Jython
Slides: Other stuff: Assignments:
  • Project Phase 0 (lo-fi prototype) due in class today.
  • Project Phase 1: GUI module. Due 11:59PM, 9/16.
Sep 1
No Class! Georgia Tech Holiday!
Sep 8
Asynchronous Programming
  • Understanding asynchrony
  • Event-based programming
  • Combining event-based and O-O techniques
Short lecture, followed by lab time!
Slides: Other stuff: Readings (summary due next week): Assignments:
  • Continue GUI implementation
Sign up for In-Class Presentations next week!
Sep 15
Wrap-up of Asynchronous Programming
  • Threading and locks
  • Implementing an event dispatch engine
Slides: In-class Presentations:
Take Home Writing Assignment 1: Covering readings and lectures to date.


  • Project Phase 1 (GUI module) due Tuesday, 11:59PM
Sep 22
Distributed Applications (Networking Basics)
  • Networking basics
  • Network programming: sockets, marshalling
  • P2P and discovery
Slides: Other stuff: Assignments:
  • Project Phase 2: Networking module. PART-I due Friday, 10/10, 11:59PM.
Sep 29
Distributed Applications
  • Exception handling
  • Network programming idioms
  • Protocol design and prototyping
Slides: Assignments:
  • Continue with networking project.
Oct 6
Distributed Applications

Lab time in class today.
  • Sign up for next in-class presentations.
  • Project Phase 2 PART-I due Friday, 10/10, 11:59PM
  • None this week
Oct 13
No Class! Fall Recess!
Oct 20
Distributed Applications

Lab time in class today.

In-Class Presentations:
  • Completed Project Phase 2 (Networking module) due Friday, 11:59PM
Oct 27
Web Services
  • Mining intelligence
  • Extracing content from the Web
  • Web Services: WSDL, SOAP, etc.
  • Google, Wikipedia
Slides: Other Stuff: Assignments:
  • Project Phase 3: Web Services module. Due Friday 11/14, 11:59PM
Nov 3
Web Services

Lab time in class today.

Other Stuff: Assignments:
  • Keep working on web services project.
  • Sign up for next in-class presentations
Nov 10
Instructor out of town today; no class! Assignments:
  • Project Phase 3 (Web Services module) due Friday, 11:59PM
Nov 17
Data Management
  • Data management strategies
  • Databases
  • Key principles: keys, schemas, relationships
  • Designing a database schema, normalization
  • SQL overview
  • Using databases from Java/Jython
Slides: Other Stuff: In-Class Presentations:
  • Project Phase 4: Database module. Due Thursday 12/4, 11:59PM.
Nov 24
Data Management
  • Wrap up previous database slides
Short lecture will be followed by lab time.


  • Keep working on database project.
  • Sign up for final in-class presentations
Dec 1
Data Management

Lab time in class today.

In-Class Presentations:
  • Project Phase 4 (Database module) due Thursday, 12/4, at 11:59PM