Lecture plan

Note: All students are advised to start reading the textbook and slides before the lectures.

At the beginning of a lecture, you should have identified an issue which you do not understand, and formulated a question about it.

The slides come in two formats; either

or You read the pdf files with Adobe Acrobat Reader.

Lecture 1: Introduction to SML

15-17, August 30, 2011

Hansen: 1
Paulson: 1, 2.1-2.6, 2.11-2.12
Ullman: 0-1

Introduction

for projector, for printing.

Introduction to SML

for projector, printing.

Lecture 2: SML

10-12, September 2, 2011

Hansen: 1-3
Paulson: 1, 2.1-2.17, 2.19, 2.23
Ullman: 1-4, 6-9

Where is currying first mentioned? As far as I can tell, all three textbooks explain currying quite late.

Hansen: 9.4
Paulson: 5.2
Ullman: 21, Section "Curried functions"

pdf, 4pdf, programs.

Lecture 3: Recursion

13-15, September 5, 2011

Hansen: 1.4-1.5, 2.3-2.4
Paulson: 2.14-2.16, 5,2
Ullman: 5

pdf, 4pdf, programs.

Lecture 4: Lists

10-12, September 8, 2011

Hansen: 5
Paulson: 3.1-3.8, 3.14-3.16
Ullman: 4, 10

pdf, 4pdf, programs.

Lecture 5: Inductive data types

13-15, September 12, 2011

Hansen: 4, 7, (8)
Paulson: 4.1-4.12
Ullman: 12, 13

for projector, for printing.

programs.

Lecture 6: Complexity and tail recursion

15-17, September 16, 2011

Hansen: 17
Paulson: -
Ullman: -

for projector (please note that only the first part can be viewed in this format),
for printing.

programs.

Exercises

Lecture 7: Higher-order functions

Hansen: 9
Paulson: 5.1-5.11
Ullman: 11, 21

Higher-order functions

notes, programs.

More Higher-order functions

notes,

Notes on Lazy Evaluation

notes,

Lecture 8: Abstract datatypes

13-15, September 22, 2011

Hansen: 4,8,10
Paulson: 3.22-3.25, 7.1-7.3
Ullman: 13

pdf, 4pdf,

Lecture 9: Algorithms in functional programming

13-15, September 30, 2011

Hansen: -
Paulson: 3.18-3.21
Ullman: 7

Today I will also talk about binary search trees. See notes from previous lecture.

Sorting in a functional language

pdf, 4pdf, programs.

Example: Huffman coding

notes, programs.

Lecture 10: Examples, advanced concepts

10-12, October 6, 2011

Hansen: 11, Appendix D,E
Paulson: 2.20-2.22, 4.13, 7.14-7.17
Ullman: 14-15

Example: Implementation of a simple imperative programming language

notes. program.

Modules

All textbooks explain the module concept, but the chapter from Pucella's book may still be helpful. (Again, same password as the status page.)

for projector, for printing.

Pucella, chapter 3

Standard library of SML

Notes on the standard library.

PLEASE NOTE THAT LECTURE 10 IS THE FINAL LECTURE.