Week by week

Planned content. This will change during the course.

Time / Place Topic Preparation Skills Content
2021-11-02
08:15 (E:A)
Introduction
  • Class overview
  • Introduction
  • Language Critique
2021-11-03
15:15 (E:A)
Background
  • Memory
  • Assembly Language
  • Loading, Linking, Running
  • Programming Languages, Program Execution, and the Computer
2021-11-09
15:15 (V:A)
Zoom stream
Syntax and Variables
  • Sebesta 3.3.1
  • Sebesta 5.2.3
  • Sebesta 5.3
  • Sebesta 5.4
  • Optional (will review later):
    • 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
2021-11-10
15:15 (E:A)
Zoom stream
Semantics and Basic Expressions
  • Natural Semantics
  • Arithmetic and Integer Types
2021-11-16
15:15 (V:A)
Zoom stream
Subprograms and Advanced Expressions
  • Side Effects in Practice
  • Variable Storage Bindings
  • Referencing Environments
  • Subprograms
2021-11-17
15:15 (E:A)
Zoom stream
Types I
  • Static and dynamic type binding
  • Static and dynamic type checking
  • Type equivalence
  • Type constructors
2021-11-23
15:15 (V:A)
Zoom stream
Subprograms II
  • Scopes
  • Parameter Passing
  • Nested Subprograms
2021-11-24
15:15 (E:A)
Zoom stream
Imperative Concepts
  • Sebesta 7.7–7.7.5
  • Sebesta 8.2.1
  • Sebesta 8.2.2–8.2.2.2
  • Sebesta 8.3.1–8.3.4
  • Sebesta 6.11
  • Sebesta 6.5–6.5.4
  • Complex Statements
  • Pointers and References
2021-11-30
15:15 (V:A)
Zoom stream
Types II
  • Abstract Datatypes
  • Type Classes
  • Parametric Polymorphism
2021-12-01
15:15 (E:A)
Zoom stream
Object-Oriented Concepts
  • Subtype Polymorphism
  • Interactions between Subtype and Parametric Polymorphism
  • Dynamic Dispatch
  • Inheritance
2021-12-07
15:15 (V:A)
Zoom stream
Functional Concepts I
  • Functional Programming
  • Pattern Matching
  • Resource: SML/NJ (SML compiler / interactive run-time system)
  • Resource: SOSML (Online SML runner)
2021-12-08
15:15 (E:A)
Zoom stream
Functional Concepts II
  • Type Inference
  • Exceptions
2021-12-14
15:15 (V:A)
Zoom stream
Advanced Control Flow
  • Continuations
  • Exceptional Control Flow
2021-12-15
15:15 (E:A)
Zoom stream
Review
  • Exchange student presentations
  • Review, Q&A

Exam (UPDATED with alternative exam option: see "COVID-friendly exam", below)

You have two options for the final exam, as listed below: Exam 1 (written, in-person) and Exam 2 (remote, on the computer and oral). There will also be a re-take exam (Exam 3) this year.

Exam 1: Regular Written Exam

Exam 2: COVID-friendly exam

Exam 3: Retake Exam