[   ^ to CSE 341 index...   ]

CSE 341 : Section notes

29 March: A whirlwind tour of Linux/Unix, the X Window system, Emacs, and the SML/NJ interpreter.

5 April: Comments on type systems; the Standard ML type system; exercises and anonymous feedback.

12 April: Constructors for built-in types, using constructors in patterns, an informal pattern matching algorithm, patterns as function parameters, tail recursion, exercises, ML polymorphism vs. C++ templates.

19 April: User-defined data types and their constructors, ML modules as a namespace mechanism, discussion of modules, exercises with trees. Exercise: implementing the informal matching algorithm using datatypes and recursion.

26 April: Higher-order and first-class functions, anonymous functions, currying, exercises.

3 May: Lexical scoping and nested functions, environments, closures and activations, higher-order functions and closures, "lets are lambdas". Brief overview of Scheme, Scheme's elegant syntax and dynamic typing, "objects are higher-order functions", programs as data (a simple constraint solver), final thoughts on functional programming.

10 May: Begin Smalltalk. Syntax, objects, messages, closures. Using the Squeak environment.

17 May: Review of Smalltalk messages, closures, and control structures. Exercises. Introduction to Morphic programming.

24 May: Java primitive and object types, and the consequences of the distinction. The Java Virtual Machine and bytecodes; performance of JVMs. The Java package system.

31 May: Object-oriented subtyping and static type checking. The "natural" object-oriented type rule (narrowing of return types and widening of argument types), compared with Java's "exact match" type rule. Course wrapup and sermon; a few hints future study in programming languages.


Note for instructors: Feel free to take any of the above material and adapt it for your own purposes. Credit is appreciated but not necessary. The main in-class notes linked from these pages were intended to be photocopied and passed out. Most weeks also have in-class slides, suitable for overhead projection.


Keunwoo Lee
Last modified: Thu May 31 10:40:46 PDT 2001