Course Calendar

Below is the calendar for this semester course. This is the preliminary schedule, which may need to be altered as the semester progresses. It is the responsibility of the students to frequently check this web-page for schedule, readings, and assignment changes. As the professor, I will attempt to announce any change to the class, but this web-page should be viewed as authoritative. If you have any questions, please contact me (contact information is available at the course homepage).

Date Topic Assignments Due Readings/Discussions
(do readings before class)
Slides
08/25/16 Introduction Course syllabus (link)

Textbook, chapter 1

Homework - 1.1: 6, 12; 1.2: 1, 2; 1.3: 4, 5; 2.1: 5, 6, 8

Assignment #0 - Introductions (link)

Introduction
08/30/16 Algorithm Analysis Assignment #0 Textbook, Chapter 2.1-2.2

Homework - 2.2:2-6,9,10

Orders of Growth
09/01/16 Nonrecursive Analysis Quiz #1 Textbook, Chapter 2.3

Homework - 2.3:1,2,4,5,11,12

Nonrecursive Analysis
09/06/16 Recursive Analysis Textbook, Chapter 2.4-2.5

Homework - 2.4:1,2,3,8,12 ;2.5:2,3,7,8

Recursive Analysis
09/08/16 Brute-force Quiz #2 Textbook, Chapter 3.1-3.2

Homework - 3.1:4,6,8,9; 3.2: 1, 4

Brute Force
09/13/16 Exhaustive Search Textbook, Chapter 3.4

Homework - 3.4:1,4 ; 3.5: 1,2,3

Exhaustive Search
09/15/16 Tree Searching and Insertion Sort Quiz #3 Textbook, Chapter 3.5, 4.1

Homework - 3.5:4, 6, 7 ; 4.1:2, 4, 5, 9, 11

Graph Traversal
09/20/16 Topological Sort and Binary Search Textbook, Chapter 4.2, 4.4

Homework - 4.2:1, 5, 9; 4.4: 2, 3

Topological Sort
09/22/16 Variable Decrease Algorithms Quiz #4 Textbook, Chapter 4.5

Homework - 4.5:2,4,6,7,13

Variable Decrease
09/27/16 Merge Sort Textbook, Chapter 5.1

Homework - 5.1: 4, 7, 8, 9

Mergesort
09/29/16 Quick Sort Quiz #5 Textbook, Chapter 5.2

Homework - 5.2:1,2,3,5,7,8

Quicksort
10/04/16 Further Divide-and-conquer Textbook, Chapter 5.3-5.5

Homework - 5.3: 2, 3, 8a, 11; 5.4: 2, 7

Divide-and-conquer
10/06/16 Mid-term Exam
10/11/16 Fall Break -- No Class
10/13/16 Fall Break -- No Class
10/18/16 Exam recap and Presorting Textbook, Chapter 6.1

Homework - 6.1: 2, 4, 5

Presorting
10/20/16 Gaussian Elimination and Balanced Search Trees Quiz #6 Textbook, Chapter 6.2-6.3

Homework - 6.2:1, 4, 7 ; 6.3:2, 4, 7

GE and Balanced Trees
10/25/16 Representation Change Textbook, Chapter 6.4-6.5

Homework - 6.4: 3, 6, 7, 8, 10; 6.5: 4, 7

Heapsort and Horner's Rule
10/27/16 Problem Reduction Quiz #7 Textbook, Chapter 6.6

Homework - 6.6: 1, 6, 9, 10, 12

Problem Reduction
11/01/16 String Matching and Hashing Textbook, Chapter 7.1-7.3

Homework - 7.2:3-5; 7.3:3, 7, 8

String Matching
11/03/16 Dynamic Programming Quiz #8 Textbook, Chapter 8.1-8.2

Homework - 8.1: 3, 5, 6, 7, 8, 12; 8.2: 1, 3, 4, 5, 8

Dynamic Programming
11/08/16 Dynamic Programming and Prim's Algorithm Textbook, Chapter 8.3-8.4, 9.1

Homework - 8.4: 1, 6, 7; 9.1: 3, 9a

Warshall, Floyd, Prim
11/10/16 Kruskal's and Dijkstra's Algorithms Quiz #9 Textbook, Chapter 9.2-9.3

Homework - 9.2: 1, 2, 4, 5; 9.3: 2, 3, 4, 7

Kruskal and Dijkstra
11/15/16 Huffman's Algorithm Textbook, Chapter 9.4, 10.1

Homework - 9.4: 1, 3, 4, 8; 10.1: 2

Huffman
11/17/16 Iterative Improvement Quiz #10 Textbook, Chapter 10.1-10.2

Homework - 10.1: 3, 5, 8; 10.2: 1-4, 10

Linear Programming
11/22/16 Iterative Improvement Textbook, Chapter 10.3-10.4

Homework - 10.3: 2, 3; 10.4: 2, 3, 5

Bipartite Matching
11/24/16 Thanksgiving -- No Class
11/29/16 Lower Bound Arguments and Decision Trees Textbook, Chapter 11.1-11.2

Homework - 11.1: 1, 2, 3ab; 11.2: 1, 3a

Lower Bound
12/01/16 Numerical Algorithms Quiz #11 Textbook, Chapter 11.4

Homework - 11.4: 2, 7, 10

Numerical Analysis
12/06/16 Backtracking and Branch and Bound Textbook, Chapter 12.1-12.2

Homework - 12.1: 2, 5, 6, 11 (no solution); 12.2: 1, 2, 3, 9

Backtracking
12/08/16 Approximating NP-Hard Problems Quiz #12 Textbook, Chapter 12.3

Homework - 12.3:1,3,5,6

Approximation
12/15/16 Final Exam - 8:30am - 11:00am