Course Description:
Presents the mathematical techniques used for the design and analysis of computer algorithms. Focuses on algorithmic design paradigms and techniques for analyzing the correctness, time, and space complexity of algorithms. Topics may include asymptotic notation, recurrences, loop invariants, Hoare triples, sorting and searching, advanced data structures, lower bounds, hashing, greedy algorithms, dynamic programming, graph algorithms, and NP-completeness.
Fall Offering:
Lab/Coreq 1:
Spring Offering:
Lab/Coreq 2:
Summer Offering:
Lab/Coreq Remarks:
Summer 1 Offering:
Prerequisite 1:
Summer 2 Offering:
Prerequisite 2:
Cross-Listed Course 1:
Prerequisite 3:
Cross-Listed Course 2:
Prerequisite 4:
Cross-Listed Course 3:
Prerequisite 5:
Cross-Listed Course 4:
Prerequisite Remarks:
Admission to MS program or completion of all transition courses.
Cross-Listed Course 5:
Repeatable:
N