CMPSCI 311: Introduction to Algorithms, Fall 2026, Section 01 (Sheldon)

Welcome to the homepage for CMPSCI 311: Introduction to Algorithms Section 01 in Fall 2026. This page is for Section 01, taught by Dan Sheldon. There are two other sections taught by Prof. Ghazaleh Parvini and Prof. Hava Siegelmann. Below find basic information, coursework and schedule, and detailed course policies.

Basic Information

Instructor Dan Sheldon, (email: sheldon at cs )
Lecture Tuesday, Thursday 11:30–12:45pm, Goessmann Lab Addition Room 64
Discussion Friday 10:10–11:00am (Section 01AA)
Friday 11:15am–12:05pm (Section 01AB)
Friday 12:20–1:10pm, (Section 01AC)
Hasbrouck Lab Add 113
Required Textbook Algorithm Design, 1st edition by Jon Kleinberg and Eva Tardos
Canvas https://umamherst.instructure.com/courses/41317
Gradescope https://www.gradescope.com/courses/1377862
Campuswire https://campuswire.com/c/G1044350B/feed
EchoVideo https://umamherst.instructure.com/courses/41317/modules/items/3447887
TAs Abhishek Varghese (avarghese at umass.edu),
Owen DePoint (odepoint at umass.edu)
UCAs Isik Ulusan (head UCA), Zhiyang Wen, Stella Dey, Saad Ahmed, Minh Le
Office Hours See list on Campuswire.

Coursework and Schedule

Exams

There will be three scheduled exams outside of class time:

In addition, there will be three unit tests held during discussion section. These are scheduled for October 2, October 30, and November 13.

Online Homework Assignments

Weekly online assignments be posted on Gradescope and due on Mondays at 11:59pm.

Challenge Problem Sets

Challenge problem sets will be posted on Gradescope and due on Wednesdays at 11:59pm roughly every two weeks. The anticipated due dates are 9/24, 10/8, 10/22, 11/5, 11/19, and 12/19. They are expected to have 2–3 problems each.

Schedule

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. Lectures may include board work that is not captured digitally. Another set of slides that roughly matches the material we cover can be found here.

Week Date Topic Reading and Background
1 Lec 01 9/8 Introduction and Stable Matching Chapter 1
Lec 02 9/10 Algorithm Analysis Chapter 2.1, 2.2
9/11 Discussion
2 Lec 03 9/15 Algorithm Analysis Chapter 2.4
Lec 04 9/17 Algorithm Analysis / Graphs Chapter 3.1, 3.2
9/18 Discussion
3 Lec 05 9/20 Graphs Chapter 3.3, 3.4
Lec 06 9/24 Graphs Chapter 3.5, 3.6
9/25 Discussion
4 Lec 07 9/29 Greedy Chapter 4.1
Lec 08 10/1 Greedy Chapter 4.2
10/2 Unit Test 1
5 Lec 09 10/6 Greedy Chapter 4.4
Lec 10 10/8 Greedy Chapter 4.5, 4.6
10/9 Discussion
6 Lec 11 10/13 Divide and Conquer Chapter 5.1, 5.2
Lec 12 10/15 Divide and Conquer Chapter 5.4, 5.5
10/16 Discussion
7 Lec 13 10/20 Divide and Conquer Chapter 5.2, 5.6
Lec 14 10/22 Dynamic Programming Chapter 6.1, 6.2
10/23 Discussion
8 Lec 15 10/27 Dynamic Programming Chapter 6.3, 6.4
Lec 16 10/29 Dynamic Programming Chapter 6.6
10/30 Unit Test 2
9 11/3 NO CLASS – ELECTION DAY
Lec 17 11/5 Dynamic Programming Chapter 6.8
11/6 Discussion
10 Lec 18 11/10 Network Flow Chapter 7.1, 7.2
Lec 19 11/12 Network Flow Chapter 7.2, 7.3
11/13 Discussion
11 Lec 20 11/17 Network Flow Chapter 7.5, 7.10
Lec 21 11/19 Intractability Chapter 8.1
11/20 Discussion
12 11/24 NO CLASS – WEDNESDAY SCHEDULE
11/26 NO CLASS — THANKSGIVING
11/27 NO DISCUSSION — THANKSGIVING
13 Lec 22 12/1 Intractability Chapter 8.2, 8.3
Lec 23 12/3 Intractability Chapter 8.3
12/4 Discussion
14 Lec 24 12/8 Intractability Chapter 8.4
Lec 25 12/10 Approximation Algorithms Chapter 11.1, 11.2
12/11 Discussion
15 Lec 26 12/15 Randomized Algorithms / Review Chapter 13.1, 13.2, 13.4

