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
- Host: GitHub
- URL: https://github.com/arademaker/ed-2018.t2
- Owner: arademaker
- Created: 2018-06-05T23:50:43.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-12T21:31:55.000Z (about 8 years ago)
- Last Synced: 2025-01-19T14:48:40.165Z (over 1 year ago)
- Language: Racket
- Size: 5.86 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
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.