Computer Science 385
Design and Analysis of Algorithms

Spring 2026, Siena University

Course Schedule

"Levitin" indicates readings from Introduction to The Design and Analysis of Algorithms, Third Edition, by Anany Levitin, "Bailey" from Java Structures: Data Structures in Java for the Principled Programmer, "Root 7" Edition, by Duane Bailey. Additional readings will be given occasionally. Links will be added here with additional information about lectures and problem sets. All assignment dates are subject to change, and are provided only as a general guideline until the actual assignment is handed out in class.

Date

Topic and/or Event Readings
January 20 Lecture 1: Introduction and Overview; Lab Meeting #0; Lab 0: Data Structures Refresher; In-class Introductory Topics Handout Topic Notes: Introduction and Overview; Topic Notes: Fundamental Data Structures; Levitin Ch. 1
January 23 Lecture 2: Bubble Sort; Counting Operations; GCD; Bubble Sort Introduction; Summations Practice Levitin Ch. 2.3; Topic Notes: Counting Operations
January 26 Lecture 3: Graph Data Structures; In-class Graph Structures Intro Handout Bailey Ch. 16.1-16.3
January 27 Lecture 4: Lab Meeting #1; Lab 1: Counting Operations, Graphs (paper handout only) Knuth article: NYT Site or Library Archive also in Canvas
January 30 Lecture 5: Asymptotic Analysis; Analysis Practice Topic Notes: Analysis Fundamentals; Levitin Ch. 2.1-2.2
February 2 Lecture 6: Asymptotic Analysis
February 3 Lecture 7: Lab Meeting #2; Lab 2: METAL Data and Analysis Practice (paper handout and shared document)
February 6 Lecture 8: Brute-Force Algorithms; Brute Force Practice Topic Notes: Brute-Force Algorithms; Levitin Ch. 3
February 9 Lecture 9: Brute Force/Exhaustive Search; Exhaustive Search Practice Topic Notes: Exhaustive Search
February 10 Lecture 10: Lab Meeting #3; Lab 3: Brute-Force Closest Pair (paper handout and shared document)
February 13 Lecture 11: Brute-Force Convex Hull
February 16 Lecture 12: Decrease and Conquer Algorithms; Recurrences; Decrease and Conquer Practice Topic Notes: Decrease and Conquer Algorithms; Topic Notes: Analysis with Recurrences; Levitin Ch. 2.4, 4
February 17 Lecture 13: Lab Meeting #4; Lab 4: Brute Force and Decrease and Conquer (paper handout only)
February 20 Lecture 14: Solving Recurrences
February 23 Lecture 15: Exam 1 Review; More Decrease and Conquer
February 24 Exam 1 During Lab Meeting Times
February 27 No Class: SIGCSE 2025
March 2-6 No Classes or Labs: Spring Break!
March 9 Lecture 16: Exam 1 Recap; Decrease and Conquer Wrapup; Divide and Conquer Introduction; Mergesort Practice Topic Notes: Divide and Conquer Algorithms; Levitin Ch. 5
March 10 Lecture 17: Graph Traversals Intro; Lab Meeting #5; Lab 5: Graph Traversals (shared document only)
March 13 Lecture 18: More Divide and Conquer; Quicksort Practice
March 16 Lecture 19: More Divide and Conquer; Academic Showcase Project Introduction
March 17 Lecture 20: Lab Meeting #6; Lab 6: Recurrences and Divide and Conquer (paper handout only)
March 20 Lecture 21: D&C Closest Pair Wrapup; AVL Trees; Balanced Trees Practice Topic Notes: Balanced Trees
March 23 Lecture 22: AVL Trees; 2-3 Trees Levitin Ch. 6.3
March 24 Lecture 23: Lab Meeting #7; Lab 7: Search Trees
March 27 Lecture 24: Dynamic Programming; Dynamic Programming Practice Levitin Ch. 8; Topic Notes: Dynamic Programming
March 30 Lecture 25: Exam Review; Dynamic Programming
March 31 Exam 2 During Lab Meeting Times
April 3 and 6 No Classes: Happy Easter!
April 7 Lecture 26: Lab Meeting #8; Lab 8: Dynamic Programming
April 10 Lecture 27: Hashing (Complete On Your Own, No Class Meeting) Levitin Ch. 7.3; Topic Notes: Hashing
April 13 Lecture 28: Dynamic Programming Wrapup; Greedy Algorithms; Warshall's and Floyd's Algorithms Practice Topic Notes: Greedy Algorithms; Levitin Ch. 9
April 14 Lecture 29: Lab Meeting #9; Lab 9: Prim's Algorithm, Dijkstra's Algorithm, Traversals
April 17 Lecture 30: Heaps; Heaps Practice Levitin Ch. 6.4-6.5; Topic Notes: Heaps
April 20 Lecture 31: Greedy Algorithms; Greedy Algorithms Practice; Dijkstra's Algorithm Handout
April 21 Lecture 32: Lab Meeting #10; Lab 10: Backtracking Levitin Ch. 12.1
April 24 Lecture 33: Limitations of Algorithms; Limitations of Algorithms Handout Levitin Ch. 11; Topic Notes: Limitations of Algorithms
April 27 Lecture 34: Limitations of Algorithms
April 28 Lecture 35: Lab Meeting #11
May 1 Academic Showcase, 1:45-2:45, RB 340 - this is a required part of the course
May 4 Lecture 36: P and NP; Wrapup
May TBD Optional Review Session
May TBD Final Exam, as scheduled by the Registrar