CS 4820

CS 4820

Course information provided by the 2026-2027 Catalog.

The course develops techniques used in the design and analysis of algorithms, with an emphasis on problems arising in computing applications. Example applications are drawn from systems and networks, artificial intelligence, computer vision, data mining, and computational biology. This course covers four major algorithm design techniques (greedy algorithms, divide-and-conquer, dynamic programming, and network flow), undecidability and NP-completeness and its application for cryptography, and algorithmic techniques for intractable problems (such as identification of structured special cases, approximation algorithms, local search heuristics, and online algorithms).


Prerequisites CS 2800 and CS 3110 or an A- or better in both CS 2110 or CS 2112 and CS 2800.

Distribution Requirements (SMR-AS)

Last 4 Terms Offered 2026SP, 2025FA, 2025SU, 2025SP

Learning Outcomes

  • Identify problems solvable with a greedy algorithm, design and prove the correctness of such an algorithm, and supply asymptotic running time for a variety of given algorithms.
  • Recognize problems to which divide and conquer or dynamic programming approaches may apply, design algorithms with these approaches, and analyze their computational efficiency.
  • Recognize resource management as well as partition problems that can be reduced to network flow or cut problems, implement correct strategies for finding optimal flows/cuts, and understand the properties of these strategies.
  • Apply randomization to produce tractable algorithms for several specific computationally challenging problems.
  • Recognize whether or not certain problems are computationally intractible (e.g. NP-Hard, undecidable), and use reductions from known problems to establish intractability.
  • Use approximation algorithms to efficiently produce near-optimal solutions for intractable problems, and bound how close these algorithms are to being optimal.
  • Be able to recognize, implement, and understand the properties of several famous and important algorithms including Gale-Shapley method for stable matchings, Prim's and Kruskal's algorithms for finding minimum spanning trees, Bellman-Ford's algorithm for finding shortest paths in a graph, and Ford-Fulkerson's algorithm for finding max flows in networks.

View Enrollment Information

Syllabi: none
  •   Regular Academic Session.  Choose one lecture and one discussion. Combined with: CS 5820

  • 4 Credits Opt NoAud

  • 17325 CS 4820   LEC 001

    • MWF
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

    Enrollment limited to: Computer Science (CS) majors. All others should add themselves to the waitlist during add/drop. See enrollment webpage for more details: https://www.cs.cornell.edu/courseinfo/enrollment/cs-4000-5000-level-courses
    For Bowers Computer and Information Science (CIS) Course Enrollment Help, please see: https://tdx.cornell.edu/TDClient/193/Portal/Home/

  • 17326 CS 4820   DIS 201

    • M
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17327 CS 4820   DIS 202

    • M
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17328 CS 4820   DIS 203

    • M
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17329 CS 4820   DIS 204

    • M
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17330 CS 4820   DIS 205

    • M
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17331 CS 4820   DIS 206

    • T
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17332 CS 4820   DIS 207

    • T
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17333 CS 4820   DIS 208

    • T
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17334 CS 4820   DIS 209

    • T
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person

  • 17335 CS 4820   DIS 210

    • T
    • Aug 24 - Dec 7, 2026
    • Kleinberg, R

  • Instruction Mode: In Person