Welcome to the Spring 2025 homepage for CMPSCI 311: Introduction to Algorithms. Below find basic information, coursework and schedule, and detailed course policies.
Section 01 | Monday, Wednesday 2:30-3:45pm, ILC
S131 Instructor: Dan Sheldon (sheldon at cs.umass.edu ) |
Section 02 | Monday, Wednesday 4:00-5:15pm, LGRC
A301 Instructor: Marius Minea (marius at cs.umass.edu) |
Discussion | Friday 9:05–9:55am, LGRC A104A (Section
99AC) Friday 10:10–11:00am, LGRT 121 (Section 99AD) Friday 12:20–1:10pm, Ag. Engineering 119 (Section 99AB) Friday 1:25–2:15pm, Computer Science Bldg 142 (Section 99AA) |
Required Textbook | Algorithm Design, 1st edition by Jon Kleinberg and Eva Tardos |
Canvas | https://umamherst.instructure.com/courses/26211 |
Gradescope | https://www.gradescope.com/courses/970077 |
Campuswire | https://campuswire.com/c/G1CDD66E8/feed |
Echo 360 (Section 1) | https://umamherst.instructure.com/courses/26211/modules/items/2274226 |
Echo 360 (Section 2) | https://umamherst.instructure.com/courses/26211/modules/items/2272346 |
TAs | Md Abdual Aowal (aowal at
cs.umass.edu) Miguel Fuentes (mmfuentes at umass.edu) Purna Dutta (purnadutta at umass.edu) |
UCAs | Aditya Khurmi (Head UCA), Aaron Tian (Head UCA), Henry Liu, Ibrahim Hasaan, Luke Taylor, Kyle Lee, Aiko Ma, Noah Ford |
Office Hours |
Weekly online assignments be posted on Gradescope and due on Mondays at 11:59pm.
Challenge problem sets will be posted here and submitted on Gradescope
(due dates tentative until posted and likely to change; typically posted 2 weeks before due date, plus or minus a couple days)
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 | Link | Date | Topic | Reading and Background |
---|---|---|---|---|
0 | 1/31 | Discussion | ||
1 | Lec 01 | 2/3 | Introduction and Stable Matching | Chapter 1 |
Lec 02 | 2/5 | Algorithm Analysis | Chapter 2.1, 2.2 | |
2/7 | Discussion | |||
2 | Lec 03 | 2/10 | Algorithm Analysis | Chapter 2.4 |
Lec 04 | 2/12 | Algorithm Analysis / Graphs | Chapter 3.1, 3.2 | |
2/14 | Discussion | |||
3 | 2/17 | HOLIDAY - PRESIDENT’S DAY | ||
Lec 05 | 2/19 | Graphs | Chapter 3.3, 3.4 | |
Lec 06 | 2/20 | Graphs (Monday schedule) | Chapter 3.5, 3.6 | |
2/21 | Discussion | |||
4 | Lec 07 | 2/24 | Greedy | Chapter 4.1 |
Lec 08 | 2/26 | Greedy | Chapter 4.2 | |
2/28 | Discussion | |||
5 | Lec 09 | 3/3 | Greedy | Chapter 4.4 |
Lec 10 | 3/5 | Greedy | Chapter 4.5, 4.6 | |
3/7 | Discussion | |||
6 | Lec 11 | 3/10 | Divide and Conquer | Chapter 5.1, 5.2 |
Lec 12 | 3/12 | Divide and Conquer | Chapter 5.4, 5.5 | |
3/14 | Discussion | |||
SPRING BREAK | ||||
7 | Lec 13 | 3/24 | Divide and Conquer | Chapter 5.2, 5.6 |
Lec 14 | 3/26 | Dynamic Programming | Chapter 6.1, 6.2 | |
3/28 | Discussion | |||
8 | Lec 15 | 3/31 | Dynamic Programming | Chapter 6.3, 6.4 |
Lec 16 | 4/2 | Dynamic Programming | Chapter 6.6 | |
4/4 | Discussion | |||
9 | Lec 17 | 4/7 | Dynamic Programming | Chapter 6.8 |
Lec 18 | 4/9 | Network Flow | Chapter 7.1, 7.2 | |
4/11 | Discussion | |||
10 | Lec 19 | 4/14 | Network Flow | Chapter 7.2, 7.3 |
Lec 20 | 4/16 | Network Flow | Chapter 7.5, 7.10 | |
Lec 21 | 4/18 | Intractability (Monday schedule) | Chapter 8.1 | |
11 | 4/21 | HOLIDAY - PATRIOT’S DAY | ||
Lec 22 | 4/23 | Intractability | Chapter 8.2, 8.3 | |
4/25 | Discussion | |||
12 | Lec 23 | 4/28 | Intractability | Chapter 8.3 |
Lec 24 | 4/30 | Intractability | Chapter 8.4 | |
5/2 | Discussion | |||
13 | Lec 25 | 5/5 | Approximation Algorithms | Chapter 11.1, 11.2 |
Lec 26 | 5/7 | Randomized Algorithms / Review | Chapter 13.1, 13.2, 13.4 | |
5/9 | Discussion |
(subject to change until classes begin)
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 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.
We will use classquestion for multiple choice questions during lecture.
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.
Students will complete:
The grade percentages are as follows:
To compute the final grade, all grades will be mapped to a ten point scale and then averaged:
The overall average grade will be rounded to the nearest hundredth, and then grade ranges for final letter grades will be approximately: A (9.33-10.00), A- (9.00-9.32), B+ (8.67-8.99), B (8.33-8.66), B- (8.00-8.32), C+ (7.67-7.99), C (7.33-7.66), C- (7.00-7.32), D+ (6.67-6.99), D (6.00-6.66), F (0-5.99). The instructors reserve the right to adjust grade thresholds, but will not increase the minimum score required to receive any letter grade.
The course staff will pursue academic honesty charges for any suspected violation of course collaboration and cheating policies.
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.
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 Gradescope homework assignments will be due most Mondays 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.
These usually involve designing an algorithm for a novel problem and proving it correct. They assess 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 problems will be graded as one of ✗, ✓–, ✓, or ✓+ using the rubric described below. Grades of ✓ and ✓+ indicate mastery. The overall challenge problem grade will be determined as follows:
Grade | Criteria |
---|---|
A+ | Complete at least 14 challenge problems with ✓ or better; including at least 7 with ✓+ |
A | Complete at least 12 challenge problems with ✓ or better; including at least 6 with ✓+ |
B | Complete at least 8 challenge problems with ✓ or better; including at least 4 with ✓+ |
C | Complete at least 6 challenge problems with a ✓ or better |
D | Complete at least 6 challenge problems with a ✓- or better; including at least 3 with a ✓ |
For example, to earn a C you should aim to complete one challenge problem per assignment with a ✓ or better. To earn an A, you should aim to complete two per assigment with ✓ or better with one a ✓+. Since you don’t need to complete every problem, you are encouraged to focus your efforts on producing high-quality solutions to the problems you feel confident about. There is no benefit to guessing or writing vague answers to a problem you don’t know how to solve.
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. |
✗ | Not enough information is present in the work to determine whether there is understanding of the concepts. The work is fragmentary of contains significant omissions. Or, there are too many issues to justify correcting each one. |
Here is a link to a flow chart illustration of the rubric.
Challenge problems will be submitted via Gradescope. You must submit challenge problems as a single pdf (see Gradescope instructions):
Work that is not submitted in the correct format, is unreadable, or is excessively messy risks not being graded.
Intructors will post solutions to Canvas 24 hours after the homework submission deadline and open a separate Gradescope assignment for submitting your self-asessment. Self-assessments will typically be due 3 days after the submission deadline and 48 hours after solutions are posted. For each problem attempted, you must:
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 three “late days” to excuse late work (either online assignments or challenge problems):
To use a late day, you do not need to notify course staff; just submit within 24 hours after the due date, and we will automatically deduct one late day from your total.
Any requests for extensions due to exceptional circumstances (severe illness, etc.) must be made before the deadline. When solutions have already been posted, it is a violation of academic honesty to look at them prior to submitting work.
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.
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.
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 like ChatGPT.
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
(Numbers 2 and higher correspond to chapters in Kleinberg and Tardos.)
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.
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.
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 vear at the SASA Hotline 413-545-0800.
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/.