Practical and Theoretical Exercises:


  • Etienne Kneuss
  • Pierre-François Laquerre

Secretary: Danielle Chamberlain


  • Mondays 10:15-12:00 - Lectures in INM 202
  • Wednesday 08:15-10:00 - Project work, in INF3
  • Wednesday 10:15-11:45 - Exercises on the blackboard (sometimes lectures), in INF3


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:


The following courses of their equivalents are prerequisites for this course:

Not required but highly recommended are:

  • Advanced Theoretical Computer Science