CSc 520 Principles of Programming Languages - Schedule


Introduction

Week 1
Lecture #1, Wed, Jan 16: Administrivia, Introduction
Week 2
Lecture #2, Mon, Jan 21: MLK


Translator Implementation

Lecture #3, Wed, Jan 23: Interpreters
Week 3
Lecture #4, Mon, Jan 28: Interpreters
Lecture #5, Wed, Jan 30: Interpreters


Memory Management

Week 4
Lecture #6, Mon, Feb 4: Introduction
Lecture #7, Wed, Feb 6: Mark-and-sweep
Week 5
Lecture #8, Mon, Feb 11: Copying Collection
Lecture #9, Wed, Feb 13: Generational Collection


Type Systems

Week 6
Lecture #10, Mon, Feb 18: Introduction
Lecture #11, Wed, Feb 20: Equivalence
Week 7
Lecture #12, Mon, Feb 25: Polymorphism


Object-Oriented Programming

Lecture #13, Wed, Feb 27: Introduction
Week 8
Lecture #14, Mon, Mar 3: Multiple inheritance
Lecture #15, Wed, Mar 5: Smalltalk
Week 9
Lecture #16, Mon, Mar 10: Smalltalk


Names, Scopes, and Bindings

Lecture #17, Wed, Mar 12: Introduction
Week 10
Lecture #18, Mon, Mar 17: Spring Break
Lecture #19, Wed, Mar 19: Spring Break
Week 11
Lecture #20, Mon, Mar 24: Modules
Lecture #21, Wed, Mar 26: Dynamic Scope


Control Structures

Week 12
Lecture #22, Mon, Mar 31: Introduction
Lecture #23, Wed, Apr 2: Procedure calls
Week 13
Lecture #24, Mon, Apr 7: Exceptions
Lecture #25, Wed, Apr 9: Iterating over data structures
Week 14
Lecture #26, Mon, Apr 14: Coroutines


Functional Programming

Lecture #27, Wed, Apr 16: Introduction to Functional Programming
Week 15
Lecture #28, Mon, Apr 21: Scheme Functions


Logic Programming

Lecture #29, Wed, Apr 23: Introduction to Logic Programming
Week 16
Lecture #30, Mon, Apr 28: Prolog Programming


Programming Language Survey Presentations

Lecture #31, Wed, Apr 30: Object-Oriented Languages
Week 17
Lecture #32, Mon, May 5: Miscellaneous languages
Lecture #33, Wed, May 7: Scripting Languages