EECS 490: Programming Languages

This is an archived version of the Fall 2019 site. The current EECS 490 site is here.

Fall 2019

Fundamental concepts in programming languages. Covers theoretical foundations as well as common paradigms such as functional, object-oriented, and logic programming. Build a parser and interpreter for Scheme and a compiler for a C-like language.

See the syllabus for all the details.


Open calendar in new window

Day # Lecture Topic Deadline Readings
Tue 3 Sep 1 Introduction and Basic Elements Introduction, Basic Python, Basic Elements, Names and Environments
Thu 5 Sep 2 Names and Environments
Tue 10 Sep 3 Control Flow HW1 due Fri 13 Sep 8pm Control Flow, Memory Management
Thu 12 Sep 4 Memory Management
Tue 17 Sep 5 Grammars Project 1 due Tue 17 Sep 8pm Grammars, Functions, , Introduction to Scheme
Thu 19 Sep 6 Scheme and Functions
Tue 24 Sep 7 Recursion and Function Objects HW2 due Fri 27 Sep 8pm Recursion, Higher-Order Functions
Thu 26 Sep 8 Higher-Order Functions
Tue 1 Oct 9 Lambdas Project 2 due Fri 4 Oct 8pm Lambda Functions, Continuations
Thu 3 Oct 10 Continuations
Tue 8 Oct 11 Lambda Calculus HW3 due Fri 11 Oct 8pm Lambda Calculus
Thu 10 Oct 12 Lambda Calculus II
Tue 15 Oct No class - Fall Study Break Operational Semantics
Thu 17 Oct 13 Operational Semantics
Tue 22 Oct 14 Formal Type Systems Project 3 due Mon 21 Oct 8pm Formal Type Systems
Thu 24 Oct Midterm during class time Midterm exam Thu 24 Oct 12noon
Tue 29 Oct 15 Type Systems II and Object-Oriented Programming Functional Data Abstraction, Object-Oriented Programming, Inheritance and Polymorphism
Thu 31 Oct 16 Inheritance and Polymorphism
Tue 5 Nov 17 Static and Dynamic Typing HW4 due Fri 8 Nov 8pm Static Analysis, Dynamic Typing, Generics, Modules and Namespaces
Thu 7 Nov 18 Generics and Modules
Tue 12 Nov 19 Logic Programming Logic Programming
Thu 14 Nov 20 Logic Programming II
Tue 19 Nov 21 Logic, Constraints, and Dependencies Project 4 due Mon 18 Nov 8pm Constraints and Dependencies, Macros and Code Generation
Thu 21 Nov 22 Macros and Code Generation
Tue 26 Nov 23 Template Metaprogramming Template Metaprogramming
Thu 28 Nov No class - Thanksgiving
Tue 3 Dec 24 Advanced Metaprogramming HW5 due Mon 2 Dec 8pm Example: Multidimensional Arrays, Parallel Computing
Thu 5 Dec 25 Parallel Computing
Tue 10 Dec 26 The World of PL Project 5 due Tue 10 Dec 8pm
Thu 19 Dec Final Exam Final Exam Thu 19 Dec 8am


Photo of Amir Kamil
Amir Kamil

12pm-1:30pm, TuTh, 1013 Dow

Photo of Noa Levi
Noa Levi

11:30am-12:30pm, F, 1024 FXB

Photo of Gabriel Matute
Gabriel Matute

2:30pm-3:30pm, F, 1690 Beyster

Photo of Mitchell Morrell
Mitchell Morrell

1:30pm-2:30pm, F, 1024 FXB

Photo of Makarand Parigi
Makarand Parigi

12:30pm-1:30pm, F, 1018 Dow