Newer
Older
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.
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
- [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.