CS 473

CS 473 - Algorithms

Fall 2025

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
AlgorithmsCS473CSP51491PKG41400 - 1515 T    Makrand Sinha
AlgorithmsCS473CSP51491PKG41400 - 1515 R    Makrand Sinha
AlgorithmsCS473MCS51492PKG41400 - 1515 R    Makrand Sinha
AlgorithmsCS473MCS51492PKG41400 - 1515 T    Makrand Sinha
AlgorithmsCS473S470159LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha
AlgorithmsCS473S4G72165LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha
AlgorithmsCSE414CSP51501PKG41400 - 1515 T    Makrand Sinha
AlgorithmsCSE414CSP51501PKG41400 - 1515 R    Makrand Sinha
AlgorithmsCSE414MCS51502PKG41400 - 1515 R    Makrand Sinha
AlgorithmsCSE414MCS51502PKG41400 - 1515 T    Makrand Sinha
AlgorithmsCSE414S470170LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha
AlgorithmsCSE414S4G72228LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha
AlgorithmsMATH473CSP51505PKG41400 - 1515 T    Makrand Sinha
AlgorithmsMATH473CSP51505PKG41400 - 1515 R    Makrand Sinha
AlgorithmsMATH473MCS51506PKG41400 - 1515 T    Makrand Sinha
AlgorithmsMATH473MCS51506PKG41400 - 1515 R    Makrand Sinha
AlgorithmsMATH473S470172LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha
AlgorithmsMATH473S4G72229LCD41400 - 1515 T R  151 Loomis Laboratory Makrand Sinha

Official Description

Design and analysis techniques, approximation algorithms, randomized algorithms and amortized analysis, and advanced topics such as network flow, linear programming, and dynamic data structures, among others. Course Information: Same as CSE 414 and MATH 473. 4 undergraduate hours. 4 graduate hours. Prerequisite: CS 374 or ECE 374, and one of CS 361, STAT 361, ECE 313, MATH 362, MATH 461, MATH 463 or STAT 400.

Learning Goals

Know definitions of "core computational problems" and be able to describe various algorithms and their time and space complexities for such problems. (1,6)

Be able to abstract key computational elements and challenges from newly encountered problems in different domains, and identify when known algorithms or variants thereof may be employed to find a solution. (1,6)

Be able to design new algorithms using a variety of algorithmic approaches, including brute force, greedy, recursion, divide-and-conquer, dynamic programming, randomization, etc. (1,6)

Be able to use appropriate data structures such as arrays, linked lists, BSTs, heaps, hash tables, adjacency matrices or lists, etc, to solve problems efficiently. (1,6)

Be able to analyze the (worst case, randomized, amortized) time and space complexity of given algorithms using techniques such as loop summations, recurrences, charging arguments, potential functions, properties of probability. (1,6)

Be able to reason formally about problem difficulty using reductions, adversary arguments, decision trees, and similar techniques. (1,6)

More generally, be able to communicate and reason about computation clearly, formally, and concisely. (3,5)

Topic List

NP Completeness.
Dynamic Programming
Divide and Conquer and FFT
Randomized algorithms, analysis, and applications
Network flows, matchings and applications
Linear programming
Approximation algorithms
Additional topics vary

Required, Elective, or Selected Elective

Selected Elective.

Last updated

3/9/2019