CS206 Class Notes
Spring 2020 Semester

Michael Eckmann
Skidmore College

Monday, April 27 2020
Balanced Binary Search Trees --- AVL trees, how to insert and rebalance, running time of insert
lecture recording
Friday, April 24 2020
discuss shortest path, start Balanced Binary Search Trees
lecture recording
Monday, April 20 2020
review Graph and BFS, Implementation of Depth First Search (DFS)
lecture recording
Graph.java
TestGraph.java
Friday, April 17, 2020
Implementation of Breadth First Search (BFS) and Depth First Search (DFS)
lecture recording
FlagValue.java
Vertex.java
Graph.java
TestGraph.java
LinkedList.java
Wednesday, April 15, 2020
continue Graphs, Graph traversal, Breadth First Search (BFS)
lecture recording
Vertex.java
Graph.java
Node.java
LinkedList.java
Monday, April 13, 2020
Graphs, Graph traversals
lecture recording
Friday, April 10, 2020
finish Heapsort, analyze heapsort, start Graph
lecture recording
Heap.java (finished heapsort)
Wednesday, April 08, 2020
analyze Heap operations, Heapsort
lecture recording
Heap.java (containing partial heapsort)
Monday, April 06, 2020
finish implementing Binary Heap, write PriorityQueue class
lecture recording
Heap.java
PQ.java
TestPQ.java
Friday, April 03, 2020
Binary Heaps
lecture recording
ItemAndPriority.java
Heap.java
Wednesday, April 01, 2020
Binary Heaps
lecture recording
Heap.java
Monday, March 30, 2020
finish radixSort analysis, implement lab problem with Stack, introduce Priority Queue, start Binary Heap
lecture recording
RadixSort.java
StackOfChars.java
Balance.java
Friday, March 27, 2020
Radix Sort (uses Queues)
lecture recording
RadixSort.java
Wednesday, March 25, 2020
Stacks and Queues
lecture recording
NodeInt.java
LinkedListInt.java
Queue.java
Stack.java
TestStack.java
Monday, March 23, 2020
review Divide and Conquer/MergeSort, analyze MergeSort running time, start Stacks and Queues
lecture recording
Friday, March 06, 2020
finish MergeSort, apply Divide and Conquer to MCSS problem, start Stacks and Queues
DivideAndConquer.java (mergeSort and maxCSS)
Wednesday, March 04, 2020
recap on memoization (used in recursive change making and recursive fibonacci), Divide and Conquer idea, MergeSort
DivideAndConquer.java (mergeSort not finished)
Monday, March 02, 2020
continued Recursion notes from last time and covered Memoization
TestRecursion.java
Friday, February 28, 2020
more Recursion
TestRecursion.java
Wednesday, February 26, 2020
analyze runtime of Binary Search Tree operations, Recursion
TestRecursion.java
Monday, February 24, 2020
finish remove in BinarySearchTree
BinarySearchTree.java (with completed remove method, not fully tested though)
TestBinarySearchTree.java
Friday, February 21, 2020
implement a Binary Search Tree with Nodes (consider how to delete a node)
BSTNode.java
BinarySearchTree.java
TestBinarySearchTree.java
Wednesday, February 19, 2020
implement a Binary Tree with an array, Binary Search Trees
BST.java
TestBST.java
Monday, February 17, 2020
continue Binary Trees
Friday, February 14, 2020
Trees, Binary Trees, Binary Search Trees
Wednesday, February 12, 2020
continue Maximum Contiguous Subsequence problem and 3 algorithms
MaxCSS.java
Monday, February 10, 2020
more Algorithm analysis
SumFrom1ToN.java
Friday, February 07, 2020
Algorithm analysis
Wednesday, February 05, 2020
finish remove in DLL, write insertAfter in both LinkedList and DLL, start algorithm analysis
DLL.java
UseDLL.java
LinkedList.java
Monday, February 03, 2020
more doubly linked lists
DLL.java (more code, remove is mostly done)
Friday, January 31, 2020
more linked lists
LinkedList.java
TestLL.java
DNode.java
DLL.java (started)
Wednesday, January 29, 2020
linked lists
LinkedList.java (remove partially done)
TestLL.java
Monday, January 27, 2020
File I/O, start linked lists
UseTextBooks.java (contains reading and writing to a file)
Node.java
LinkedList.java
Friday, January 24, 2020
ArrayLists, File I/O, exception handling
TextBook.java
UseTextBooks.java
ExceptionHandling.java
TestScannerProblem.java
Wednesday, January 22, 2020
Introduction, start Java Review
NumbersInfo.java
Card.java
WorkWithCards.java
TextBook.java
UseTextBooks.java