The examination in this course consists of two parts: a project and an oral exam. In order to pass the course you must complete the mandatory parts of the projects and pass the oral exam. For a higher grade there are several extensions available to the project which you can do. See the project description for details. The oral exam does not affect the grade.
Things which are considered when grading the project:
The main part of the course is a project, where you implement a complete compiler for a simple imperative language called Javalette. The project is done in groups of one or two students; we recommend that you work in pairs.
The project is described in the project instruction. The project is divided into three parts with separate submission dates:
Front end issues are part of the syllabus for the prerequisite course Programming language technology. These things are not taught in this course. You are expected to be able to implement the lexer, parser and typechecker for Javalette using previous knowledge during the first week of this course.
The deadline for the first submission is April 19, 23:59. The deadline is sharp; the submission system will not accept late submissions. Of course, if you are ill or have another good reason, you may get an extended deadline, but you must then explicitly ask for an extension in an email to Josef, explaining the reason. This email must be sent before the deadline.
Again, your compiler must reject all bad programs and be able to run all good programs. There are also test programs for the various extensions.
The deadline for this second submission is May 10, 23:59.
The deadline for this submission is May 24, 23:59.
In the exam week there will be brief individual oral exams; schedules for these will be decided the preceding week. The objective of the exam is to test the student's understanding of his/her project.