The Foundations of Software course at EPFL is taught on Tuesdays from 10:15 to 12:00 in INM 200. Exercise sessions take place on Wednesdays from 10:15 to 12:00 in CO 020.
Aditional announcements related to the course, as well as answers to the students’ questions will be posted on Moodle forum so remember to check it frequently.
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
Tue, Sep 15 | Course Introduction and Combinator Parsers |
Wed, Sep 16 | Exercise session on arithmetic expressions |
Tue, Sep 22 | Course Arithmetic Expressions – Abstract Syntax and Proof Principles |
Wed, Sep 23 | Exercise session on arithmetic expressions |
Tue, Sep 29 | Course The Untyped Lambda Calculus (1) |
Wed, Sep 30 | Exercise session on untyped lambda calculus |
Tue, Oct 6 | Course The Untyped Lambda Calculus (2) |
Wed, Oct 7 | Exercise session on untyped lambda calculus |
Tue, Oct 13 | Course The Simply Typed Lambda Calculus |
Wed, Oct 14 | Exercise session on simply typed lambda calculus |
Tue, Oct 20 | Course STLC & Simple Extensions to STLC |
Wed, Oct 21 | Exercise session on simply typed lambda calculus |
Tue, Oct 27 | Course More Extensions to STLC |
Wed, Oct 28 | Exercise session on simply typed lambda calculus with extensions (1 week only) |
… |
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 particular, you are not allowed to publish your projects in public repositories at GitHub/Bitbucket/… or to use solutions published by others.
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.