CS 6452: Prototyping Interactive Systems (Fall 2010)

Details: Meets Monday 12:05-2:55, CCB 101

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

Mentor 1: Michael Hewner (hewner (at) gatech (dot) edu) Mentor 2: Kimberly Weaver (kimberly (dot) weaver (at) gatech (dot) edu)

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). Talk to the TA or instructor if you have questions, but you are required to work individually on your programs. 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

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 23
  • 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 next class
Aug 30
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.
Sep 6
No Class! Georgia Tech Holiday!
Sep 13
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 20
Wrap-up of Asynchronous Programming
  • Threading and locks
  • Implementing an event dispatch engine
Slides: In-class Presentations:


  • Project Phase 1 (GUI module) due Tuesday, 11:59PM
Sep 27
Distributed Applications (Networking Basics)
  • Networking basics
  • Network programming: sockets, marshalling
  • P2P and discovery
Slides: Other stuff: Assignments:
Oct 4
Distributed Applications
  • Exception handling
  • Network programming idioms
  • Protocol design and prototyping
Slides: Assignments:
  • Continue with networking project.
Oct 11
Distributed Applications

Lab time in class today.
  • Networking project PART I due Tuesday, 11:59PM
  • Sign up for next in-class presentations.
Oct 18
No Class! Fall Recess!
Oct 25
Distributed Applications

Lab time in class today.

  • Completed Networking Project due Tuesday, 11:59PM
Nov 1
Web Services
  • Mining intelligence
  • Extracing content from the Web
  • Web Services: WSDL, SOAP, etc.
  • Google, Wikipedia
Slides: Other Stuff: In-Class Presentations:
Nov 8
Web Services

Lab time in class today.

Other Stuff: Assignments:
  • Keep working on web services project.
  • Sign up for next in-class presentations
Nov 15
Web Services

Lab time in class today.

In-class Presentations:
  • Project Phase 3 (Web Services module) due Friday, 11:59PM
Nov 22
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: Assignments:
Nov 29
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 6
Data Management

Lab time in class today.

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