Algorithms and Data CS 4800, Spring 2011. Instructor: Karl Lieberherr.

Textbook: Algorithm Design by Jon Kleinberg and Eva Tardos, Pearson and Addison Wesley. 2006.

Course Directories | Syllabus | Quantifier Game Rules

Meta Information about Learning and Entertainment Experience Design

Based on Scientific Community Game (SCG)

Principles behind SCG

Engagement and Cooperation with Peers In the playground you play, you get engaged to keep your reputation (or the reputation of your avatar) high. To keep a high reputation you must learn the skills of the domain and apply them in the playground in cooperation with your peers.

Learning by doing You oppose claims made by others and you defend your own claims. This tests your skills in the domain. The quality of your attacks and defences determines your reputation.

SCG is fun. It is hard fun. Even if you play against yourself.

Playing SCG is different than getting together with other students and solving problems. You follow a structured protocol to guide your thinking in the right direction to solve the problem.

SCG in Action Recipe to teach constructive topic D: Define a suitable claim language PlaygroundLanguageForD and have the students play SCG(PlaygroundLanguageForD). The winning students are teachers and help the other students learn the material through skill demonstrations. The winning students demonstrate superior knowledge in domain D in the context of the given playground.

Course Description

We will study algorithmic problems from conception to implementation, following the text book. The text book says in the Preface: "Algorithmic problems form the heart of computer science but they rarely arrive as cleanly packaged, mathematically precise questions. Rather, they tend to come bundled together with lots of messy, application-specific detail, some of it essential, some of it extraneous. As a result, the algorithmic enterprise consists of two fundamental components: the task of getting to the mathematically clean core of a problem and then the task of identifying the appropriate algorithm design techniques." In this 2011 edition of the course we will practice both components.

Knowledge about algorithm design turns out to be pivotal to your career as some interesting and desirable companies first screen students with algorithm questions before they advance to later stages in the interview process.

What are algorithms about?

We produce an artifact that can solve problems for us and we make predictions about this artifact. The most important prediction is that the algorithm is correct. Often we make predictions about the resource consumption of the algorithm. The time consumed by the algorithm is an important concern, but space and energy could be other resources of interest. The prediction is made over a set of instances, such as all instances of size n. We make other predictions about algorithms: how well they solve problems relative to some standard, like the maximum solution.

Homeworks | Lectures | Office Hours | Course Directories | Blackboard .

The Algorithm Game

Computational Patterns This website makes a good attempt to capture algorithmic knowledge in the form of patterns (e.g., Dynamic Programming).

Dictionary of Algorithms and Data Structures (NIST)

Scientific Community Game (SCG) = Specker Challenge Game (SCG).

http://www.ccs.neu.edu/home/lieber/evergreen/specker/sdg-home.html
http://www.ccs.neu.edu/home/lieber/evergreen/specker/new/scg.html
http://www.ccs.neu.edu/home/lieber/evergreen/specker/new/SCG-kinds.html