CSCI 256
Algorithm Design and Analysis Fall 2023 (also offered Spring 2024)
Division III Quantitative/Formal Reasoning
This is not the current course catalog

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#: 1199
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

Course Catalog Archive Search



Start Time
End Time