The SIN Foundations of Software course at EPFL is taught on Tuesdays from 10:15 to 12:00 and on Fridays from 10:15 to 12:00. Courses are in INM 202, projects and exercises in INF 1 (not CO 020, or CO 121).

Description

Software foundations (or theory of programming languages) is the mathematical study of the meaning of programs. Students will learn ways to describe program behaviors, and mathematical tools to formalize and check interesting properties of programs. This course concentrates on operational techniques and type systems.

Course's progress

Tuesday, Nov 4
Course “Recursion, References and Store Typings”
Friday, Nov 7
Pen+paper exercise session: mid-term exam 2006 (solution)
Tuesday, Nov 11
Course on type reconstruction
Friday, Nov 14
Mid-term exam (solution)
Tuesday, Nov 18
Course “Subtyping”
Friday, Nov 21
Exercise session on type reconstruction
Tuesday, Nov 25
Course “Objects”
Friday, Nov 28
Exercise session on type reconstruction
Tuesday, Dec 2
Course “Featherweight Java”
Friday, Dec 5
Exercise session on practical type systems
Tuesday, Dec 9
Course “Featherweight Java”
Friday, Dec 12
Exercise session on practical type systems
Tuesday, Dec 17
Course “Featherweight Scala”
Friday, Dec 19
Pen+paper exercise session: final exam 2006 (solution)

Whole program…

Mid-term exam

The mid-term exam took place on November 14th, 2008, in room INR 219 from 10:15-12:00. Last year's mid-term exam can be consulted here (solution). The exam is "open books", so you are allowed to bring the textbook and print outs of the course's slides.

Final exam

The final exam will take place on January 21st, 2009, in room INM 200 from 14:00-16:00. Last year's final exam can be consulted here (solution). The exam is "open books", so you are allowed to bring the textbook and print outs of the course's slides.

Course's grading

Each enrolled student will receive a grade based on his results for the projects, the mid-term exam and the final exam. The relative importance of each part is as follows.

PartImportance
projects30%
mid-term exam30%
final exam40%

A note about cheating (plagiarism)

Sharing ideas between groups is very recommended. Plagiarising code as part of a project will not be tolerated — whatever the source.

In case of cheating, you will receive the grade “NA” (not acquired, zero) for the concerned project or exam, or for the whole course. You may furthermore be denounced and punished in accordance with the ordonnance sur la discipline.

If you are in any fashion worried about this, speak with an assistant.