COP 3503H CS II Honors

Fall 2023

Prof. Joseph J. LaViola Jr.

CB1 0119 MW 10:30am - 11:45am


Welcome to COP 3503H! -- Homework 8 is posted!


Course Syllabus and Info

Some Lecture Notes courtesy of Arup Guha


tr>
Date Lecture Description Readings Assignments Resources
8/21/23

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

Getting Started
   - Insertion Sort

Cormen et al., Chapter 1
Cormen et al., Chapter 2, pgs. 17-34

Insertion Sort Applet
8/23/23

Getting Started
   - Merge Sort

Cormen et al., Chapter 2, pgs. 34-48
Merge Sort Animation 1
Merge Sort Animation 2
8/28/23

Mathematical Preliminaries
   -summations
   -logarithms and exponents

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

Cormen et al., Appendix A,C,D
Cormen et al., Chapter 3


8/30/23

Hurricane -- No Class


Homework 1

9/4/23 Holiday -- No class



9/6/23

Solving Recurrences
   -iteration method
   -substitution method
   -master method

Cormen et al., Chapter 4, pgs. 90-107


9/11/23

Divide and Conquer
   -matrix multiplication
   -Strassen's algorithm

Cormen et al., Chapter 4, pgs. 80-90

9/13/23

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

Cormen et al., Chapter 6
HeapSort Applet 1
9/18/23

QuickSort
   - randomized partitioning
   - average case analysis

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

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/23

Order statistics
   - minimum/maximum
   - selection

Cormen et al., Chapter 9 Homework 3

9/27/23

Dynamic Programming
   - rod cutting
   - matrix chain mutliplication

Cormen et al., Chapter 14, pgs. 362-382
Matrix Chain Animation
10/2/23

Dynamic Programming
   - longest common subsequence

Cormen et al., Chapter 14, pgs. 393-399 Homework 4
LCS applet
10/4/23

Dynamic Programming
   - optimal binary search tree

Cormen et al., Chapter 14, pgs. 400-406

10/9/23

Dynamic Programming
   - optimal BST cont'd
   - finishing up

Cormen et al., Chapter 14, pgs. 382-392

10/11/23

Greedy Algorithms
   - Activity Selection

Cormen et al., Chapter 15, pgs. 417-425 Midterm exam

10/16/23

Greedy Algorithms
   - elements of greedy strategy
   - Huffman codes

Cormen et al., Chapter 15, pgs. 426-439
Huffman Code Applet
10/18/23

Elementary Graph Algorithms
   - breadth first search
   - depth first search

Cormen et al., Chapter 20, pgs. 549-572
BFS Applet
DFS Applet
10/23/23

Elementary Graph Algorithms
   - strongly connected components

Minimum Spanning Trees
   - constucting a MST

Cormen et al., Chapter 20,21 pgs. 573-591
Connected Component Applet
10/25/23

Minimum Spanning Trees
   - Kruskal's algorithm
   - Prim's algorithm

Cormen et al., Chapter 21, pgs. 591-597 Homework 5
Kruskal Applet
Prim Applet
10/30/22

Single Source Shortest Paths
   - Shortest Path properties
   - Bellman-Ford

Cormen et al., Chapter 22, pgs. 604-616

Bellman-Ford
11/1/23

Single Source Shortest Paths
   - Dijkstra
   - Difference constraints

Cormen et al., Chapter 22, pgs. 616-631 Homework 6
Dijkstra Applet
11/6/23

All-Pairs Shortest Paths
   - shortest path and matrix multiplication
   - Floyd-Warshall

Cormen et al., Chapter 23, pgs. 646-661
Floyd-Warshall Applet
11/8/23

Maximum Flow
   - preliminaries
   - Ford-Fulkerson

Cormen et al., Chapter 24, pgs. 670-689
Ford-Fulkerson Applet
11/13/23

Maximum Flow
   - Maximum Bipartite matching

Cormen et al., Chapter 24, pgs. 693-696 Homework 7

11/15/23

Guest Lecture - Brian Williamson




11/20/23

Parallel Algorithms

Cormen et al., Chapter 26, pgs. 748-770 Homework 8

11/22/23

Thanksgiving Break - No class




11/27/23

Parallel Algorithms

Cormen et al., Chapter 26, pgs. 748-770