CS 6452: Prototyping Interactive Systems (Fall 2006)

Details: Meets Monday 3:05 - 5:55PM, Instructional Center 219

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

Mentor: Swaroop Vattam, svattam (AT) cc. Office hours Fridays 1-2 at Swaroop's desk (TSRB 2nd floor, southeast corner student area, near the AI lab).

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
1
8/21/06
Introduction
  • 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/28/06
2
8/28/06
Jython Refresher (prelude to Asynchronous Programming)
  • Jython syntax
  • Scoping rules
  • Collections, Classes, and Modules
  • Accessing Swing from Jython
Slides: Other stuff: Readings: Assignments:
  • Project Phase 0 (lo-fi prototype) due in class today.
  • Project Phase 1: GUI module. Due 11:59PM, 9/26/06.
3
9/4/06
No Class! Georgia Tech Holiday!
4
9/11/06
Asynchronous Programming
  • Understanding asynchrony
  • Event-based programming
  • Combining event-based and O-O techniques
Short lecture, followed by paper discussion then lab time!
Slides: Readings: Assignments:
  • Continue GUI implementation
In-Class Presentations:
  • Sarita Yardi
5
9/18/06
Instructor will be out of town this week
Keep working on project.
Please remember to turn in summary for previous week's reading (either slide under my door (TSRB 345), or leave in my mailbox, or email to me).
Slides:
  • None
Readings: Assignments:
  • Continue GUI implementation
6
9/25/06
Wrap-up of Asynchronous Programming
  • Threading and locks
  • Implementing an event dispatch engine
Distributed Applications (Networking Basics)
  • Networking basics
  • Network programming: sockets, marshalling
  • P2P and discovery
Slides: Other stuff: In-class Presentations:
  • Lana Yarosh
  • Zach Pousman
  • Matt Miller
Take Home Exam 1: Covering readings and lectures to date. Assignments:
  • Project Phase 1 (GUI module) due Tuesday, 11:59PM
  • Project Phase 2: Networking module. Due Tuesday, 10/24/06, 11:59PM.
7
10/2/06
Distributed Applications
  • Exception handling
  • Network programming idioms
  • Protocol design and prototyping
Slides: Assignments:
  • Continue with networking project
Readings:
8
10/9/06
Distributed Applications

No lecture this week. Discussion of readings, then lab time
Slides:
  • None
Assignments:
  • Continue with networking project.
  • Sign up for in-class presentations on 10/23/06.
Readings:
9
10/16/06
No Class! Fall Recess!
10
10/23/06
Distributed Applications

No lecture this week. Discussion of readings, then lab time.

Slides:
  • None
In-Class Presentations:
  • Lan Guo
  • Christopher le Dantec
  • Travis Little
  • Evan Barba
Assignments:
  • Project Phase 2 (Networking module) due Tuesday, 11:59PM
11
10/30/06
Web Services
  • Mining intelligence
  • Extracing content from the Web
  • Web Services: WSDL, SOAP, etc.
  • Google, Maps, Wikipedia, and Placelab
Slides: Other Stuff: Take Home Exam 2: Covering readings and lectures to date.

Assignments:
  • Project Phase 3: Web Services module. Due Tuesday 11/14/06, 11:59PM
12
11/6/06
Web Services

No lecture this week. Discussion of readings, in-class presentations, then lab time.

Assignments:
  • Keep working on web services project.
  • Sign up for in-class presentations on 11/13
13
11/13/06
Web Services

No lecture this week. In-class presentations then lab time.

In-Class Presentations:
Assignments:
  • Project Phase 3 (Web Services module) due Tuesday, 11:59PM
14
11/20/06
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:
  • Project Phase 4: Database module. Due Tuesday 12/5/06, 11:59PM.
15
11/27/06
Data Management
  • Wrap up previous database slides
Short lecture will be followed by lab time.
OPTIONAL Take Home Exam 3

Assignments:

  • Keep working on database project.
  • Sign up for in-class presentations on 12/4
16
12/4/06
Data Management

No lecture this week. In-class presentations then lab time.

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