COP 3503H CS II Honors

Fall 2019

Prof. Joseph J. LaViola Jr.

CB1 107 MWF 11:30am - 12:20pm


Welcome to COP 3503H! -- HW8 is posted!


Course Syllabus and Info

Some Lecture Notes courtesy of Arup Guha


   - Shortest Path properties
Date Lecture Description Readings Assignments Resources
8/26/19

Introduction
   -course mechanics
   -role of algorithms
   -role of analysis

Cormen et al., Chapter 1

8/28/19

Getting Started
   - Insertion Sort

Cormen et al., Chapter 2, pgs. 16-29
Insertion Sort Applet
8/30/19

Getting Started
   - Merge Sort

Cormen et al., Chapter 2, pgs. 29-39
Merge Sort Animation 1
Merge Sort Animation 2
9/2/19 Holiday -- No class



9/4/19 Hurricane Dorian -- No class



9/6/19

Mathematical Preliminaries
   -summations
   -logarithms and exponents
   -probability

Cormen et al., Appendix A,C

9/9/19

Growth of Functions
   -theta notation
   -big and little o notation
   -big and little omega notation

Cormen et al., Chapter 3

9/11/19

Solving Recurrences
   -iteration method
   -substitution method
   -master method

Cormen et al., Chapter 4, pgs. 83-97
Homework 1

9/13/19

Divide and Conquer
   -maximum-subarray
   -Strassen's algorithm

Cormen et al., Chapter 4, pgs. 68-82

9/16/19

Divide and Conquer
   -Strassen's algorithm




9/18/19

Heap Sort
   -Heap property
   -Building a heap
   -Priority Queues

Cormen et al., Chapter 6
HeapSort Applet 1
9/20/19

QuickSort
   - randomized partitioning
   - average case analysis

Cormen et al., Chapter 7
QuickSort Applet 1
QuickSort Applet 2
9/23/19

Linear time sorting
   - counting sort
   - radix sort
   - bucket sort

Cormen et al., Chapter 8
Counting Sort Applet
Bucket Sort Applet
Radix Sort Applet
9/25/19

Order statistics
   - minimum/maximum
   - selection

Cormen et al., Chapter 9 Homework 2

9/27/19

Dynamic Programming
   - rod cutting

Cormen et al., Chapter 15, pgs. 359-370

9/30/19

Dynamic Programming
   - matrix chain mutliplication

Cormen et al., Chapter 15, pgs. 370-377
Matrix Chain Animation
10/2/19

Dynamic Programming
   - longest common subequence

Cormen et al., Chapter 15, pgs. 390-397 Homework 3
LCS applet
10/4/19 Teach me Friday!



10/7/19

Dynamic Programming
   - optimal binary search tree

Cormen et al., Chapter 15, pgs. 397-404

10/9/19

Dynamic Programming
   - optimal BST cont'd


Homework 4

10/11/19

Dynamic Programming
   - finishing up

Cormen et al., Chapter 15, pgs. 378-389

10/14/19

Greedy Algorithmsg
   - Activity Selection

Cormen et al., Chapter 16, pgs. 414-421

10/16/19

Greedy Algorithms
   - elements of greedy strategy
   - Huffman codes

Cormen et al., Chapter 16, pgs. 423-437 Midterm exam
Huffman Code Applet
10/18/19

Elementary Graph Algorithms
   - breadth first search
   - depth first search

Cormen et al., Chapter 22, pgs. 583-602
BFS Applet
DFS Applet
10/21/19

Elementary Graph Algorithms
   - strongly connected components

Cormen et al., Chapter 22, pgs. 615-621
Connected Component Applet
10/23/19

Minimum Spanning Trees
   - constucting a MST

Cormen et al., Chapter 23, pgs. 624-629

10/25/19

Teach Me Friday!


Homework 5

10/28/19

Minimum Spanning Trees
   - Kruskal's algorithm

Cormen et al., Chapter 23, pgs. 631-633
Kruskal Applet
10/30/19

Minimum Spanning Trees
   - Prim's algorithm

Cormen et al., Chapter 23, pgs. 634-636
Prim Applet
11/1/19

Single Source Shortest Paths

Cormen et al., Chapter 24, pgs. 643-650


11/4/19

Single Source Shortest Paths
   - Bellman-Ford

Cormen et al., Chapter 24, pgs. 651-657 Homework 6
Bellman-Ford Applet
11/6/19

Single Source Shortest Paths
   - Dijkstra

Cormen et al., Chapter 24, pgs. 658-664
Dijkstra Applet
11/8/19 Guest Lecture



11/11/19 Veteran's Day -- No class



11/13/19

All-Pairs Shortest Paths
   - shortest path and matrix multiplication

Cormen et al., Chapter 25, pgs. 684-691 Homework 7

11/15/19

All-Pairs Shortest Paths
   - Floyd-Warshall

Cormen et al., Chapter 25, pgs. 693-699
Floyd-Warshall Applet
11/18/19

Maximum Flow
   - preliminaries

Cormen et al., Chapter 26, pgs. 708-714

11/20/19

Maximum Flow
   - Ford-Fulkerson

Cormen et al., Chapter 26, pgs. 714-731
Ford-Fulkerson Applet
11/22/19

Maximum Flow and Teach Me Friday
   - Maximum Bipartite matching

Cormen et al., Chapter 26, pgs. 732-735 Homework 8

11/25/19

Parallel Algorithms

Cormen et al., Chapter 27, pgs. 772-792

11/27/19

Holiday -- No Class




11/29/19

Holiday -- No Class




12/2/19

Parallel Algorithms

Cormen et al., Chapter 27, pgs. 792-805

12/4/19

Finish Parallel Algorithms