CMPSCI 311—Spring 2019
Introduction to Algorithms (Section 1; Sheldon)

Welcome to the Spring 2019 homepage for CMPSCI 311: Introduction to Algorithms. Below find basic information, coursework and schedule, and detailed course policies.

Basic Information

Instructor Dan Sheldon, (email: sheldon at cs )
Lecture Monday, Wednesday 2:30-3:45pm, Integrated Learning Center S140
Required Textbook Algorithm Design, 1st edition by Jon Kleinberg and Eva Tardos
Gradescope TBD
TAs Karine Tung (karine at cs) Jesse Lingeman (lingeman at cs) Raghavendra Addanki (raddanki at cs) Subhojyoti Mukherjee (subho at cs)
Office Hours Complete list

This course has similar lectures with Section 2 (taught by Marius Minea). We will share TAs, graders; Moodle, Piazza, Gradescope sites; assignments, quizzes, and midterms. Finals are on different days.

Coursework and Schedule



(dates tentative until HW is posted)


Here is an approximate schedule for the course. This is subject to change and will be updated as we go. Slides will be added after class—links will be broken until they are added. Note that lectures will include a mixture of slides and board work, and material presented on the board is not necessarily reflected in the slides. Another set of slides that roughly matches the material we cover can be found here.

Week Date Topic Reading and Background
1 Lec 01 1/23 Introduction and Stable Matching Chapter 1
Dis 01
2 Lec 02 1/28 Algorithm Analysis Chapter 2.1, 2.2
Lec 03 1/30 Algorithm Analysis, Graphs Chapter 3.1, 3.2
Dis 02
3 Lec 04 2/4 Graphs Chapter 3.3, 3.4
Lec 05 2/6 Graphs Chapter 3.5, 3.6
Dis 03
4 Lec 06 2/11 Greedy Chapter 4.1
Lec 07 2/13 Greedy Chapter 4.2
Dis 04
Lec 08 2/19 Greedy (Monday schedule) Chapter 4.4
Lec 09 2/20 Greedy Chapter 4.5-4.6
Dis 05
6 Lec 10 2/25 Divide and Conquer Chapter 5.1, 5.2
Lec 11 2/27 Divide and Conquer Chapter 5.4, 5.5
Dis 06
7 Lec 12 3/4 Divide and Conquer Chapter 5.2, 5.6
Lec 13 3/6 Dynamic Programming Chapter 6.1, 6.2
Dis 07
SPRING BREAK (3/11–3/15)
8 Lec 14 3/18 Dynamic Programming Chapter 6.3, 6.4
Lec 15 3/20 Dynamic Programming Chapter 6.6
Dis 08
9 Lec 16 3/25 Dynamic Programming Chapter 6.8
Lec 17 3/27 Network Flow Chapter 7.1, 7.2
Dis 09
10 Lec 18 4/1 Network Flow Chapter 7.2, 7.3
Lec 19 4/3 Network Flow Chapter 7.5, 7.10
Dis 10
11 Lec 20 4/8 Intractability Chapter 8.1
Lec 21 4/10 Intractability Chapter 8.2, 8.3
Dis 11
12 4/15 No Class — Patriot’s Day
Lec 22 4/17 Intractability (Monday schedule) Chapter 8.3
Dis 12
13 Lec 23 4/22 Intractability Chapter 8.4
Lec 24 4/24 Approximation Algorithms Chapter 11.1, 11.2
Dis 13
14 Lec 25 4/29 Randomized Algorithms Chapter 13.1, 13.2, 13.4
Lec 26 5/1 Review

Detailed Policies


CS 187 and CS 250 are important prerequisites. These provide familiarity with basic data structures and mathematical reasoning. You should be able to program in Java, C, or a related language.


The required textbook is Algorithm Design, 1st edition by Jon Kleinberg and Eva Tardos. It will be used for readings and homework problems.


Students will complete:




You will receive credit for completing discussion exercises and answering iClicker questions during lectures. The lowest two discussion grades dropped and lowest three lecture participation grades will be dropped.

Online Quizzes

Quizzes will be issued before the weekend and must be submitted before 8pm on Monday. No credit will be given for late quizzes, but the lowest scoring quiz will be dropped.

Homework Submission and Late Policy

Homework will be submitted via GradeScope. You may type up your answers in Latex and compile to pdf (preferred) or hand-write your homework and scan to pdf. If scanned, the pdf must be rotated correctly, scanned at high quality, and readable at a standard letter size. If the homework is not submitted in the correct format, it will not receive credit. Unreadable work, scratching out, etc. will not be graded. You should view the pdf once you submit to ensure it meets these minimum standards. Review the gradescope submission workflow (here and here) to make sure you upload and annotate your homework correctly. (Important: use one of the Gradescope recommended scanning apps.)

Late policy. A 50% penalty will be applied for homework that is late by 5 minutes up to 24 hours. Homework that is late by more than 24 hours receives no credit. However, each student is allowed to submit one homework up to 24 hours late without penalty.


The discussion section will be used every week except when noted on the course schedule and will consist of exercises to practice solving problems in small groups. Attendance is required.

Course Technology


Please read the CICS inclusivity statement, copied here:

The College of Computer and Information Sciences shares UMass Amherst’s commitment to diversity. We welcome all individuals regardless of age, background, citizenship, disability, sex, education, ethnicity, family status, gender, gender identity, geographical origin, language, military experience, political views, race, religion, sexual orientation, socioeconomic status, and work experience. We expect all members of our community to treat others with respect and civility.

Accommodations for Disabilities

If you have a disability and would like to request accommodations, please contact Disability Services, located in 161 Whitmore Hall, (413) 545-0892. If you are eligible, they will grant you accommodations and notify the instructors.