Instructor | J. Garrett Morris |
garrettm@ku.edu | |
Office | Eaton 2028 |
Office hours | TH 2:20-4:00 PM, and by appointment |
Course website | http://ittc.ku.edu/~garrett/eecs662s19/ |
Lectures | TH 1:00-2:15, Learned 1136 |
The syllabus is available here. The high-level objectives for this course are that students should be able to:
Homework and solutions are no longer available.
Number | Due date | Assignment | Sample solutions |
0 | February 5, 1:00 PM | HW0.hs | HW0.hs |
1 | February 28, 1:00 PM | HW1.hs | HW1.hs |
2 | March 21, 1:00 PM | HW2.hs | HW2.hs |
3 | April 18, 1:00 PM | HW3.hs | HW3.hs |
4 | May 9, 11:59 PM | HW4.hs | HW4.hs |
Number | Date | Blank | Solutions |
Quiz 1 | 1/31 | Q1.pdf | Q1ans.pdf |
Quiz 2 | 2/19 | Q2.pdf | Q2ans.pdf |
Quiz 3 | 3/7 | Q3.pdf | Q3ans.pdf |
Quiz 3 | 3/7 | Q3.pdf | Q3ans.pdf |
Midterm | 3/26 | Midterm.pdf | MidtermSolutions.pdf |
Quiz 4 | 4/4 | Q4.pdf | Q4ans.pdf |
Quiz 5 | 4/25 | Q5.pdf | Q5ans.pdf |
Quiz 6 | 5/2 | Q6.pdf | Q6ans.pdf |
date | topics | notes |
1/22 |
Introduction and administrivia Why study programming languages? |
|
1/24 |
Syntax and semantics (informally) Concrete and abstract syntax Arithmetic language (syntax) |
day2.pdf Arith0.hs |
1/29 | Semantics of arithmetic language | day3.pdf |
1/31 |
Non-total evaluation functions Approximating evaluation |
day4.pdf |
2/5 | Implementing evaluation in Haskell | Arith1.hs |
2/7 | No class---icecapades! | |
2/12 | Booleans and pairs | Homework 1 released |
2/14 |
Variables and bindings Substitution α-equivalence |
day5.pdf |
2/19 | Call-by-value and call-by-name | day6.pdf |
2/21 | Environments and substitution | day7.pdf |
2/26 | Lambda calculus | day8.pdf |
2/28 | Implementing lambda calculus | Lambda.hs |
3/5 | Functions and environments | day9.pdf |
3/7 |
Typing functions Curry-Howard |
day10.pdf |
3/19 |
Recursion Fixed points |
recursion.html Midterm review (solutions) |
3/21 | Fixed points (continued) | |
3/26 | Midterm | |
3/28 |
Introducing effects Readers Evaluation strategies and side effects |
day12.pdf |
4/2 | State |
day13.pdf Homework 3 released |
4/4 | Non-determinism | day14.pdf |
4/9 | No class—instructor away | |
4/11 | Type and effect systems | day15.pdf |
4/16 |
Type and effect systems Subsumption |
|
4/18 4/23 |
Subsumption Subtyping |
subsumption.html |
4/25 |
Parametric polymorphism Types and type schemes |
day18.pdf |
4/30 |
Types and type schemes Terms for parametric polymorphism |
day19.pdf Final review (solutions) |
5/2 |
Type classes Monads |
day20.pdf |
5/7 5/9 |
Movie week |
Frank Wood on probabalistic programming Matt Might on errors |