Staff
Lectures:
Practical and Theoretical Exercises:
Assistants-Étudiants:
- Etienne Kneuss
- Pierre-François Laquerre
Secretary: Danielle Chamberlain
Schedule
Grading
-
- 20% - solve homework exercises similar to ones done in sessions
- 20% - continuous-control quiz (not a final exam)
The deadlines for the various steps of the project are set on Moodle.
You should do your homework exercises individually. Homework exercises are due one week after they were given out (except for the first sheet, for which you have two weeks). Bring your solutions to the beginning of the following exercise session.
Collaboration Policy
You are encouraged to work in groups of 2 people on project
- everyone should understand every part of code
- we may ask you to explain specific parts of your solution
Do not copy solutions from other groups
- we will use plagiarism detection tools
- we may ask you to explain specific parts of your solution
If you have general clarification questions, you can discuss them in the online forum, or set up an appointment with teaching staff.
If you discussed the solution to the labs or homeworks with others, you must explicitly write on top of your report that you did so. In such case, we reserve the right to give you partial credit or verify that you now know how to solve similar problems.
If you do not report your collaboration, this will be considered cheating, a violation of the EPFL honor code, and it can lead to severe consequences for you. EPFL's legal team has experience in dealing with such cases, to ensure that students who do not cheat are treated fairly.
Course Material
Official Textbook: Tiger book although we do not strictly follow it:
- program in Scala instead of Java
- use pattern matching instead of visitors
- use hand-written parsers in the project (not parser generators)
Additional material will be provided on the wiki
- no PPT,PDF slides
- wiki is simple, non-proprietary, linked to WWW
Other useful texts:
- Alfred V. Aho, Jeffrey D. Ullman: Theory of Parsing, Translation and Compiling (in-depth explanations of parsing)
- Parsing Techniques - A Practical Guide (1st edition is online)
- Formal Syntax and Semantics of Programming Languages: A Laboratory-Based Approach by Ken Slonneger and Barry L. Kurtz
Prerequisites
The following courses of their equivalents are prerequisites for this course:
- Discrete structures (CS-150)
- Algorithms (CS-250)
- Theoretical Computer Science (CS-251)
- see Introduction to the Theory of Computation by Michael Sipser if you did not take this course
- if you know Java but not Scala, try these resources
Not required but highly recommended are:
- Advanced Theoretical Computer Science