Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 5.67 KB

index.md

File metadata and controls

60 lines (50 loc) · 5.67 KB
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.

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, 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

Grading

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.

Cheating

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.