CS 4120 : Design and Analysis of Algorithms

CS 4120: Design and Analysis of Algorithms

Semester Hours:   3.0
Contact Hours:    3
Coordinator:   Tianyi Song
Text:   Introduction to Algorithms
Author(s):   Cormen, Leiserson, Rivest, and Stein
Year:   2009

SPECIFIC COURSE INFORMATION

Catalog Description

Algorithms for solving problems that occur frequently in computer applications. Basic principles and techniques for designing and analyzing algorithms. Introduction to computational complexity, divide-and-conquer, dynamic programming, greedy approach, and graph algorithms. Prerequisites: MATH 2220 or MATH 3220 or equivalents and grade of C or better in CS 3350.

Course type: REQUIRED

SPECIFIC COURSE GOALS

  • I can determine the complexity of an algorithm.
  • I can explain and implement different types of algorithms (e.g., Divide-and-Conquer, Dynamic Programming, Greedy Algorithms).
  • I can explain and implement different graph algorithms.
  • I understand the classes of algorithms (P, NP, and NP-complete) and the role of polynomial-reduction in establishing NP-completeness.
  • I understand the implications of algorithm design in real-world applications.

COMPUTER SCIENCE STUDENT OUTCOMES ADDRESSED BY THIS COURSE

  • CS 1 Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions
  • CS 6 Apply computer science theory and software development fundamentals to produce computing-based solutions

LIST OF TOPICS COVERED

  • Introduction (1 week)
  • Algorithmic Complexity (1 week)
  • Divide-and-Conquer Strategy (2 weeks)
  • Binary Search Tress (1 week)
  • Dynamic Programming (3 weeks)
  • Greedy Algorithms (1 week)
  • Graph Algorithms (3 weeks)
  • NP-Complete Problems (3 weeks)

Updated: 12/15/2025 04:47PM