CS 344: Design and Analysis of Computer Algorithms

Spring 2025, Rutgers University

Time and Location
Monday, Wednesday, 3:50pm – 5:10pm, Busch PHY-001

Instructor
Roie Levin, Core 306

Office Hours
TBD

Teaching Assistant
TBD


Course Description

The course covers a broad set of topics in algorithms design and analysis. The goal is to cover tools and algorithms that give students the ability to (a) recognize which tool or method to apply to problems, (b) become reasonably proficient at using these tools, (c) be able to reason about the correctness and performance of the resulting algorithms.

There will be a Homework 0: if you plan to take this course, please make sure you are comfortable with the material therein.

Topics I plan to cover include:

  1. Divide and conquer.
  2. Dynamic programming.
  3. Greedy Algorithms.
  4. Graph Algorithms
  5. NP-hardness and intractability.
  6. Linear Programming.
  7. Misc. Advanced Topics.

Homework

All homework is due at 11:59 pm on the specified day. The lowest homework grade will be dropped.

  • Homework 0
  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4
  • Homework 5

(Tentative) Schedule

Date Topic Lecture Notes Optional Reading
Jan 22 Course Overview and Basics Review    
Divide and Conquer      
Jan 27 Proof by Induction, Recursion, Tower of Hanoi, Divide and Conquer, Mergesort    
Jan 29 Karatsuba Multiplication, Strassen’s Algorithm    
Feb 03 Master Theorem, Median of Medians    
Dynamic Programming      
Feb 05 Fibonacci, Longest Increasing Subsequence    
Feb 10 Edit Distance, 0/1 Knapsack    
Greedy Algorithms      
Feb 12 Interval Scheduling, Coin Change, Fractional Knapsack    
Feb 17 Huffman Coding, Optimal BST    
Graph Algorithms      
Feb 19 Graphs, BFS, DFS, Topological Sort    
Feb 24 Strongly Connected Components, Shortest Path, Dijkstra    
Feb 26 Bellman-Ford, Floyd-Warshall    
Data Structures and Amortized Analysis      
Mar 03 Amortized Analysis Techniques    
Mar 05 Minimum Spanning Trees and Union Find    
Mar 10 Binomial Heaps, Fibonacci Heaps    
Mar 12 MIDTERM    
Mar 17 Spring Break, No Class    
Mar 19 Spring Break, No Class    
Randomized Algorithms      
Mar 24 Probability Review, Quicksort    
Mar 26 Hashing, Balls and Bins    
Mar 31 Perfect Hashing, Bloom Filters    
Linear Programming and Optimization      
Apr 02 Flows and Matchings    
Apr 07 Linear Programming, Modeling, Intuition behind algorithms    
Apr 09 Linear Programming Duality    
Apr 14 Game Theory, Von Newmann Minimax Theorem, Yao’s Lemma    
Apr 16 Polytopes and Integrality    
Limits of Computation      
Apr 21 Limits of Computation and the Complexity Hierarchy    
Apr 23 NP-Completeness, Cook-Levin Theorem, Reductions    
Apr 28 More Reductions    
Advanced Topics      
Apr 30 Combatting Intractability, Approximation Algorithms    
May 05 TBD