An open API service indexing awesome lists of open source software.

https://github.com/arademaker/ed-2018.t2

ED Course FGV/EMAp
https://github.com/arademaker/ed-2018.t2

Last synced: 3 months ago
JSON representation

ED Course FGV/EMAp

Awesome Lists containing this project

README

          

# -*- mode:org -*-
#+TITLE: Algorithms and Data Structures @ EMAp/FGV

- instructor :: Alexandre Rademaker

the course is mostly based on DPV (see references below). Code will be
implemented in [[https://racket-lang.org][Racket]].

* references
** books
- DPV :: S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani,
Algorithms. 2006. [[http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf][url]]
- KT :: J. Kleinberg and E. Tardos, Algorithm Design. 2005. [[https://www.pearsonhighered.com/program/Kleinberg-Algorithm-Design/PGM319216.html][url]]

- SICP :: H. Abelson, G. J. Sussman, J. Sussman. Structure and
Interpretation of Computer Programs. 1996. [[https://mitpress.mit.edu/sites/default/files/sicp/index.html][url]]

** Racket

[[https://docs.racket-lang.org/getting-started/index.html][the Racket quickstart]]

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 [[http://hyperpolyglot.org/lisp][sheet]].

* plan
| 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.

* grading
the grade is composed of class exercises (30%), and two major
evaluations (35% each).

** exercises
check the exercises directory.

** P1
details to come.

** P2
details to come.