74.317 Analysis of Algorithms and Data Structures




Textbook:
    The following book is recommended: Fundamentals of Algorithmics, Gilles Brassard & Paul Bratley, Prentice-Hall, 1996 (ISBN 0-13-335068-1).

Other books:
    Randomized Algorithms,  Rajeev Motwani & Prabhakar Raghavan, Cambridge University Press, 2000, (ISBN 0-521-47465-5).
    Approximation algorithms, Vijay V.  Vazirani, Springer-Verlag, 2003, (ISBN 3-540-65367-8).
    Approximation Algorithms for NP-Hard Problems, Edited by Dorit S. Hochbaum, PWS Publishing Company, 1997, (ISBN 0-534-94968-1).
 

Also provided:
    Class notes, references to web sites, articles and other material.

Course's objective:
    The course can be understood as having two sections: Fundamentals and Applications. In the fundamentals, we first review a few essential concepts of algorithm analysis & design (seen in cs208). Then, we spend some time making connections between real life application problems and their mathematical representations (mathematical modeling). Algorithms are designed based on mathematical representations of real life problems, a requirement when using the scientific method. To some extend, you will be on familiar ground  as mathematical representations play a similar role in science as data structures for algorithms. Next, for a few lectures, we make a digression from algorithm analysis & design in order to introduce Complexity Theory. This theory provides a classification of computational problems based on what seems to be their inherent time (space) requirement for classical computers. This classification identifies some problems as inherently difficult to solve by computers, problems for which it is unlikely we will ever find any efficient algorithm. On the other hand, solving many of these problems is crucial for the well been of our society. In the Applications section, we study different algorithm design techniques often used to tackle those computationally hard problems: search techniques, randomized and approximation algorithms. About 1/4 of the semester will be dedicated to the fundamentals and 3/4 to algorithm design techniques.
 

Outline of topics covered:

Assignments:


Midterm:


Final:


Marking Scheme:


Academic Dishonesty:

You should be aware that plagiarism of any sort and any other form of cheating is considered a very serious offense, and it will be severely dealt with. In particular, make sure that all the work you hand in is yours and yours alone. If you are found guilty of copying any work you hand in, then you are liable for serious academic penalties. Note that you are also guilty if you help someone else cheat. Read the section on plagiarism and cheating and examination impersonation in the University General Calendar.