COMPSCI 311: Introduction to Algorithms

David Mix Barrington and Marius Minea

Spring 2020

Welcome to the Spring 2020 homepage for COMPSCI 311: Introduction to Algorithms.
The course will be co-taught: Section 1 (taught by Prof. David Mix Barrington) and Section 2 (taught by Marius Minea) will share TAs and graders, Moodle, Piazza and Gradescope sites, and there will be common assignments, quizzes, and midterms, but and similar finals.

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. 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.

Basic Information
Resources Schedule
The is a tentative schedule which might suffer changes. See also the page for Fall 2019.
Lecture Topics Readings
1 Introduction and Stable Matching Chapter 1.1
2 Algorithm Analysis and Asymptotics Ch 2.1, 2.2
3 Algorithm Analysis, Graphs Ch 3.1, 3.2
4 Graphs Ch 3.3, 3.4
5 Graphs Ch 3.5, 3.6
6 Greedy Algorithms Ch 4.1
7 Greedy Algorithms Ch 4.2
8 Greedy Algorithms Ch. 4.4
9 Greedy Algorithms Ch. 4.5, 4.6
10 Divide and Conquer Ch. 5.1, 5.2
11 Divide and Conquer Ch. 5.4, 5.5
12 Divide and Conquer Ch. 5.2
13 Dynamic Programming Ch. 6.1, 6.2
14 Dynamic Programming Ch. 6.3, 6.4
15 Dynamic Programming Ch. 6.6
16 Dynamic Programming Ch. 6.8
17 Network Flow Ch. 7.1, 7.2
18 Network Flow Ch. 7.2, 7.3
19 Network Flow Ch. 7.5
20 Intractability Ch. 8.1
21 Intractability Ch. 8.2, 8.3
22 Intractability Ch 8.3
23 Intractability Ch 8.4
24 Approximation Algorithms Ch 11.1, 11.2
25 Randomized Algorithms Ch 13.1, 13.2, 13.4
26 Approximation/Randomization/Review

Grading Collaboration and Academic Honesty 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.

Late policy

A 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 Section

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 and counts towards the course grade.

Inclusivity

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.

Accomodations 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.