CS 4040/5040: Design and Analysis of Algorithms
Spring 2020


Time and Location: Tue, Thu 9:00 – 10:20 am, ARC 321
Instructor: Razvan Bunescu
Office: Stocker 341
Office Hours: Tue, Fri 3:00 – 4:00 pm, or by email appointment
Email: bunescu @ ohio edu

Textbook: Introduction to Algorithms by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, 3rd ed, The MIT Press, 2009.

Prerequisites: CS3610 (Data Structures) and basic mathematical dexterity.

Course description:
This course provides an introduction to the modern study of computer algorithms. Through this course students should be able to:
  • Analyze algorithm performance using complexity measurement.
  • Master major algorithm design techniques such as divide and conquer, greedy and dynamic programming.
  • Apply above approaches to solve a variety of practical problems such as sorting and selection, graph problems, and other optimization problems.
  • Understand the theory of NP-completeness.
  • Course materials1:

    1The slides are based on material kindly provided by Dr. Jundong Liu and Dr. David Juedes.

    Assignments & Projects:
    Other Resources: