Computer Science 385
Design and Analysis of Algorithms

Spring 2025, Siena College

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