Practical Exercises:

Theoretical Exercises on the Board and Exams:


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 CO123


The deadlines for the various steps of the project are set on Moodle.

You should do your homework exercises individually.

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

  • 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