The Foundations of Software course at EPFL is taught on Tuesdays from 10:15 to 12:00 in INM 10. Exercise sessions take place on Thursdays from 8:15 to 10:00 in INF 1.
The final exam will take place Friday, 20th of January 2012 at 8:15 in INM200.
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.
Schedule
- Tuesday, Sep 20
- Course “Introduction and Combinator Parsers”.
- Thursday, Sep 22
- Exercise session on arithmetic expressions
- Tuesday, Sep 27
- Course “Arithmetic Expressions — Abstract Syntax and Proof Principles”
- Thursday, Sep 29
- Exercise session on arithmetic expressions
- Tuesday, Oct 4
- Course “The Untyped Lambda Calculus (1)”
- Thursday, Oct 6
- Exercise session on untyped lambda calculus
- Tuesday, Oct 11
- Course “The Untyped Lambda Calculus (2)”
- Thursday, Oct 13
- Exercise session on untyped lambda calculus
- Tuesday, Oct 18
- Course “The Simply Typed Lambda Calculus”
- Thursday, Oct 20
- Exercise session on simply-typed lambda calculus
- Tuesday, Oct 25
- Course “Simple Extensions to STLC”
- Thursday, Oct 27
- Exercise session on simply-typed lambda calculus
- Tuesday, Nov 1
- Course “More Extensions to STLC”
- Thursday, Nov 3
- Pen+paper exercise session for midterm 2008 (solution)
- Tuesday, Nov 8
- Course “Recursion, References and Store Typings”
- Thursday, Nov 10
- Mid-term exam in INJ 218. Exam starts at 8:00.
- Tuesday, Nov 15
- Course on type reconstruction
- Thursday, Nov 16
- Deadline for simply-typed lambda calculus with extensions exercise (no exercise session related to homework this time)
- Thursday, Nov 17
- Exercise session on type reconstruction
- Tuesday, Nov 22
- Course “Subtyping”
- Thursday, Nov 24
- Exercise session on type reconstruction
- Tuesday, Nov 29
- Course “Objects”
- Thursday, Dec 1
- Exercise session on type reconstruction
- Tuesday, Dec 6
- Course “Featherweight Java”
- Thursday, Dec 8
- Exercise session on type reconstruction
- Tuesday, Dec 13
- Course “Featherweight Java”
- Thursday, Dec 15
- Exercise session on "Featherweight Java"
- Tuesday, Dec 20
- Course “Featherweight Scala”
- Course “Dependent types”
- Thursday, Dec 22
- Pen+paper exercise session: 2007 exam (solution)
Course's grading
Each enrolled student will receive a grade based on his results for the projects (submitted via Moodle), the mid-term exam and the final exam. The relative importance of each part is as follows.
| Part | Importance |
|---|---|
| projects | 30% |
| mid-term exam | 30% |
| final exam | 40% |
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.