- instructor
- Alexandre Rademaker
the course is mostly based on DPV (see references below). Code will be implemented in Racket.
- DPV
- S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, Algorithms. 2006. url
- KT
- J. Kleinberg and E. Tardos, Algorithm Design. 2005. url
- SICP
- H. Abelson, G. J. Sussman, J. Sussman. Structure and Interpretation of Computer Programs. 1996. url
following the Racket website advice in the link above, pick the references you want to study from how confortable you are learning a new programming language, and how much time you have to devote to it.
try to get up to speed with Racket in the first couple of weeks – you will probably be much busier later on.
if you already know a lisp language, check out this sheet.
week | topic | contents |
---|---|---|
1 | Introduction and Big O notation | Fibonacci examples, recursions, complexity, arrays versus linked lists, data structures and algorithms |
2 | the Racket programming language | Programming pearls, SICP, stable matching |
3 | Divide and conquer | |
4 | Graphs | |
5 | Graphs | |
6 | A1 | |
7 | Greedy algorithms | |
8 | Dynamic programming | |
9 | Linear programming | |
10 | NP and its reductions | |
11 | Coping with NP | |
12 | Quantum computing | |
13 | A2 |
note: the plan is under development, expect more details soon.
the grade is composed of class exercises (30%), and two major evaluations (35% each).
check the exercises directory.
details to come.
details to come.