Textbook: Algorithm Design by Jon Kleinberg and Eva Tardos, Pearson and Addison Wesley. 2006.
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 2010 edition of the course we will practice both components.
Mailinglist (archive, sign-up, etc.)
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
For implementation we will use Java or C#. Data structures we define using a high-level data structure definition notation and we generate the source code using DemeterF. http://www.ccs.neu.edu/research/demeter/DemeterF/ We will use DemeterF to process the data structures in a multiparadigm manner, using object-oriented, functional and aspect-oriented programming. Only a few algorithms will be implemented.