CSc 520 Principles of Programming Languages - Schedule


Introduction

Week 1
Lecture #1, Wed, Jan 12: Administrivia, Introduction


Functional Programming

Week 2
Lecture #2, Mon, Jan 17: MLK
Lecture #3, Wed, Jan 19: Introduction to Functional Programming

Scheme

Week 3
Lecture #4, Mon, Jan 24: Introduction to Scheme
Lecture #5, Wed, Jan 26: Scheme Functions

Haskell

Week 4
Lecture #6, Mon, Jan 31: Introduction to Haskell
Lecture #7, Wed, Feb 2: Haskell Patterns
Week 5
Lecture #8, Mon, Feb 7: Higher-Order Functions

Lambda Calculus

Lecture #9, Wed, Feb 9: Syntax
Week 6
Lecture #10, Mon, Feb 14: Substitutions
Lecture #11, Wed, Feb 16: Lambda Calculus 2
Week 7
Lecture #12, Mon, Feb 21: Lambda Calculus 3


Type Systems

Lecture #13, Wed, Feb 23:


Control Structures

Week 8
Lecture #14, Mon, Feb 28: Introduction


Subroutines

Lecture #15, Wed, Mar 2: Introduction
Week 9
Lecture #16, Mon, Mar 7: Optimizing procedure calls
Lecture #17, Wed, Mar 9: Closures


Spring Break

Week 10
Lecture #18, Mon, Mar 14: Spring Break
Lecture #19, Wed, Mar 16: Spring Break


Memory Management

Week 11
Lecture #20, Mon, Mar 21: Introduction
Lecture #21, Wed, Mar 23: Garbage collection


Control Structures II

Week 12
Lecture #22, Mon, Mar 28: Exceptions


Programming-in-the-Large

Object-Oriented Programming

Lecture #23, Wed, Mar 30: Introduction
Week 13
Lecture #24, Mon, Apr 4:
Lecture #25, Wed, Apr 6: Smalltalk


Language Specification

Week 14
Lecture #26, Mon, Apr 11: Introduction
Lecture #27, Wed, Apr 13: Operational Semantics
Week 15
Lecture #28, Mon, Apr 18: Denotational Semantics
Lecture #29, Wed, Apr 20: Denotational Semantics


Programming-in-the-Large II

Modularity

Week 16
Lecture #30, Mon, Apr 25: Separate compilation
  • Modules
  • Modula-2, Ada
  • Information hiding
  • Opaque types
  • Lecture note #49 (Modularity) handed out.
  • Read Scott, Programming Language Pragmatics, pp. 122--129,539--542

TBA

Lecture #31, Wed, Apr 27: TBA
Week 17
Lecture #32, Mon, May 2: TBA
Lecture #33, Wed, May 4: TBA