Ungraded exercises
These ungraded exercises are meant as an introduction to the project. Their goal is to familiarise yourself with the minischeme language and its implementation, including the minivm virtual machine.
- Week 1: introduction.
- Week 2: threaded interpreter.
Basic group projects (graded)
These basic projects are meant to be completed in groups of two persons at most.
- Weeks 3-4: conservative, mark&sweep garbage collector.
- Weeks 5-6: closure conversion.
- Week 7: tail call elimination.
Advanced project (graded)
The goal of the advanced project is to complete a more complicated task than the ones of the previous projects, and with less guidance from our part. Unlike the previous projects, the advanced project is individual and cannot be completed in a group.
The subjects for the graded individual project (a.k.a. the advanced project) are available on a separate page.
Handing in Projects
We set up a course on Moodle which you will have to use to hand in code and reports for the projects. If you work in a group for the first three project, please set up a group in Moodle accordingly.
In order to sign up to the course in Moodle you need an enrolment key. You can ask Lukas Rytz to give it to you.
Submission regulations
- If you miss the submission deadline for a project, you still have the
possibility to do a late hand-in of your work. For each day which lies
between the deadline and your hand-in, the maximal amount of points you
can achieve will drop by 20%.
An example: if the deadline is March 12, 23:55, and you hand in your work on March 14, 14:00, you will get at most 60% of the maximal points for that project. - We will not accept submissions which fail to compile, so make sure that the code you hand in actually compiles on the stations in INF 1 using the Makefile you submit. In case it doesn't, you will be informed by E-Mail before 13:15 on the day after the submission deadline. You can then correct your code and submit it again according to the late hand-in rules described above.