CS231
Design and Analysis of Algorithms

This course introduces the design and analysis of fundamental algorithms. It focuses on the basic skills needed to design efficient, correct algorithms and mathematically prove these properties. General problem-solving techniques covered: divide-and-conquer, dynamic programming, greediness, and probabilistic algorithms. Topics include: sorting, searching, graph algorithms, optimization, network flows, asymptotic analysis, compression, and NP-completeness.

Units: 1

Max Enrollment: 24

Prerequisites: One of the following (CS 230, CS 230P, or CS 230X) and MATH 225, or permission of the instructor.

Distribution Requirements: MM - Mathematical Modeling and Problem Solving

Typical Periods Offered: Spring; Fall

Semesters Offered this Academic Year: Fall; Spring

Notes: