CS 6452: Prototyping Interactive Systems (Fall 2007)

Details: Meets Monday 2:00-5:00, Management 223

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

Mentors: We have two mentors for this class. They're available to help answer questions about programming assignments and other topics. While I'm available also (of course!) my schedule can be somewhat tight at times. Please contact them or drop by their offices if you need help:

Course mailing list: coming soon

Course Swiki: here

Grading and Class Policies

Project. (40% 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.

Exams. (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.

Readings and Homeworks. (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.

Discussion and Class Participation. (10%) We'll have in-class discussion of the assigned papers. I expect everyone to have read the papers before the class time, so that we can have a lively and informed discussion.

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 20
  • 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/27
Aug 27
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/18.
Sep 3
No Class! Georgia Tech Holiday!
Sep 10
Asynchronous Programming
  • Understanding asynchrony
  • Event-based programming
  • Combining event-based and O-O techniques
Short lecture, followed by lab time!
Slides: Other stuff: Readings: Assignments:
  • Continue GUI implementation
Sign up for In-Class Presentations next week!
Sep 17
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 24
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/12, 11:59PM.
Oct 1
Distributed Applications
  • Exception handling
  • Network programming idioms
  • Protocol design and prototyping
Slides: Assignments:
  • REMEMBER! Project Phase 2 PART-I due next Friday, 10/12, 11:59PM
Oct 8
No Class! Fall Recess!
Oct 15
Distributed Applications

Lab time in class today.
  • Continue with networking project.
  • Sign up for in-class presentations on 10/22.
Oct 22
Distributed Applications

Lab time in class today.

In-Class Presentations:
  • Completed Project Phase 2 (Networking module) due Tuesday, 11:59PM
  • None for this week.
Oct 29
Web Services
  • Mining intelligence
  • Extracing content from the Web
  • Web Services: WSDL, SOAP, etc.
  • Google, Wikipedia
Slides: Other Stuff: Take Home Writing Assigment 2: Covering readings and lectures to date.


  • Project Phase 3: Web Services module. Due Tuesday 11/13, 11:59PM
Nov 5
Web Services

Lab time in class today.

  • Keep working on web services project.
  • Sign up for in-class presentations on 11/19
Nov 12
Instructor out of town today; no class! Assignments:
  • Project Phase 3 (Web Services module) due Tuesday, 11:59PM
Nov 19
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:
Assignments: Readings:
Nov 26
Data Management
  • Wrap up previous database slides
Short lecture will be followed by lab time.


  • Keep working on database project.
  • Sign up for in-class presentations on 12/3
Dec 3
Data Management

Lab time in class today.

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