Detailed Policies

(subject to change until classes begin)

Course description

This course will introduce you to a variety of techniques to design algorithms, such as divide and conquer, greedy, dynamic programming, and network flow. You will learn to study the performance of various algorithms within a formal, mathematical framework. You will also learn how to design very efficient algorithms for many kinds of problems and recognize problems that currently do not have efficient algorithms (You will learn about NP-Completeness). There is no programming assignment but you should know a programming language to understand the algorithms. Mathematical experience (as provided by COMPSCI 250) is required.

Prerequisites

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

Textbook

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

Lecture Participation

We will use classquestion for multiple choice questions during lecture.

Attendance

Attendance is required at lectures and discussion sections and will contribute to your participation grade. See the Participation section and Excused Absences section below for details about the participation grade and excused absences.

Coursework

Students will complete:

Grading

The grade percentages are as follows:

Items will be graded on a percentage scale and combined within each category (typically using equal weights), then across categories using the weights above. Final percentage scores will be converted to letter grades using the following cutoffs:

A: 93.3, A-: 90.0, B+: 86.7, B: 83.3, B-: 80.0, C+: 76.7, C-: 70.0, D+: 66.7, D: 60.0.

Grades are not rounded first. For example, a grade of 93.301 meets the A cutoff of 93.3, but a grade of 93.299 does not. The instructors reserve the right to adjust grade thresholds, but will not make it harder to achieve any letter grade. Requests for case-by-case adjustments or rounding to achieve a letter grade threshold will be ignored.

Collaboration

The course staff reserves the right to pursue academic honesty charges for any suspected violation of course collaboration and cheating policies. See also the section on academic honesty.

AI Use

AI use for homework and challenge problems is covered by the collaboration policy, which prohibits looking at solutions other than your own, and therefore prohibits using AI to solve these problems for you. There is also no incentive to do so, since: (1) homework and challenge problems are explicitly designed to help you achieve learning goals and prepare for assessments (i.e., exams), (2) you will have an opportunity to revise work for full credit after seeing solutions (see below), and (3) homework and challenge problems are worth a small fraction of your course grade.

Limited use of AI tools is allowed in CS 311, in the same way you might ask questions of a peer, instructor, text book, or web search for general informational not related to solving a specific problem. For curious learners, AI can be a very effective learning tool. But beware being led down an incorrect or strange path by an eager AI tool.

We reserve the right to pursue academic honesty charges for suspected violations of course policy surrounding AI use. See also the section on academic honesty.

Participation (Discussion and Lecture)

You will receive credit for completing discussion exercises and answering questions during lectures:

We reserve the right to change particpation grading (e.g., to grade discussion exercises for completeness or correctness) if engagement is a problem.

Excused Absences

Every student in 311 will automatically be excused from up to five lecture absences and up to two discussion absences. You do not need to contact the course staff. This will be implemented by dropping the lowest five lecture participation grades and lowest two discussion grades for all students. These are expected to cover feeling unwell, unforeseen circumstances, and other extenuating non-academic reasons.

If documented cases (severe illness, athletic events, etc.) require more than this absence allowance, please submit the Excused Absences questionnaire, attaching the relevant documentation.

Please use the registrar’s class absence policy for guidance when requesting absences and providing documentation.

Online Homework Assignments

Online Gradescope homework assignments will be due most Fridays and posted about a week in advance. These will focus on mastery of learning goals and mimic the types of questions you can expect on exams.

Homework problems will be graded for correctness or completion at the discretion of the course staff. A problem may also be marked as “needs review”, which does not automatically earn credit.

Revisions. After homework is graded, students may submit revisions to receive full credit for any problem marked as incorrect or “needs review”. Revisions must be submitted via Gradescope regrade request within two weeks. For multiple choice, true/false, or short answer questions, revisions should explain why the original answer was wrong. For free form questions such as proofs or short algorithm design questions, revisions should supply a correct solution. Instructor solutions will already be posted—students can (and should) refer to these to understand their mistake and what the correct solution looks like, but should not copy directly from them.

The principle is that homework in CS 311 is not an assessment but an opportunity to practice and get feedback for solving the types of problem that are part of our learning goals and will later appear on assessments; this only works if you review and revise your work.

