Graders/UCA: Itamar Levy-Or, Sam Silverman, Huan Wang, Shuyang Wang, Bin Yu
Description This course will introduce you to algorithms in a variety of areas of interest, such as sorting, searching, string-processing, and graph algorithms. 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. There will be one or more programming assignments as well to help you relate the empirical performance of an algorithm to theoretical predictions. Mathematical experience (as provided by COMPSCI 250) is required. You should also be able to program in Java, C, or some other closely related language. Prerequisites: COMPSCI 187 and either COMPSCI 250 or MATH 455.
TextbookDate | Topics | Readings | Assignments | |
---|---|---|---|---|
Lec 1 | 9/4 | Intro and Stable Matching | Chapter 1.1 | |
Lec 2 | 9/6 | Algorithm Analysis and Asymptotics | Ch 2.1, 2.2 | HW1 out. Template |
Dis 1 | 9/7 | |||
Lec 3 | 9/11 | Graphs I (BFS, DFS) | Ch 3.1, 3.2 | |
Lec 4 | 9/13 | Graphs II (Bipartite, Connectivity, Topological Sorting) | Ch 3.3-3.6 | |
Dis 2 | 9/14 | |||
Lec 5 | 9/18 | Greedy I (Interval Scheduling & Partitioning) | Ch 4.1 | |
Lec 6 | 9/20 | Greedy II (Scheduling to Minimize Lateness) | Ch 4.2 | HW1 due, HW2 out (template) |
Dis 3 | 9/21 | |||
Lec 7 | 9/25 | Greedy III (Shortest Paths) | Ch 4.4 | |
Lec 8 | 9/27 | Greedy IV (Minimum Spanning Trees) | Ch. 4.5, 4.6 | |
Dis 4 | 9/28 | |||
Lec 9 | 10/2 | Divide and Conquer I (Mergesort, Recurrences) | Ch. 5.1, 5.2 | HW2 due |
Midterm 1 | 10/3 | Solutions | ||
Lec 10 | 10/4 | Divide and Conquer II (Integer Multiplication, Closest Points) | Ch. 5.4, 5.5 | HW3 out (template) |
Dis 5 | 10/5 | |||
10/9 | No class (Monday schedule) | |||
Lec 11 | 10/11 | Divide and Conquer III (Counting Inversions, FFT) | Ch. 5.2, 5.6 | |
Dis 6 | 10/12 | |||
Lec 12 | 10/16 | Dynamic Programming I: Weighted Interval Scheduling, Rod Cutting | Ch. 6.1, 6.2 | |
Lec 13 | 10/18 | Dynamic Programming II: Subset Sum/Knapsack, Seqmented Least Squares | Ch. 6.4, 6.3 | HW3 due, HW4 out (template) |
Dis 7 | 10/19 | |||
Lec 14 | 10/23 | Dynamic Programming III: Sequence Alignment | Ch. 6.6, 6.7 | |
Lec 15 | 10/25 | Dynamic Programming IV: Shortest Paths | Ch. 6.8, 6.10 | |
Dis 8 | 10/26 | |||
Lec 16 | 10/30 | Network Flow I | Ch. 7.1, 7.2 | HW Extra out: extracredit.py, tree.json |
Lec 17 | 11/1 | Network Flow II | Ch. 7.2, 7.3 | HW 4 due, HW5 out |
Dis 9 | 11/2 | |||
Lec 18 | 11/6 | Network Flow III | Ch. 7.5 | |
Lec 19 | 11/8 | Intractability I | Ch. 8.1, 8.2 | |
Dis 10 | 11/9 | Midterm review | ||
Lec 20 | 11/13 | Intractability II | Ch. 8.3 | |
Midterm 2 | 11/14 | Solutions | ||
Lec 21 | 11/15 | Intractability III | Ch 8.4 | |
Dis 11 | 11/16 | HW5 due | ||
11/18-11/25 | Thanksgiving recess | |||
Lec 22 | 11/27 | Intractability IV | HW6 out | |
Lec 23 | 11/29 | Approximation Algorithms | Ch 11.1, 11.2 | |
Dis 12 | 11/30 | |||
Lec 24 | 12/4 | Randomized Algorithms I | Ch 13.1, 13.2, 13.4 | |
Lec 25 | 12/6 | Randomized and Approximation Algorithms II | Ch. 13.5, 11.4, 11.8 | HWX (programming) due |
Dis 13 | 12/7 | |||
Lec 26 | 12/11 | Review | HW 6 due |
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 PolicyHomework 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.
Late policyA 50% penalty will be applied for homework that is late by 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.
Discussion SectionThe 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. Exercises will be submitted at the end of the discussion and count toward course grade.
InclusivityPlease 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.
Accomodations for DisabilitiesIf 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.