Below is the current calendar for the CSE413 class. Please keep in mind that Stuart is constantly updating this. It should accurately describe the past, but it won't always accurately predict the future. Links to lecture notes are included as they become available.

Monday Wednesday Friday
3/31
administrative details
OCaml types and expressions

Lecture: panopto video
Notes: notes
4/2
functions


Lecture: panopto video
Notes: notes
4/4
mutable state, let


Lecture: panopto video
Notes: notes
Program: StringFun.java
4/7
pattern matching



Lecture: panopto video
Notes: notes
4/9
mergesort
tail recursion
efficient reverse

Lecture: panopto video
Notes: notes
4/11
quicksort
higher-order functions
map, filter, reduce


Lecture: panopto video
Notes: notes
Lecture: cse143 Java 8 lecture
Program: Java8Demo.java
4/14
Curried functions
composition of functions
anonymous functions

Lecture: panopto video
Notes: notes
4/16
more curried functions
type safety


Lecture: panopto video
Notes: notes
4/18
defining types



Lecture: panopto video
Notes: notes
4/21
more binary tree




Lecture: panopto video
Notes: notes
4/23
option type
closures



Lecture: panopto video
Notes: notes
4/25
scope
Java inner classes
modules
structures

Lecture: panopto video
Notes: notes
Program: rational1.ml
4/28
signatures

Lecture: panopto video
Notes: notes
Program: rational2.ml
Program: rational3.ml
Program: rational4.ml
Program: rational5.ml
Program: rational6.ml
4/30
midterm review

Lecture: panopto video
5/2
midterm
5/5
intro to Scheme



Lecture: panopto video
Notes: notes
5/7
let, let*
internal definitions
struct

Lecture: panopto video
Notes: notes
OCaml/Scheme Comparison
5/9
higher-order functions
anonymous functions
equality operators

Lecture: panopto video
Notes: notes
5/12
how to make a repl


5/14
parsing

5/16
more parsing

5/19
introduction to Ruby



5/21
control structures
blocks
classes

5/23
more on yield
console input
file processing

5/26
Memorial Day Holiday

5/28
OOP in Ruby

5/30
mixins

6/2
memoization
6/4
Guest lecture

6/6
review for the final


Final Exam -- Monday, June 9, 2:30-4:20 pm