Challenge Problems

These usually involve designing an algorithm for a novel problem and proving it correct. They will help develop your ability to apply the more concrete learning goals to solve new problems, and to use logic and language to precisely communicate your solution and justify why it is correct.

Challenge problem solutions must be handwritten.

Challenge problems will be graded as one of ✗, ✓–, ✓, or ✓+ using the rubric described below. Grades of ✓ and ✓+ indicate mastery and receive full credit. Grades of ✗ and ✓– receive no credit. Any problem marked as ✓– can be revised for full credit. Problems marked as ✗ cannot be revised—you must make a full and honest attempt to solve the problem by the original due date to be eligible for revision.

Rubric

This rubric is based on Robert Talbert’s EMRN rubric:

Mark Criteria
✓+ The work meets or exceeds the expectations of the assignment. Communication is clear and complete. Mastery of the concepts is evident. There are no non-trivial errors. This work could be used as a classroom example. For an algorithm design problem: the algorithm is correct and clearly communicated, the running-time is correctly analyzed, and a convincing proof of correctness is given. There may be minor mistakes or omissions but no significant logic gaps.
Understanding of the concepts is evident through correct work and clear, audience-appropriate explanations. Some revision or expansion is needed, but no significant gaps or errors are present. No additional instruction on the concepts is needed. For an algorithm design problem: the major components of the algorithm are correct, and a running-time analysis and proof are given. All parts of the solution are communicated in a way that a peer who didn’t already know the solution could understand it. There may be some logic gaps, but, on balance, the solution “hangs together”.
✓– Partial understanding of the concepts is evident, but there are significant gaps that remain. Needs further work, more review, and/or improved explanations.
The work is missing or does not represent an honest attempt at solution, and is not eligible for revision.

Here is a link to a flow chart illustration of the rubric.

Gradescope Submission

Challenge problems must be handwritten and submitted via Gradescope as a single pdf (see Gradescope instructions).

Neatly write your solutions and scan them. All scans must be high-quality: rotated correctly, with enough contrast, and readable at a standard letter size. Many free apps, including the Gradescope mobile app provide scanning capabilities. Others scanning apps inlcude Adobe Scan, Microsoft Lens, Google Drive, and Apple Notes. Please do not upload photos. Scanning apps will crop, align, and adjust for contrast to make your work readable. You should view the your file once you submit it to ensure it meets these standards.

Work that is not submitted in the correct format, is unreadable, or is excessively messy risks not being graded.

Challenge Problem Revisions

After challenge problems are graded and the solutions are posted, you will have an opportunity to revise any ✓– solutions to receive full credit. You should: (1) explain where your original solution went wrong, (2) provide a new solution in your own words. Note that instructor solutions will already be posted; you are allowed to look at them but not copy from them. You should think of this as similar to collaborating with another student or TA to learn how to solve a problem, which you then write up completely in your own words; it is best if you do not have the instructor solutions in front of you when doing so.

We will announce the exact procedure for submitting revisions during the semester.

Revisions are due two weeks after the challenges problems are initially graded.

Late policy

Late work that is not excused will receive no credit. Any assigned work must be submitted by the due date. Please allow time to check and make sure you’ve submitted everything properly, and avoid any unexpected issues (slow Internet connection, uploading the wrong file in a hurry, etc.).

Every student may use up to four “late days” to excuse late work (either online assignments or challenge problems):

To use late day(s), you do not need to notify course staff; just submit and we will automatically deduct the late days from your total.

Any requests for extensions due to exceptional circumstances (severe illness, etc.) must be made before the deadline.

If you submit after solutions have already been posted, it is a violation of academic honesty to look at them prior to submitting your work.

Missed Exams

You must notify the instructor in advance if you are unable to take an exam at the scheduled time (e.g., due to illness). If a severe accident prevents you from communicating (or asking someone else to do it), you must notify the instructor as soon as you are able to. Failure to do this and missing the exam results in a grade of zero.

Discussion

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. Unit tests will also be given in discuss sections.

Academic Honesty

CS 311 Honesty Policy

Academic dishonesty as defined by the University’s Academic Honesty Policy includes but is not limited to:

This course assumes that all work submitted by students will be generated by the students themselves, working individually or in groups. Students should not have another person/entity do the writing of any portion of an assignment for them, which includes hiring a person or a company to write assignments and using artificial intelligence tools.

