title | layout | start | index |
---|---|---|---|
Home |
default |
14 Sep 2015, 00:00 (Europe/Zurich) |
-1 |
The Foundations of Software course at EPFL is taught on Tue 10:15-12:00, INM 200. Exercise sessions take place on Wed 10:15-12:00, CO 020 (the exams take place elsewhere - scroll down to learn more). Additional announcements related to the course, as well as answers to the students' questions will be posted on the mailing list so remember to check it frequently.
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.
Tue, 15 Sep | Course Introduction and Combinator Parsers |
Wed, 16 Sep | Exercise session on arithmetic expressions |
Tue, 22 Sep | Course Arithmetic Expressions - Abstract Syntax and Proof Principles |
Wed, 23 Sep | Exercise session on arithmetic expressions |
Tue, 29 Sep | Course The Untyped Lambda Calculus (1) |
Wed, 30 Sep | Exercise session on untyped lambda calculus |
Tue, 6 Oct | Course The Untyped Lambda Calculus (2) |
Wed, 7 Oct | Exercise session on untyped lambda calculus |
Tue, 13 Oct | Course The Simply Typed Lambda Calculus |
Wed, 14 Oct | Exercise session on simply typed lambda calculus |
Tue, 20 Oct | Course STLC & Simple Extensions to STLC |
Wed, 21 Oct | Exercise session on simply typed lambda calculus |
Tue, 27 Oct | Course More Extensions to STLC |
Wed, 28 Oct | Exercise session on simply typed lambda calculus with extensions |
Tue, 3 Nov | Course Recursion and State with STLC |
Wed, 4 Nov | Solving midterm-like problems in class (exercises, solutions) |
Tue, 10 Nov | Course Type Reconstruction and Polymorphism |
Wed, 11 Nov | Midterm (exercises, solutions) |
Tue, 17 Nov | Course Subtyping |
Wed, 18 Nov | Exercise session on simply typed lambda calculus with Type Reconstruction |
Tue, 24 Nov | Course Objects |
Wed, 25 Nov | Exercise session on simply typed lambda calculus with Type Reconstruction |
Tue, 1 Dec | Course Featherweight Java |
Wed, 2 Dec | Solving final-exam-like problems in class (exercises, solutions) |
Tue, 8 Dec | Course Foundations of Scala |
Wed, 9 Dec | Solving final-exam-like problems in class (exercises, solutions) |
Tue, 15 Dec | Course Foundations of Scala (cont.) |
Wed, 16 Dec | Solving final-exam-like problems in class (exercises, solutions) |
Mon, 25 Jan | Final exam, 16:00 - 18:00 in CO1 |
Each enrolled student will receive a grade based on their results for the projects, the midterm exam and the final exam. The relative importance of each part is: 30% for projects, 30% for the midterm and 40% for the final.
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.