Skip to content
Snippets Groups Projects
README.md 3.53 KiB
Newer Older
Olivier Blanvillain's avatar
Olivier Blanvillain committed
This repository will be used as the website for Functional Programming CS-210. It will be updated weekly throughout the semester. This README contains general information about the class.
Olivier Blanvillain's avatar
Olivier Blanvillain committed
- [previous-years-exams](https://gitlab.epfl.ch/lamp/cs210-material/week1/tree/master/previous-years-exams) contains PDFs for the 2016, 2017 and 2018 exams.
- [recitation-sessions](https://gitlab.epfl.ch/lamp/cs210-material/week1/tree/master/recitation-sessions) contains markdown documents for recitation sessions and solutions.
- [slides](https://gitlab.epfl.ch/lamp/cs210-material/week1/tree/master/slides
) contains the slides presented in class.

We will use GitLab's issue tracker as a discussion forum. Feel free to [open an issue](https://gitlab.epfl.ch/lamp/cs-210-functional-programming-2019/issues/new) if you have any comments or questions.

During the first week of the semester, you should will this Doodle to register to the recitation sessions:

<TODO Nico?>

Also make sure to read the instructions to install Git and Scala on your machine, which is be needed to complete the projects:

<TODO Guillaume/Timothée?>

## Grading

The grading of the course is divided between projects (30%), a midterm (30%), and a final exam (40%) held during the last week of courses.

## Staff

| Role        | People |
| :---        | :--- |
| Professors  | Martin Odersky, Viktor Kunčak |
| TAs         | Aleksander Boruch-Gruszecki, Guillaume Martres, Nicolas Stucki, Olivier Blanvillain, Periklis Chrysogelos |
| Student TAs | Artur Vignon, Haley Owsianko, Paul Renauld, Thomas De Chevigny, Timothée Floure |

## Rooms

Live lectures take place on Wednesdays from 13:15 to 15:00 in CO 2. Recitation sessions take place on Fridays from 10:15 to 12:00, where the room assignment is according to the Doodle linked above. Project sessions are held concurrently to the recitation sessions in CO 021.

## Lecture Schedule

| Week | Date        | Topic                  |
| :--  | :--         | :--                    |
| 1    | 18.09.2019  | Intro class            |
| 2    | 25.09.2019  | Recursion              |
| 3    | 02.10.2019  | Function values        |
| 4    | 09.10.2019  | Classes                |
| 5    | 16.10.2019  | Symbolic computations  |
| 6    | 23.10.2019  | Collection             |
| 7    | 30.10.2019  | Structural induction   |
| 8    | 06.11.2019  | Monads                 |
| 9    | 13.11.2019  | State                  |
| 10   | 20.11.2019  | Constraints            |
| 11   | 27.11.2019  | Lambda calculus / Lisp |
| 12   | 04.12.2019  | Scheme interpreter     |
| 13   | 11.12.2019  | Prolog                 |
| 14   | 18.12.2019  | Review                 |

## Project Schedule

| Title                | Start Date | Due Date (at noon) |
| :--                  | :--        | :--                |
| Recursion            | 18.09.2019 | 26.09.2019         |
| Functional Sets      | 25.09.2019 | 03.10.2019         |
| Object-Oriented Sets | 02.10.2019 | 10.10.2019         |
| Huffman Coding       | 09.10.2019 | 24.10.2019         |
| Anagrams             | 16.10.2019 | 31.10.2019         |
| Bloxorz              | 23.10.2019 | 07.11.2019         |
| Quickcheck           | 30.10.2019 | 14.11.2019         |
| Calculator           | 13.11.2019 | 28.11.2019         |
| Interpreter          | 27.11.2019 | 18.12.2019         |

## Exam Schedule

The midterm exam will take place on Friday 08.11.2019 from 10:15 to 12:00.
The final exam will take place on Friday 20.12.2019 from 10:15 to 12:00.

Information about exam organization will be communicated by email a few days before each exam.