| Lectures and other materials |
Date
|
PowerPoint lectures |
Reading and assignments |
| Thursday, January 15 |
Introduction
Analysis of algorithms I
Searching (with logarithms) |
Pages 1 to 20 in AU (Algorithms Unlocked)
01 Collatz |
| Tuesday, January 20 |
Sorting (and loop invariants)
Comparisons |
Pages 21 to 24 in AU
|
| Thursday, January 22 |
Pointers and references
Data structures bestiary |
Pages 25 to 59 in AU
02 Squaresort
Proving Loop Correctness |
| Tuesday, January 27 |
Linked Lists
Binary Trees
BNF |
|
| Thursday, January 29 |
Data Structure Design
State Machines
Tokenizers
|
03 Sentence Generation
A Concise Guide to Git |
A Concise
| Tuesday, February 3 |
Trees
Tree Searching
Backtracking |
04 Backtracking
Backtracking (just on trees, not graphs) |
| Thursday, February 5 |
Stacks, Queues, and Deques
Stacks |
|
| Tuesday, February 10 |
Hashing
Abstract Data Types |
05 Tree API and Expression Evaluation
Parsing Trees
|
| Thursday, February 12 |
Git |
A Concise Guide to Git |
| Tuesday, February 17 |
Recognizers
Analysis II
|
06 Bugs Recognizer
The Bugs Language
Bugs Grammar
HTML for Java Recursive Descent |
| Thursday, February 19 |
Quicksort
Persistence
Preferences |
Pages 71 to 89 in AU |
| Tuesday, February 24 |
Recursive Descent Parsing
Types of Algorithms
|
07 Bugs Parser
Bugs Grammar, v2 |
| Thursday, February 26 |
Heapsort
Priority queues |
|
| Tuesday, March 3 |
Review
|
Pages 49 to 59 in AU |
| Thursday, March 5 |
SNOW DAY -- University closed
SIGCSE 2015, Kansas City, Missouri, March 4-7
|
|
| Tuesday, March 10 |
Spring break |
|
| Thursday, March 12 |
Spring break |
|
Tuesday, March 17
|
Huffman Encoding
Dynamic Programming
|
08 Bugs Interpreter, part 1
Interpreter FAQ
Pages 158 to 167 in AU
|
| Thursday, March 19 |
Midterm Exam |
|
| Tuesday, March 24 |
Going over midterm |
09 Bugs Interpreter, part 2
Writing the Bugs Interpreter
Drawing the Bug
Bug Patterns (tests for final interpreter) |
| Thursday, March 26 |
Threads |
|
| Tuesday, March 31 |
Graphs
Hypergraphs
|
10 MapReduce |
| Thursday, April 2 |
Concurrency
Fork-Join
MapReduce
Parallelism
|
Beginner's Introduction to Java's ForkJoin Framework |
| Tuesday, April 7 |
Scala 0 (Intro)
|
11 Scala 1: Flash Card Merge
Notes on the Flash Card Merge program
A Concise Introduction to Scala |
| Thursday, April 9 |
Scala 1 (Lists) |
|
| Tuesday, April 14 |
Alpha-Beta |
12 Scala 2: Coin Grabber
Notes on Minimaxing |
| Thursday, April 16 |
State-Space Searching
Scala 2 (Patterns) |
|
| Tuesday, April 21 |
Randomized Algorithms
Scala 3 (Functions) |
13 Scala 3: Pair Programming |
| Thursday, April 23 |
Scala 4 (Classes and objects)
Scala 5 (More about Functions)
Algorithm Types |
|
| Tuesday, April 28 |
Genetic Algorithms |
|
| Tuesday, May 12 |
Final
Exam 3:00pm to 5:00pm in Skirkanich auditorium. |
Older exam questions (primarily data structures, doesn't cover much on algorithms) |