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
- Martin Luther King Holiday, no class.
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
- Short-Circuit Evaluation
- Selection
- If, Case, ...
- Iteration
- while, repeat, for,...
- Enumerators (Java)
- Iterators (Icon, Clu, C#)
- Lecture note #28 (Control --- Introduction) handed out.
- Lecture note #29 (Control --- Iterators) handed out.
- Read Scott, Programming Language Pragmatics, pp. 249-, 280-296
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
- Exception Handling
- Lecture note #37 (Exceptions) handed out.
- Read Scott, Programming Language Pragmatics, pp. 464--474
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