Homework 1
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.
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 |
akamil@umich.edu
12pm-1:30pm, TuTh, 1013 Dow
nlevi@umich.edu
11:30am-12:30pm, F, 1024 FXB
gmatute@umich.edu
2:30pm-3:30pm, F, 1690 Beyster
morrelmi@umich.edu
1:30pm-2:30pm, F, 1024 FXB
parigim@umich.edu
12:30pm-1:30pm, F, 1018 Dow