The material below is provided for reference. Please use the material from more recent course when available.

The course schedule

Week Monday Wednesday Friday
00 Oct 18
No class
Oct 20
No class
Oct 22
No class
01 Oct 25
introduction / administrivia 
[slides, handout]
Oct 27
recap 
[slides, handout]
Oct 29
Python intro 
02 Nov 01
No class
Nov 03
analysis of algorithms 
[slides, handout]
Nov 05
lab 
[assignment 1]
03 Nov 08
analysis of algorithms 
Nov 10
common algorithmic patterns 
[slides, handout]
Nov 12
lab 
04 Nov 15
sorting 
[slides, handout]
Nov 17
sorting 
Nov 19
lab 
[assignment 2]
05 Nov 22
trees 
[slides, handout]
Nov 24
heaps / priority queues 
[slides, handout]
Nov 26
lab 
06 Nov 29
graphs: intro 
[slides, handout]
Dec 01
graphs: traversals 
[slides, handout]
Dec 03
lab 
[assignment 3]
07 Dec 06
graphs: directed graphs 
[slides, handout]
Dec 08
graphs: shortest paths 
[slides, handout]
Dec 10
lab 
08 Dec 13
graphs: MST 
[slides, handout]
Dec 15
maps / hashes 
[slides, handout]
Dec 17
lab 
09 Dec 20
string matching 
[slides, handout]
Dec 22
string matching / recap 
Dec 24
No class
Dec 27
Sem. break
Dec 29
Sem. break
Dec 31
Sem. break
Jan 03
Sem. break
Jan 05
Sem. break
Jan 07
Sem. break
10 Jan 10
edit distance 
[slides, handout]
Jan 12
tries 
[slides, handout]
Jan 14
lab 
[assignment 4]
11 Jan 17
FSA intro 
[slides, handout]
Jan 19
FSA determinization / minimization 
[slides-det, handout-det, slides-min, handout-min]
Jan 21
FSTs / lab 
[slides, handout, assignment 5]
12 Jan 24
FSA and regular languages 
[slides, handout]
Jan 26
Parsing: Intro 
[slides, handout]
Jan 28
lab 
13 Jan 31
Parsing: CKY / Earey 
[cky-slides, cky-handout, earley-slides, earley-handout]
Feb 02
Parsing: dependencies 
[cky-slides, cky-handout]
Feb 04
lab 
[assignment 6]
14 Feb 07
recap / summary 
Feb 09
summary 
Feb 11
exam