Schedule

Please note that this is a preliminary schedule, which might change often during the course. Please revisit shortly before each class. The lecture notes will be made available on this page. We will try to post them here one day before each class.

Day Topics Lecture Notes Background Reading
April 23.
  • Course outline and logistics
  • Why study programming languages?
  • Evaluating Languages
  • Languages and Computability
  • Introduction to LISP / Scheme
  • download
  • [Sebasta] Chap. 1
  • [Scott] Chap. 2
  • [Mitchell] Chap. 3
  • [SchemeTutorial]
  • April 30.
  • Describing Syntax and Semantics
  • Names, Scopes, Bindings
  • download
  • [Scott] Chap. 3
  • [Sebasta] Chap. 4
  • [MS01]
  • May 7.
  • Expressions and Assignments
  • Structuring Control Flow
  • Continuations
  • download
  • [Scott] Chap. 6
  • [Sebasta] Chap. 6+7
  • [Mitchell] Chap. 8
  • [FD01]
  • May 14.
  • Data Types
  • Pointer Types
  • Garbage Collection
  • Copying and Comparing
  • Exception Handling
  • download
  • [Scott] Chap. 7 and 8.5
  • [Sebasta] Chap. 5
  • [GS00]
  • May 21.
  • Subroutines
  • Parameter Passing
  • Type System Basics
  • download
  • [Scott] Chap. 7.1/2, 8.2
  • [Car97]
  • [Mitchell] Chap. 6
  • May 28.
  • Type Inference in ML
  • Data Abstraction and Modularity
  • download
  • [Mitchell] 6.3,9,10
  • [Scott] 7.2.5
  • June 4.
  • From Abstract Data Types and Modules to Objects
  • Subtyping
  • Covariance Problem
  • Multiple Dispatch
  • download
  • [Booch]Chap. 2,3
  • [Craig] Chap. 2
  • [Bruce]
  • [Shang]
  • [MultiJava]
  • June 11.
  • Inheritance
  • Multiple Inheritance
  • Linearization and Mixins
  • F-Bounded Parametric Polymorphism
  • download
  • [Craig] Chap. 4
  • [Taivalsaari]
  • [Snyder]
  • June 18.
  • Aspect-Oriented Programming with AspectJ
  • download
  • AspectJ Homepage
  • [AspectJ]
  • June 25.
  • Efficient Implementation of Programming Languages
  • Introduction to the Jikes Virtual Machine (by C. Bockisch)
  • part1
    part2
  • [Scott] Chap. 13
  • July 2.
  • Introduction to Self and Smalltalk (by M. Haupt)
  • download
    July 9. Guest Lecture by Gregor Kiczales from the University of British Columbia
    July 17. 16.00-18.00: Final Examination in S101/10