We will focus on game-based technology to develop problem solving software (e.g., optimal translation problems as found in compilers, traditional optimization problems or decision problems). The history of this approach goes back to the Renaissance when mathematicians tested their skills by solving problems in competitions. We will use various specializations of the Scientific Community Game (SCG) where virtual scientists build their reputation based on (1) how well they solve problems, (2) how well they provide hard problems to other virtual scientists and (3) how well they predict their performance. Students will design and implement a web-based version of SCG including player/agents and an administrator that enforces game rules similar to the those of a real scientific community.
The course covers various software development processes, software testing, (dynamic) benchmark design, knowledge maintenance, social engineering of software developers through games and formal techniques in game design, all through the use of a number of different game domains. We will cover programming techniques that facilitate adaptability including Aspect-Oriented and Adaptive Programming. Students will study algorithmic innovation using SCG in problem domains such as optimizing translations and constraint satisfaction. In the implementation of game components and communication we will explore the use of emerging technologies like Google Wave and Cloud Computing.
More information on SCG is available: SCG Home Page (http://www.ccs.neu.edu/home/lieber/evergreen/specker/scg-home.html)
The course home page is under development: Course Home Page (http://www.ccs.neu.edu/home/lieber/courses/special-topics/sp10/cs7580-sp10.html)
Prerequisite: For Graduate Students: Program Design Paradigm (CS 5010) or (Intensive) Principles of Programming Languages. For advanced undergraduate students: Software Development (CS 4500).