CS 386L: Programming Languages Schedule, Spring 2015

Note: Schedule subject to change!

 


Date

Topic

Reading

Assigned

Due

1

T

Jan 20

Smallstep and bigstep semantics

Pierce 1, 2, 3



2

Th

Jan 22

Inductive proofs

Pierce 3

HW1: Pierce 3.5.17


3

T

Jan 27

Lambda Calculus, Church encodings, Fixed points

Pierce 5



4

Th

Jan 29

Type systems

Pierce 8



5

T

Feb 03

Introduction to Haskell


HW2: Pierce 5.2.4, 5.2.8, 5.3.8

AND: Write a factorial function that does not use recursion.
(use the same techniques we used for +, *, and Pred)

HW1

6

Th

Feb 05

Implementing Semantics in Haskell

Pierce 4, 6, 7



7

T

Feb 10

Simply-Typed Lambda-calculus

Pierce 9

HW3: Pierce 9.3.2, 11.5.2, 11.9.1

HW2

8

Th

Feb 12

Fixed-points and Safety of Simply-typed Lambda-calculus




9

T

Feb 17

Tuples, Records, Sums

Pierce 11



10

Th

Feb 19

References and mutable state, Exceptions

Pierce 13, 14

HW4: Implement small-step (7) and big-step (7.3.1) in Haskell
(using named expressions, not nameless ones) See Lambda Parser and Lambda AST

HW3

11

T

Feb 24

class canceled due to weather




12

Th

Feb 26

Type Classes

* How to make ad-hoc polymorphism less ad hoc

HW5: Complete proof of preservation for Simply-Typed Lambda-Calculus with References (13.5.3) [Note: there is some background info in and around theorem 9.3.9]. Include proofs of lemmas 13.5.4, 13.5.5 and 13.5.6.


13

T

Mar 03

Monads

* Monads for functional programming
* All About Monads


HW4

14

Th

Mar 05

class canceled due to weather




15

T

Mar 10

Type Reconstructions

Pierce 22




Th

Mar 12

Midterm





T

Mar 17

Spring break




16

Th

Mar 19

Spring break




17

T

Mar 24

Universal Types

Pierce 23


HW5

18

Th

Mar 26

Existentials

Pierce 24

HW 6: Type Inference


19

T

Mar 31





20

Th

Apr 02

Imperative Objects, FJ

Pierce 18, 19



21

T

Apr 07

ADT versus OOP

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



22

Th

Apr 09

Partial Evaluation

* Haskell code
* Lecture notes
* An introduction to partial evaluation
* Partial Evaluation of Computation Process—An Approach to a Compiler-Compiler Yoshihiko Futamura



23

T

Apr 14




HW 6

24

Th

Apr 16



Send an email to wcook@cs.utexas.edu with a comment about something you learned from the talk.


25

T

Apr 21

Rewriting Systems

K Framework
An Executable Formal Semantics of C with Applications 



26

Th

Apr 23

Algebra and Coalgebra

A Tutorial on (Co) Algebras and (Co) Induction



27

T

Apr 28

Algorithm Synthesis

KIDS: A Semi-Automatic Program Development System



28

Th

Apr 30





29

T

May 05






Th

May 07