Week by week

Planned content. This will change during the course.

Time / Place Topic Preparation Skills Content
2019-11-04
15:15 (MA:3)
Class cancelled
2019-11-05
13:15 (MH:Gårdin)
Introduction
  • Class overview
  • Introduction
  • Programming Languages and Execution
  • Language Critique
2019-11-11
15:15 (MA:3)
Syntax and Variables
  • Sebesta 3.3.1
  • Sebesta 5.2.3
  • Sebesta 5.3
  • Sebesta 5.4
  • Sebesta 5.5 up to 5.5.4 (inclusive)
  • Sebesta 5.5.6
  • Optional videos:
  • Syntax and Semantics
  • Backus-Naur Form (BNF)
  • Operators: Precedence and Associativity
  • Names and Binding
2019-11-12
13:15 (MH:Gårdin)
Semantics and Basic Expressions
  • Natural Semantics
  • Arithmetic and Integer Types
2019-11-18
15:15 (MA:3)
Types and Expressions
  • Sebesta 5.4.2, 5.4.3
  • Sebesta 6.2.1.2
  • Sebesta 6.6 – 6.8
  • Sebesta 6.10
  • Sebesta 7.2.1.1, 7.2.1.2
  • Sebesta 7.2.2
  • Handout D: Value Equality
  • Types and Type Checking
  • Variable Bindings (esp. regarding types)
  • Basic Expressions
2019-11-19
13:15 (MH:Gårdin)
Types and Subprograms
  • Formal Type Systems
2019-11-25
15:15 (MA:3)
Subprograms and Scopes
  • Sebesta 5.5.1
  • Sebesta 5.5.6
  • Sebesta 5.7
  • Sebesta 9.4.2
  • Sebesta 9.5 – 9.5.2.5
  • Sebesta 9.6
  • Sebesta 9.12
  • Sebesta 10.1
  • Sebesta 10.2
  • Optional Video:
  • Subprograms and Parameter Passing
  • Scoping
  • Pointers, References, Arrays
2019-11-26
13:15 (MH:Gårdin)
Arrays and Imperative Programming Features
  • Sebesta 7.7 – 7.7.5 (incl.)
  • Sebesta 8.2.1
  • Sebesta 8.2.2 – 8.2.2.2
  • Sebesta 8.3.1
  • Sebesta 8.3.2
  • Sebesta 8.3.4
  • Sebesta 6.5
  • Sebesta 6.11
  • Optional Video:
  • Arrays
  • Pointers and References
  • Automatic Memory Management
  • Statements
2019-12-02
15:15 (MA:3)
Abstract Datatypes and Parametric Polymorphism
  • Abstract Datatypes
  • Parametric Polymorphism
  • Type Classes
2019-12-03
13:15 (MH:Gårdin)
Subtyping and Object-Oriented Programming
  • Subtyping
  • Object-Oriented Programming Languages
2019-12-09
15:15 (MA:3)
Functional Programming 1
  • Functional Programming
  • Pattern Matching
  • Standard ML, see SML/NJ for an implementation
2019-12-10
13:15 (MH:Gårdin)
Functional Programming 2
  • Type Inference
  • Exceptions
2019-12-16
15:15 (MA:3)
Continuations and Logic Programming
  • Continuations
  • Logic Programming in Datalog
  • Review
2019-12-17
13:15 (MH:Gårdin)
Review
  • Exchange Student Presentations
  • Review

Exam

Exam modalities will be determined later. You will have to have finished all lab assignments to be allowed to take the exam.