General Information

Schedule

Date

Lecture

Notes

Code

Assignments


Mon

Jan 7

Basic SML

basicSML.sml

Wed

Jan 9

Illustrating functions and recursion

Harper Chapter 4.1, 4.2, 4.3, 5.1, 5.3, 6, 7.1, 7.2

fun.sml

Fri

Jan 11

Datatypes

Harper 9, 10.1, 10.2, 10.3

datatypes-1.sml

HW 1 out


Mon

Jan 14

Datatypes

trees.sml, datatypes-2.sml

Wed

Jan 16

Induction/Reasoning about programs

Notes on Induction

Fri

Jan 18

Higher-order functions

Notes on higher-order functions

HW 1 due /HW 2 out


Mon

Jan 21

Invited Lectures by Professor Panangaden (higher-order functions)

Wed

Jan 23

Invited Lectures by Professor Panangaden (streams/lazy programming)

Notes on lazy programming/streams

lazy.sml
streams1.sml
streams2.sml

Fri

Jan 25

Invited Lectures by Professor Panangaden (streams/lazy programming)


Mon

Jan 28

Continuations

Notes on continuations

cont.sml
fold.sml

Wed

Jan 30

Continuations

Fri

Feb 1

Exceptions

Harper Ch. 12
Evaluation example

exceptions.sml

HW 2 due /HW 3 out


Mon

Feb 4

Functional Parsers

Notes on Functional Parsing

parsing.sml

Wed

Feb 6

Functional Parsers

Slides

json-skeleton.sml
json-eg.txt

Fri

Feb 8

References

Notes
Slides

refs-1.sml


Mon

Feb 11

Closures and objects

Slides

cobj.sml

Wed

Feb 13

Environment model

Notes on Environment diagrams

Slides

Writing local in terms of let

Fri

Feb 15

Modules

Harper's book, Part III

Modules Slides

Module Code


Mon

Feb 18

Review

Slides

HW 3 due

Wed

Feb 20

Review

Slides

Fri

Feb 22

Midterm


Mon

Feb 25

Modules and Functors

Harper's book, Part III
Slides

Wed

Feb 27

Midterm solutions

Fri

Mar 1

Intro Language Design

Intro notes

HW 4 out


Mon

Mar 4

Study Break!

Wed

Mar 6

Study Break!

Fri

Mar 8

Study Break!

Mon

Mar 11

Binders and substitution

Binders and substitution notes

Wed

Mar 13

Binders and substitution cont'd, Typing

Types notes

Fri

Mar 15

Typing


Mon

Mar 18

Implementation

Evaluator implementation

Wed

Mar 20

Bidirectional Typechecking

Notes

HW 4 due / HW 5 out

Fri

Mar 22

Type inference/Unification

Notes


Mon

Mar 25

Type inference/Unification

Wed

Mar 27

Lambda Calculus

Notes

Fri

Mar 29

Easter holiday

Mon

Apr 1

Easter holiday

Wed

Apr 3

Dependent types

intro-dependent-types.agda
helper.agda
serializer.agda

Fri

Apr 5

Dependent types

HW 5 due


Mon

Apr 8

Subtyping

Notes

Wed

Apr 10

Subtyping

Fri

Apr 12

Object-oriented concepts

Notes


Mon

Apr 15

Review

Practice questions

Tue

Apr 16

Review