Introduction to Algorithms

COMPSCI 311

Marius Minea

Welcome to the Fall 2018 homepage for COMPSCI 311: Introduction to Algorithms.

When/Where

Instructor
  Marius Minea (marius at cs), office hours: Mon & Wed 5:30-6:30pm, office: LGRC A261

TAs

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.

Textbook Grade Breakdown Resources Course Material
Tentative schedule (will be updated as class progresses)
Date 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

For reference, we'll be covering similar material as in past course iterations. These are also useful for practice exams: 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. Exercises will be submitted at the end of the discussion and count toward 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.