eecs 662: programming languages
spring 2019

essentials | homework | solutions | schedule

essentials

Instructor J. Garrett Morris
Email 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

syllabus

The syllabus is available here. The high-level objectives for this course are that students should be able to:

homework

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

solutions

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

schedule

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