CS 3000: Algorithms & Data — Fall 2020

Syllabus      Tentative Course Schedule


          Kevin Gold     Rajmohan Rajaraman     Jonathan Ullman     Andrew van der Poel

Office Hours (online, all times Eastern)

Teaching Assistants


Canvas Link   Piazza Link   Lectures   Description   Textbook   Grading   Policies   Recitations


All lectures will be presented as pre-recorded videos. The videos for each lecture would be made available the day of the lecture. To facilitate an interactive discussion of concepts covered in each lecture, the instructors will play the lecture videos during specific time slots on the day of each lecture, discuss concepts, and answer questions during these lecture streams. These lecture stream periods are the following (all times Eastern).

Course Description

This is an introductory undergraduate course in algorithms.   Every computer program can be viewed as an implementation of an algorithm for solving a particular computational problem.  The focus of this course is on learning algorithm design techniques for solving the underlying computational problems.  We will also look at how algorithms translate to programs, but our emphasis will be on the algorithm design and analysis.   In this class, you will
Specific topics covered in the course typically include:


Algorithm Design, by Kleinberg and Tardos, Pearson


Grades will be based on problem sets (30%), programming assignments (10%), quizzes (15%), one midterm (20%), and final (25%). The final grade assigned to a student will be based on the overall performance of the student relative to the entire class.


CS 3001 Recitations

Since this is a large class, and the main focus of the course is problem-solving, we will have weekly recitation sessions in which we will work through several problems related to material covered in the lectures.