To determine if a course is remote, hybrid, or in-person use the catalog search tool to narrow results. Otherwise, when browsing courses, the section indicates teaching mode:

R = Remote
H = Hybrid
0 = In-person

Teaching modes (remote, hybrid, in-person) are subject to change at any point. Please pay close attention when registering. Depending on the timing of a teaching mode change, faculty also may be in contact with students.

CSCI 256
Algorithm Design and Analysis Fall 2020 (also offered Spring 2021)
Division III Quantative/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 induction, divide-and-conquer, dynamic programming, and greedy algorithms. Additional topics of study include algorithms on graphs and strategies for handling potentially intractable problems.
The Class: Format: lecture; Lectures will be simultaneously recorded in classroom and broadcast over Zoom. Office hours will be done over Zoom. Some additional course materials (examples, solutions, definitions and core concepts, etc.) may be provided as prerecorded videos.
Limit: 20
Expected: 20
Class#: 2313
Grading: yes 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 Quantative/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 entirety of the course is about applying abstract and mathematical reasoning to the way computers work.

Class Grid

Updated 5:31 pm

Course Catalog Search

(searches Title and Course Description only)



Start Time
End Time