Welcome to CS1315. Click on the python to add comments.
This page removed for FERPA compliance
What comes after CS4452?
CS 6452 Prototyping Interactive Systems is the follow-on course for CS 4452, and will be offered in Spring 2005. It will be open to graduate students in the College of Computing, and is specifically targeted for students in the Human-Centered Computing Ph.D. program.
Although details for the course are still forthcoming, here are some draft learning objectives for the course and a tentative syllabus:
REMOVEDarning Objectives (Draft):
Develop literacy in prototyping skills from paper-based to computational methods.
Understand computational constraints on common concepts in interactive systems.
Understand and communicate what a system does at an architectural level (as opposed to code).
Analyze and discuss design decisions and tradeoffs.
Be familiar with prevalent architectures.
Understand user interface (presentation) versus application (logic) versus data, and their interactions.
Be familiar with state-of-the-art prototyping tools.
Implement a significant computer program (1,000 to 2,500, or equivalent, lines of code).
Tentative Syllabus:
At the beginning of the course, students will be introduced to a range of prototyping methods (paper storyboards, video prototyping, computational prototyping) and will practice these methods by creating a traditional graphical user interface.
The remainder of the course will be structured into approximately five to six units. Each unit will focus on a different system architecture that highlights an important set of computational constraints. In each unit, students will be given a prototyping assignment based on a scenario for an interactive system. With each system, discuss the general characteristics of the architecture and/or technology, discuss relevant concepts in computer science, and analyze how these concepts create constraints for building functioning interactive systems. Example topics (which will change with the state-of-the-art and the expertise of the instructor) include:
Event-driven programming: Programs where people and/or sensors are driving program flow. Interactive programs using events for inter-module communication. [Prototype a GUI for dynamic data visualization.]
Distributed interfaces: Gracefully dealing with implications of network properties (bandwidth, QOS, encryption, latency, reliability). [Prototype a client/server video browser.]
Ubiquitous and mobile computing: Implications of mobility (REMOVEDsient connectivity, resource discovery). [Prototype a wearable game.]
Perceptual Interfaces: REMOVEDing with uncertain information, latency and delayed commitment. The use of additional information for disambiguation. Approaches to handling recognition errors. [Prototype a cell-phone voice interface.]
Semantic networks: Theoretical limitations of computation including Traveling Salesman problem and similar NP complete problems. [Prototype an interactive story].
Agent-based architectures: Many self-contained pieces of functionality executing independently and communicating via a centralized shared data structure. [Prototype a multi-agent simulation.]
Databases: REMOVEDing with large amounts of persistent data (locking, incremental results). [Prototype an online auction]
Production systems: Centralized repository of work-in-progress, rules for manipulating interim results. [Prototype an online tutor]
Cognitive architectures: Software architecture with properties that mirror/model/support observed psychological phenomena [Prototype an online tutor].
Link to this Page
CS4452 CoWeb last edited on 9 January 2006 at 1:01 am by r80h18.res.gatech.edu