Term: Fall 2025
Department: COMP
Course Number: 470/570
Time: Mon/Wed/Fri, 9:00 am - 9:50 am
Location: HM Comer 1026
Course Webpage: bineet.cs.ua.edu/teaching/F2025/CS570/Algo.html
Dr. Bineet Ghosh
Email: bineet@ua.edu
Please add the following in subject line if you are emailing regarding the course: [f25-cs570] <your-subject>
Note: Emails that do not adhere to this guideline may experience significant delays in response.
Office: Cyber Hall 3053
Office Hours: Mon/Wed, 10:00 am - 11:00 am
Instructor Webpage: bineet.cs.ua.edu
David Amebley
Email: dkamebley@crimson.ua.edu
Office Hours: Tue/Thu, 10:00 am - 1:00 pm in CYB (Cyber Hall) 3046
This course will introduce students to the key concepts and techniques used to model, analyze, and reason about computational processes. Following are some of the broad topics that will be covered in this course:
Analysis of Algorithms
Searching
Sorting
Graphs
Divide and Conquer
Greedy Algorithms
Dynamic Programming
Intractability
Algorithms (CS 201)
Data Structures and Analysis (eg., CS 201)
Discrete Structures (Or their equivalents).
Programming in Python (CS 223/323)
Mathematical Maturity
Have you formally proved correctness of algorithms?
Are you familiar with proofs using induction?
Test your knowledge of inductive proofs. One can refer to basic inductive proofs (available online) and see how comfortable they are in understanding the proofs.
Familiarity with theorems in graph theory would be useful
Self Evaluation Test will be posted on the first day of classes (Aug 20) to test your pre-requisites.
Speak to instructor, if unsure.
Recommended textbooks:
"Algorithm Design", by Jon Kleinberg, Eva Tardos (primary)
"Introduction to Algorithms", by Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein
By the end of this course students are expected to be able to:
Understand and apply fundamental algorithm design paradigms.
Analyze algorithm performance using mathematical and empirical methods.
Prove algorithm correctness using formal reasoning.
Recognize and address computationally intractable problems.
The students can test the above given objectives in the following way:
Design and implement efficient algorithms in Python.
Analyze and compare algorithm efficiency using asymptotic notation.
Apply graph theory, dynamic programming, and greedy strategies to problem-solving.
Identify NP-hard problems and discuss their implications.
Assignments: 20%
Must be typed (preferably in LaTex), and not handwritten. However hand-drawn figures (such as automata) are permitted.
Assignments will be clearly marked as graded/ungraded.
All submissions must follow this format: <firstname-lastname-CWID>.
Quiz: 70%
Quiz 1: 30%
Quiz 2: 40%
Presentation (of topics/papers), and leading class discussion: 10%
Self Evaluation Test will be posted on the first day of classes (Aug 20) to test your pre-requisites.
Late work policy
No late assignments will be accepted or graded. All deadlines are firm.
Extensions will only be granted for ODS-approved accommodations or documented emergencies (e.g., medical note, university verification), in strict accordance with University policy.
Missed quiz policy
Make-up exams will not be offered, except for ODS-approved accommodations or documented emergencies.
In case of an emergency, the student must provide official documentation (e.g., medical note, university verification).
Failure to follow these guidelines will result in a score of zero for the missed exam.
Though attendance will not be formally recorded, it is recommended the lectures are attended.
Students are responsible to make up for missed courseworks.
On rare occasions, the instructor may be away from campus for professional commitments such as conferences, invited talks, or other academic obligations. During these instances, one of the following arrangements will be made:
Make-up Lecture: Scheduled on Thursday or Friday, 7:00–7:50 pm via Zoom. Attendance is optional, and a recording will be made available.
In-class TA-led Session: The teaching assistant may cover course material or host an optional review session.
In-class Practice Set: A set of sample practice questions will be provided and proctored by the TA. Attendance is optional, and will not be graded.
The instructor will provide advance notice of any such changes to the regular class schedule.
In addition to official course announcements on Blackboard, the instructor will also post selected updates—such as important reminders, lecture highlights, and relevant resources—on the course’s social media channels:
Instagram: instagram.com/autmn_lab
Facebook: facebook.com/autmn.lab
Following these accounts is optional and not a substitute for regularly checking Blackboard. All critical information will be posted on Blackboard, and students are responsible for reviewing it in a timely manner.
Communication Boundaries: Students should not send direct messages (DMs) to the instructor or TA via social media. All course-related communication must be conducted through University email using the guidelines provided above.
The instructor will make every effort to follow the guidelines of this syllabus as listed; however, the instructor reserves the right to amend this document as the need arises (including project due dates and test dates). In such instances, the instructor will notify students in class and/or via email and will endeavor to provide reasonable time for students to adjust to any changes.
Please refer to the university's standard course policies (Honor code, misconduct, behavior etc.) for details.
Please send me an email if you want the lecture slides (registered students can access the slides through Blackboard)
Daily updates are also posted on my lab's social media channels: [instagram/autmn_lab], [facebook/autmn.lab]
Lecture 1, Aug 20, 2025
Introduction to the course
Syllabus and logistics
Self Evaluation Test is posted in Blackboard. Deadline: 6:00 am, Aug 27, 2025. This assignment is to test your prerequisites.
What's this course about?
Designing algorithms?
But I already write codes that work pretty well and are fast enough!
Lecture 2, Aug 22, 2025
Formalizing school multiplication
Introduction to Stable Matching
Lecture 3, Aug 25, 2025
Stable Matching (contd.)
Lecture 4, Aug 27, 2025
Self evaluation test due today.
Stable Matching
Uniqueness of stable matching
Unstable pairs
Are all algorithms equally good?
Lecture 5, Aug 29, 2025
Are all algorithms equally good?
Contrasting Linear and Binary Search
Introduction to asymptotic analysis
No Classes, Sep 1, 2025
Labor Day
Lecture 6, Sep 3, 2025
Asymptotic complexities
How do you choose the input size?
Arrays
Graphs
For
Lecture 7, Sep 5, 2025
Basic operations, and complexities
Big O
Lecture 8, Sep 8, 2025
Big O
Big
Big
In-class exercises
Lecture 9. Sep 10, 2025
Analyzing complexities
Iterative programs
Recursive programs
Solving recurrence relations
Lecture 10, Sep 12, 2025
Selection sort
Iterative version, and analysis
Recursive version, and analysis
Insertion sort
Iterative version
Lecture 11, Sep 15, 2025
Insertion sort
Recursive implementation, and analysis
Merge sort
Examples
Merge
Recursive implementation
Lecture 12, Sep 17, 2025
Merge sort analysis
Quick sort
Pivot
Examples
Recursive implementation
Analysis
Lecture 13, Sep 19, 2025
Quick sort analysis
Worst case and recurrence relations
Stable Sorting
Comparative analysis of sorting algorithms
Introduction to graphs and path finding
Lecture 14, Sep 22, 2025
Finding paths in graphs
BFS
Illustration
Algorithm
Analysis
General graphs
Sparse graphs
Lecture 15, Sep 24, 2025
BFS
Enhancements - Level and Paths
Complexity
DFS
Paths
Numbering
Complexity
Lecture 16, Sep 26, 2025
Tentative Important Dates
Quiz 1: Oct. 15 – 31
Quiz 2: Dec. 3
Assignment 1: Posted ~2 weeks before Quiz 1
Assignment 2: Posted ~2 weeks before Quiz 2
Exact dates will be announced at least 2 weeks in advance
DFS Tree
DFS Numbering
Finding cycles
Classifying edges using DFS numbers
Lecture 17, Sep 29, 2025
Strongly connected components
Topological ordering
Lecture 18, Oct 1, 2026
Announcements:
Assignment 1: Will be posted soon
Quiz 1
Date: October 27, 2026
Coverage: Lectures 1–18
Topics: Analysis, Sorting, Graph Algorithms
Format: Multiple Choice, Short Justification, Proof Arguments
Reading Exercises
Included in today’s lecture slides (posted on Blackboard)
Lecture Hall Change (One Day Only)
Date: October 17, 2026
Location: North Lawn Hall (NL) 1014
Reason provided in lecture slides
Analysis using adjacency list and matrices
Topological sorting
Analysis using adjacency list and matrices
Longest path in DAG
Analysis using adjacency list and matrices
Lecture 19, Oct. 3, 2025
Shortest Paths
Dijkstra's Algorithm
Correctness
Lecture 20, Oct. 6, 2025
Assignment 1 posted
Deadline: 6am, Oct. 13, 2025 (no late submissions)
Dijkstra's proof on negative edges
Shortest Paths on Negative edges
Bellman-Ford's Algorithm
Correctness
Complexity
Lecture 21, Oct. 8, 2025
All pair shortest path
Floyd-Warshall Algorithm
Complexity analysis
Lecture 22, Oct. 10, 2025
Warshall's Algorithm
Introduction to Spanning Trees:
Prim's
Kruskal's
Prim's Algorithm
Example
Lecture 23, Oct. 13, 2025
Announcements:
Topics posted on Blackboard
Form groups of 4–5 students (CS 470 & CS 570 may mix)
Send one email (by any group member) with subject line:
[f25-cs570] Group
Include:
All group members’ names
Top 3 topic choices (ranked)
Deadline: 6:00 AM, Oct. 20
No extensions; late groups will be assigned randomly with a 10% deduction
Kruskal' Algorithm
Analysis
Bottleneck
Union-Find Data Structure
Lecture 24, Oct. 15, 2025
Announcements:
Lecture hall change for next class (Oct. 17) - NL 1014
Reminder: Student Presentation Topics and Groups
Union Find Data structure
Using arrays
Using arrays and pointers
Analysis
Priority queues
Job scheduling
Lecture 25, Oct. 17, 2025
Master Theorem
Grade School Integer Multiplication
Divide and Conquer approach
Lecture 26, Oct. 20, 2025
Announcements
Quiz 1
No electronic devices or notes allowed
One cheat sheet (single page, letter size) permitted
Answer in provided booklet; use pen
Assignment 1 grades posted
Great job: 90+ Needs improvement: 60 or below
View graded sheet during TA office hours (Tue/Thu, 10 am – 1 pm, CYB 3046)
Important Dates
Student Presentation Slides Due: Nov 3, 6 am
Presentations: Nov 3 – Dec 1
Quiz 2: Dec 3 (same format as Quiz 1, Lectures 1–30)
Assignment 2 to be posted about 2 weeks before Quiz 2
Karatsuba's Algorithm
Analysis
Strassen's Algorithm
Lecture 27, Oct. 22, 2025
Announcements
Presentation Slides Due: 6:00 AM, Nov. 3 (Upload individually on Blackboard)
Presentation Dates: Nov. 3 – Dec. 3 (not Dec. 1)
Quiz 2: Dec. 5 (not Dec. 3) — Same format as Quiz 1, Lectures 1–30
Assignment 2: Will be posted ~2 weeks before Quiz 2
Late/missed presentation: 50% grade deduction or 0 points if absent
Arrive early & set up laptop before presenting
Dynamic Programming
Weighted Interval Scheduling
Memoization
Lecture 28, Oct. 24, 2025
Classifying problems according to complexities
P vs. NP
Polytime reductions
Independent Set
Vertex cover,
Set Cover
3-SAT
Quiz 1, Oct. 27, 2025
In-class, 9-9:50am
Coverage: Lectures. 1-18
Topics: Analysis, Sorting, Graph Algorithms
Format: (Same as assignment 1) Multiple Choice, Short Justification, Proof Arguments
Lecture 27, Oct. 29, 2025
Flow Networks
Max Flow, Min Cut
Greedy solution
Ford-Fulkerson's Algorithm
No Classes, Oct. 31, 2025
Mid-Semester Study Break - Classes Dismissed
Student Presentations, Nov. 3, 2025
Group 22 - The Metropolis Algorithm and Simulated Annealing
Group 18 - Fibonacci Heaps
Student Presentations, Nov. 5, 2025
Group 20 - Multithreaded Merge Sort
Group 19 - Fibonacci Heaps
Student Presentations, Nov. 7, 2025
Group 21 - van Emde Boas Trees
Group 17 - Huffman Codes
Student Presentations, Nov. 10, 2025
Group 16 - Multithreaded Merge Sort
Group 15 - Multithreaded Merge Sort
Student Presentations, Nov. 12, 2025
Group 14 - Integer Factorization
Group 13 - The Metropolis Algorithm and Simulated Annealing
Student Presentations, Nov. 14, 2025
Group 12 - String Matching (beyond naive algorithms)
Group 11 - String Matching (beyond naive algorithms)
Nov. 16, 2025
Assignment 2 Posted!
Deadline: Nov. 24, 6am.
Student Presentations, Nov. 17, 2025
Group 10 - Fibonacci Heaps
Group 9 - Multithreaded Merge Sort
Student Presentations, Nov. 19, 2025
Group 8 - Polynomials and FFT
Group 7 - Multithreaded Matrix Multiplication
Student Presentations, Nov. 21, 2025
Group 6 - Integer Factorization
Group 5 - Huffman Codes
Nov. 24, 2025
Assignment 2 due!
No Classes, Nov 24 - 28, 2025
Thanksgiving break
Student Presentations, Dec. 1, 2025
Group 24 - Randomized Approximation Algorithm for MAX 3-SAT
Group 23 - Hirschberg′s algorithm
No Classes, Dec. 2-5, 2025
Study break