CS 345: Programming Languages Schedule, Spring 2017



Date 

Topic 

Reading 

Assigned 

Due 

1

W

Jan 18

Introduction to course

Chapter 1,2 of AoPL



2

F

Jan 20

Grammars and Parsing


HW #0: Parsing


3

M

Jan 23

Top-down Parsing

* Haskell Platform
* Learn You a Haskell for Great Good!
* Haskell Tutorial
Chapter 5 of Theory in Programming Practice



4

W

Jan 25

Bottom-up Parsing


Task #1: Get started running Haskell (not graded)


5

F

Jan 27

Haskell Introduction

How to make ad-hoc polymorphism less ad hoc

HW #1A: Fibs and Primes

HW#0 Due

6

M

Jan 30

Haskell introduction continued




7

W

Feb 01

More Haskell


HW #1B: Data Types and functions

HW #1A Due

8

F

Feb 03

Type classes in Haskell




9

M

Feb 06

Expressions

Chapter 3 of AoPL

HW #2: Basic Interpreter:
Implement Assignment 1 in AoPL

HW #1B Due

10

W

Feb 08

Substitution




11

F

Feb 10

Functions

Chapter 4 and 4.1 of AoPL



12

M

Feb 13

Lambda Notation


HW #3: First-Class Functions and Patterns
Implement Assignment 2 in AoPL

HW #2 Due

13

W

Feb 15

Examples of Functions

Chapter 4 .4 of AoPL



14

F

Feb 17

Closures

Chapter 4.5 of AoPL



15

M

Feb 20

Environment Diagrams

Chapter 4.6 of AoPL

HW #4: Draw environment diagrams for these problems

HW #3 Due

16

W

Feb 22

Closures and Environments




17

F

Feb 24

Recursive definitions

Chapter 5 of AoPL



18

M

Feb 27

Error Propagation

Chapter 6.1 of AoPL

HW #5: Error Handling (Exercise 6.1 and 6.2 of AoPL)

HW#4 Due

19

W

Mar 01





20

F

Mar 03

Mutable State (part 1)

Chapter 6.2 of AoPL



21

M

Mar 06

Mutable State (part 2)




22

W

Mar 08

Mutable State (part 1)

Chapter 6.2 of AoPL


HW#5 Due

23

F

Mar 10

TBD

 




M

Mar 13

SPRING BREAK





W

Mar 15

SPRING BREAK





F

Mar 17

SPRING BREAK




24

M

Mar 20

half-semester review




25

W

Mar 22

Midterm




26

F

Mar 24

Monads

Chapter 6.3 of AoPL

HW #6: Combining Monads: Do Assignment 3 in AoPL


27

M

Mar 27

Monads




28

W

Mar 29

Discuss Midterm




29

F

Mar 31

Discuss Midterm




30

M

Apr 03

Return Statement


HW# 7: Return

HW#6 Due

31

W

Apr 05

NO CLASS




32

F

Apr 07





33

M

Apr 10

Objects

On Understanding Data Abstraction, Revisited (paper)
(Slides presented in Orlando)

HW#8: JavaScript 

HW#7 Due

34

W

Apr 12

Objects 




35

F

Apr 14

Objects




36

M

Apr 17

Inheritance




37

W

Apr 19

Records and “this”

A denotational semantics of inheritance and its correctness



38

F

Apr 21

Typing

Chapter 7 of AoPL



39

M

Apr 24

Typing


HW#9 Typing

HW#8 Due

40

W

Apr 26

Typing




41

F

Apr 28

Partial Evaluation

Tutorial on partial evaluation



42

M

May 01

Partial Evaluation




43

Wed

May 03




HW#9 Due

44

Fri

May 05