This syllabus provides the official semester course outline and schedule. Brightspace is the primary source
for weekly materials, assigned readings, submission instructions, announcements, and any subsequently
announced changes to the schedule.
August 28 | Module 1: Introduction to Algorithms
Course requirements and the Git/GitHub workflow; algorithm fundamentals and real-world uses;
correctness, termination, and efficiency; the design-implement-analyze-experiment cycle; and an
introduction to algorithm types and running-time analysis.
Reading assigned
September 4 | Module 2: Analyzing and Designing Algorithms
Insertion sort, loop invariants, algorithm analysis, merge sort, and the divide-and-conquer pattern.
Assignment 1 Assigned
Homework / Reading
September 11 | No Class
No classes are scheduled under the Fall 2026 academic calendar.
September 18 | Module 3: Characterizing Running Time
Growth of functions, asymptotic notation, common complexity classes, best/worst/average cases, and
communicating performance claims.
Homework / Reading
September 25 | Module 4: Divide and Conquer
Recursive decomposition, recurrence relations, substitution and recursion-tree reasoning, and selected
divide-and-conquer applications.
Assignment 1 Due
Project Topic Selection
October 2 | Module 5: Heapsort and Quicksort
Binary heaps, heap operations, heapsort, quicksort partitioning, randomized choices, and comparative
performance.
Assignment 2 Assigned
Homework / Reading
October 9 | Modules 1–5 Review and Analysis Workshop
Guided complexity-analysis practice, sorting comparisons, recurrence review, and preparation for the
midterm exam.
Project Proposal / Plan
Midterm Review
October 16 | Midterm Exam
Midterm assessment covering Modules 1–5, followed by a brief introduction to the next unit if time
permits.
Midterm Exam
October 23 | Module 6: Linear-Time Sorting Algorithms
Comparison-sort lower bounds, counting sort, radix sort, bucket sort, and the assumptions that make
linear-time performance possible.
Assignment 2 Due
October 30 | Module 7: Binary Search Trees and Red-Black Trees
Search-tree properties, traversal, search, insertion, deletion, predecessor/successor operations, and
balanced-tree motivation.
Assignment 3 Assigned
Homework / Reading
November 6 | Module 8: Graph Algorithms
Graph representations, breadth-first search, depth-first search, reachability, connected components, and
topological ordering.
Project Checkpoint
November 13 | Module 9: Single-Source Shortest Paths
Relaxation, Bellman-Ford, Dijkstra's algorithm, negative-weight considerations, correctness, and
implementation tradeoffs.
Assignment 3 Due
Assignment 4 Assigned
November 20 | Module 10: Greedy Algorithms
Greedy-choice reasoning, fractional knapsack, Huffman coding, proof strategies, and recognizing when a
greedy approach is appropriate.
Homework / Reading
November 27 | No Class
College closed for the Thanksgiving recess.
December 4 | Module 11: Dynamic Programming
Optimal substructure, overlapping subproblems, memoization, bottom-up solutions, and selected optimization
problems.
Assignment 4 Due
Project Draft / Testing Check
December 11 | Project Presentations and Final Review
Project demonstrations and presentations, cross-module synthesis, final-exam preparation, and remaining
course questions.
Project Due
Final Review
December 18 | Final Exam
Exam time: 1:00 PM–3:00 PM, following the published Fall 2026 undergraduate final-exam
schedule for a Friday class meeting from 10:50 AM–1:30 PM.
Final Exam