CSCI 256
Algorithm Design and Analysis Spring 2025 (also offered Fall 2024)
Division III Quantitative/Formal Reasoning

Class Details

This course investigates methods for designing efficient and reliable algorithms. By carefully analyzing the structure of a problem within a mathematical framework, it is often possible to dramatically decrease the computational resources needed to find a solution. In addition, analysis provides a method for verifying the correctness of an algorithm and accurately estimating its running time and space requirements. We will study several algorithm design strategies that build on data structures and programming techniques introduced in Computer Science 136. These include greedy, divide-and-conquer, dynamic programming, and network flow algorithms. Additional topics of study include algorithms on graphs and strategies for handling potentially intractable problems.
The Class: Format: lecture
Limit: 24
Expected: 24
Class#: 3044
Grading: no pass/fail option, no fifth course option
Requirements/Evaluation: Problem sets, midterm and final examinations
Prerequisites: CSCI 136 and fulfillment of the Discrete Mathematics Proficiency requirement
Enrollment Preferences: Preference will be given to students who need the class in order to complete the major. Ties will be broken by seniority (seniors first, then juniors, etc.).
Distributions: Division III Quantitative/Formal Reasoning
QFR Notes: This course will have weekly problem sets in which students will formally prove statements about the behavior and performance of algorithms. In short, the course is about applying abstract and mathematical reasoning to the study of algorithms and computation.

Class Grid

Updated 8:31 am

Course Catalog Search

(searches Title and Course Description only)



Start Time
End Time