University Statement

Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent. See https://www.umass.edu/studentsuccess/academic-integrity

Detailed Learning Goals

(Numbers 2 and higher correspond to chapters in Kleinberg and Tardos.)

  1. Cross-Cutting. Develop skills in abstract reasoning and communication about algorithms
    1. Use logic to reason about algorithms
    2. Use self-regulated learning to solve challenging problems that require multiple cycles of planning, executing, assessment, and adaptation
    3. Use language, pseudocode, and mathematical notation to understand and communicate precisely about algorithms
  2. Basics of Algorithm Analysis. Use asymptotic order notation (big-O, big-Omega, and big-Theta) to analyze running times and compare growth rates
    1. Prove statements about asymptotic order notation
    2. Compare growth rates of different functions
    3. Analyze the running time of algorithms
  3. Graphs. Understand graph definitions, graph traversal algorithms, and how they are used as building blocks of algorithms
    1. Work with graph definitions and execute traversal algorithms on example graphs
    2. Design algorithms using graph traversal
  4. Greedy algorithms. Design greedy algorithms and understand greedy proof techniques
    1. Evaluate greedy rules for optimality
    2. Prove correctness of greedy algorithms
    3. Reason about shortest paths, cuts, cycles, and spanning trees in graphs
    4. Work with Dijkstra’s, Prim’s, and Kruskal’s algorithms in examples
  5. Divide-and-Conquer. Understand the divide-and-conquer design technique and analyze the running-time of recursive algorithms.
    1. Use unrolling, recursion trees, and the master theorem to solve recurrences
    2. Verify the solution to a recurrence using induction
    3. Design divide-and-conquer algorithms and argue correctness
  6. Dynamic Programming. Design dynamic programming algorithms
    1. Write a recurrence for the optimal value of a dynamic programming problem
    2. Translate a recurrence into an iterative algorithm to compute the optimal value
    3. Modify an iterative algorithm for the optimal value to recover the optimal solution
  7. Network Flows. Understand network flows and use them to design algorithms
    1. Work with cuts and flows and execute the Ford-Fulkerson algorithm in example networks
    2. Design algorithms to solve network flow applications
  8. Intractability. Reason about intractability
    1. Design polynomial-time reductions between pairs of problems
    2. Prove that a problem is NP-complete using polynomial-time reductions

Course Technology

Communication Policy

Please use Campuswire to ask questions about course material. Use the excused absence questionnaire to request an excused absence (see the Participation section). We prefer that you use Campuswire to contact instructors about other topics, but you may use email to contact us confidentially.

We will do our best to respond within 1 “business day” (i.e., a day when classes meet). For messages received during the evening, on weekends, or on holidays, we may respond, but please do not expect a response until the next business day.

Inclusivity

Please read the CICS inclusivity statement, copied here:

At the Manning College of Information and Computer Sciences, we believe that you belong in computing. We welcome and value all individuals, regardless of previous computer science experience, age, citizenship, disability, sex, gender identity, military experience, political views, race, religion, or sexual orientation, while maintaining an environment that celebrates, welcomes, and honors those differences.

We’re committed to supporting all our students through their journeys in computer and information sciences–especially students from identities and backgrounds that are still underrepresented in our field. Diverse perspectives on the challenges our society faces animate our vision of Computing for the Common Good. Your insight, talents, and skills are needed to protect and improve an ecosystem that relies on the combined efforts of the greatest technical minds, and we believe your place is here.

Title IX Statement

In accordance with Title IX of the Education Amendments of 1972 that prohibits gender-based discrimination in educational settings that receive federal funds, the University of Massachusetts Amherst is committed to providing a safe learning environment for all students, free from all forms of discrimination, including sexual assault, sexual harassment, domestic violence, dating violence, stalking, and retaliation. This includes interactions in person or online through digital platforms and social media. Title IX also protects against discrimination on the basis of pregnancy, childbirth, false pregnancy, miscarriage, abortion, or related conditions, including recovery. There are resources here on campus to support you. A summary of the available Title IX resources (confidential and non-confidential) can be found at the following link: https://www.umass.edu/titleix/resources. You do not need to make a formal report to access them. If you need immediate support, you are not alone. Free and confidential support is available 24 hours a day / 7 days a week / 365 davs a year at the SASA Hotline 413-545-0800.

Accomodations for Disabilities

The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements. For further information, please visit https://www.umass.edu/disability/.