Below is the current calendar for the CSE341 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
1/6
administrative details
OCaml types and expressions

Lecture: panopto video
Notes: notes
1/8
functions


Lecture: panopto video
Notes: notes
1/10
mutable state, let


Lecture: panopto video
Notes: notes
Program: StringFun.java
1/13
pattern matching




Lecture: panopto video
Notes: notes
1/15
mergesort
tail recursion
efficient reverse
quicksort

Lecture: panopto video
Notes: notes
1/17
higher-order functions
map, filter, reduce



Lecture: panopto video
Notes: notes
Lecture: cse143 Java 8 lecture
Program: Java8Demo.java
1/20
Martin Luther King Holiday

1/22
Curried functions
composition of functions
anonymous functions

Lecture: panopto video
Notes: notes
1/24
more curried functions
type safety


Lecture: panopto video
Notes: notes
1/27
defining types



Lecture: panopto video
Notes: notes
1/29
more binary tree
option type


Lecture: panopto video
Notes: notes
1/31
closures
scope
Java inner classes

Lecture: panopto video
Notes: notes
2/3
modules
structures

Lecture: panopto video
Notes: notes
Program: rational1.ml
Program: rational2.ml
Program: rational3.ml
2/5
signatures


Lecture: panopto video (spr24)
Notes: notes
video: spr24 midterm review
Program: rational4.ml
Program: rational5.ml
Program: rational6.ml
2/7
midterm
2/10
intro to Scheme



Lecture: panopto video
Notes: notes
OCaml/Scheme Comparison
2/12
let, let*
internal definitions
struct

Lecture: panopto video
Notes: notes
2/14
higher-order functions
anonymous functions
equality operators

Lecture: panopto video
Notes: notes
2/17
Presidents Day Holiday

2/19
parsing

Lecture: panopto video
Notes: notes
2/21
more parsing

Lecture: panopto video
Notes: notes
Program: grammar1.rkt
Program: grammar2.rkt
2/24
introduction to Ruby



Lecture: panopto video
Notes: notes
2/26
control structures
blocks
classes

Lecture: panopto video
Notes: notes
Program: range.rb
2/28
how to make a repl


Lecture: panopto video
Notes: notes
3/3
more on yield
console input
file processing

Lecture: panopto video
Notes: notes
3/5
OOP in Ruby

Lecture: panopto video
Notes: notes
Program: tree1.txt
Program: guess_odd.rb
3/7
mixins

Lecture: panopto video
Notes: notes
Program: tree2-1.txt (ruby)
Program: tree2-2.txt (Python)
3/10
memoization


Lecture: panopto video
Notes: notes
3/12
Guest lecture
Compilers & Interpreters

Lecture: panopto video
Slides: slides
3/14
review for the final

Lecture: panopto video

Final Exam -- Wednesday, March 19, 8:30-10:20 am