The course is based on classic book Structure and Interpretation of Computer Programs and the former Scheme basic programming course at the Helsinki University of Technology (TKK). The course is more extensive than the previous basic course. The course concentrates on the last chapters of the book focusing especially on functional programming and on the implementation of interpreters and compilers.
Prerequisites are two of the basic programming courses at TKK or equivalent programming skills.
The goal is to learn among others the following programming principles: procedural abstraction, data abstraction, functional programming, concurrency, streams and lazy evaluation, programming language interpreters, logic programming, register machines and machine language programming.
The course uses the Scheme programming language.
The course book:
The first edition should not be used since it is too different from 2nd edition.
The course code is
The course consists of an exam and mandatory home exercises. By doing these you gain six (6) credits. You can gain two (2) extra credits by doing a voluntary programming project.
To complete the course, you need to get a passing grade from both the exam and home exercises. The grade is calculated by using the formula:
You can register to the course by sending an email to the address scheme@cs.hut.fi. In the email, state your name and student ID.
If non-Finnish-speaking students enroll on this special course, we will provide English-language exercises etc., but not much in the way of teaching or support; thus, if you want to take this course in English, you should be motivated and able to study mostly on your own.
The exam is compulsory and the material to read for the exam are the chapters 3-5 of SICP. You can bring the coursebook to the exam. The exam will be held at the end of August or the beginning of September. The exact time and place will be announced later.
The home exercises are mandatory. You have to do at least 50% of each of the exercise rounds in order to pass. In addition, you have to get at least 60% of the overall points to get a passing grade. The home exercises are graded as following
The programming project is voluntary. The project is graded with grades failed, passed, or +1 to the overall course grade. Exact details of the programming project will be announced later.