CSCI 432/532: Advanced Algorithm Topics
Course schedule
Schedule subject to change. Lecture videos in this Panopto folder. Credit for the CS Theory lecture notes and problem session questions/solutions to Jeff Erickson. If you’d like to check out last year’s version of the class to see how things might go, go here.
Week | Due this week | Monday (lecture) | Tuesday (attend a problem session either Monday 10am or 10 Tuesday) | Wednesday (lecture) | Thursday | Friday (problem session) |
---|---|---|---|---|---|---|
1 (1/13-1/17) | Intro; in-lecture notes | |||||
2 (1/20-1/24) | PL HW 0 (by Tuesday); PL HW 1 part 1 (by Thursday) and part 2 (by Saturday) | MLK Day–no class | No in-person problem session, but problems here and video for problem 1 here | No class–lecture video here on Recursively defined structures | No class–lecture video here on Languages and regular expressions; problem session problems here and video here | |
3 (1/27-1/31) | Written HW 1 (by Monday) + LaTeX source + Solution template | DFAs; in-lecture notes | Problem session | More on DFAs; in-lecture notes | Problem session | |
4 (2/3-2/7) | PL HW 2 and written HW 2 + LaTeX source (by Monday) | Proving non-regularity; in-lecture notes | Problem session | NFAs, proving automatic=regular, and language transformations; in-lecture notes | Problem session | |
5 (2/10-2/14) | PL HW 3; written HW 3 + LaTex source (by Monday) | Context-free grammars; in-lecture notes | Problem session | Turing machines; in-lecture notes | Problem session | |
6 (2/17-2/21) | PL HW 4; written HW 4 + LaTex source (by Tuesday) | President’s day–no class | Undecidability; in-lecture notes | Problem session | ||
7 (2/24-2/28) | PL HW 5; written HW 5 + LaTeX source (by | More on decidability; in-lecture notes | Problem session | Start of reductions for algorithms problems | Problem session | |
8 (3/3-3/7) | PL HW 6; written HW 6 + LaTeX source (by Monday) | P vs. NP | Problem session | More NP-hardness reductions | Problem session | |
9 (3/10-3/14) | PL HW 7; written HW 7 (by Monday) | Max flow | Problem session | Min cut | Problem session | |
Spring Break (3/17-3/21) | ||||||
10 (3/24-3/28) | Written HW 8 (before Tuesday); paper summary 1 (before Friday) | Approximation algorithms | Approximation algorithms | Student presentation 1 on paper 1 | ||
11 (3/31-4/4) | paper summary 2 (before Friday) | Linear programming | Linear programming | Student presentation 2 on paper 2 | ||
12 (4/7-4/11) | paper summary 3 (before Friday) | Integer linear programming | Integer linear programming | Student presentation 3 on paper 3 | ||
13 (4/14-4/18) | paper summary 4 (before Friday) | Streaming algorithms | Streaming algorithms | Student presentation 4 on paper 4 | ||
14 (4/21-4/25) | tbd (nothing or little) | Encryption | Lucy gone–no class | Lucy gone–no class | ||
15 (4/28-5/2) | tbd (nothing or little) | Lucy gone–no class | Quantum computing | Shor’s algorithm |
Catalog description
3 Credits. PREREQUISITE: CSCI 332. Advanced algorithm and data structure concepts, including theory, approximation algorithms, randomized algorithms, parallel algorithms, streaming algorithms, linear programming.
Course info
This course meets in Social Sciences 362 on Tuesdays and Thursdays from 9-10:20am.
This course will have two parts: in the first half, we will work to understand what is computable and how fast using computer science theory developed in the 20th century. This will give us a baseline to understand the contemporary algorithms field and familiarity with the concepts, notation, and proof styles necessary. In the second half, we will learn a number of advanced algorithm concepts and see how they are applied in current algorithms research. This will be a highly interactive class, and although the material is challenging, I will try to provide the appropriate level of support and I think students will get a lot out of the course.
Course resources
Canvas
We will use Canvas for course announcements and for homework submission. Otherwise, all course information will be on this webpage, and any questions about course logistics or content should be asked via Discord. You can find the invite to join the Discord on Canvas.
Group problem solving sessions
In the first half of the course, we will be working through concepts in computer science theory. The best way to understand these concepts is through practice and discussion. In order to provide you as much support as possible, I will schedule and lead two weekly problem sessions where we will work through problems that are similar to the homework that you turn in every Monday. These are not strictly required, but you earn some participation points by attending, and if you attend these problem sessions the homework should be much easier to complete. Solutions will be shared after the problem sessions are completed. The problem session for Monday’s lecture will be scheduled outside of class, and the problem session for Wednesday’s lecture will be held during the Friday lecture time.
Please fill out this poll during the first week of class to help schedule the problem session for Monday lecture: https://whenisgood.net/ayijc9t.
Textbook
There is no required textbook for this course; notes from various sources will be on the schedule above for each lecture as needed. However, if you would like to consult additional resources, I can recommend a number of popular textbooks in this field, many of which are available for free online.
- Jeff Erickson’s Algorithms Notes. We follow the Models of Computation notes at the bottom of the page in the first half of this class.
- Avi Wigderson’s Mathematics and Computation. Avi is one of the most prolific computer science theorists of the modern age. He won the ACM Turing award in 2023. His book offers a broad perspective on computer science theory and has inspired some changes to our course for 2025.
- Sipser’s Introduction to the Theory of Computation. The textbook on computer science theory, used in many computer science courses. Not officially available for free, but I bet you can figure out how to find a pdf online.
Lecture videos
Lectures will be recorded and available to watch after class. However, if there are technical difficulties recording a lecture, it will not be re-recorded, so come to class when you can to make sure that you do not miss course content or announcements. Videos can be found in the Panopto folder.
PrairieLearn homework
Part of your homework grade (at least for the first half of the class) will come from auto-graded “guided” problem sets on a platform called PrairieLearn. You can try these problems as many times as you would like until you get the right answer, because they automatically generate new variations of the problem each time. For some assignments, you will need to complete multiple variations of the same problem to get full credit. Make sure you look at the “Total points” value on the right-hand side of the screen. By completing these assignments before attempting the written homework, you can get feedback about whether you are understanding what we are looking for in the homework. You can access the guided problem sets here. You should select either the “Sign in with Google” or the “Sign in with Microsoft” option. You can log in with any Google or Microsoft email account; your UM email will work as a Microsoft account if you prefer.
Office hours
I have office hours on Mondays from 11-12 and Thursdays from 3:30-4:30 in my office, Social Sciences 420.
Paper/chapter presentation and writeup rubrics
In the second half of the class, on Mondays and Wednesdays we will learn a new advanced algorithm topic and on Fridays a group will lead a presentation of a book chapter or research paper related to that topic. Presenters should follow these instructions. On days that a student is not a presenter, they must submit a paper/chapter summary to Canvas according to these instructions.
Grading
You will be graded on the following:
- 20% participation (15 points for attending lecture sessions; 5 points for attending problem sessions during the theory section; 5 points for feedback after presentations during algorithms section; 5 points for check-out activity during finals week TBD–note that this sums to more than 20, so you do not need to get all of the points to get full credit for this category)
- 20% prairie learn homework problems (during theory portion) (7 assignments)
- 20% written homework problems (during theory portion) (6 assignments)
- 20% paper presentations (during algorithms portion) (each student participates in approximately two)
- 20% paper summaries and problem sets (during algorithms portion) (TBD)
Note that there are no tests!
After any curving, your grade will be determined by your total score as follows: 93+: A; 90+: A-; 87+: B+; 83+: B; 80+: B-; 77+: C+; 73+: C; 70+: C-; 67+: D+; 63: D; 60: D-.
Bonus
There are two ways to earn bonus points in this class.
Catch errors in course materials
If you find an error in any of the course materials (typo, incorrect statement, etc.), make a post in Piazza with the errors-in-course-material
tag. If it is really an error, you get a quarter of a point. Only the first person to post about an error gets the points. You can earn a max of 1 total point toward your 100 for the course (for four errors).
Course survey and evaluation
If 100% of the class completes the mid-semester course survey, the whole class gets 1 bonus point. Same goes for the course evaluation at the end of the semester.
Collaboration policy
For homework problems, you may work in groups of up to three and turn in a single writeup as a group. Group work on paper summaries is not allowed.
Additionally, you may use any resource available to you, as long as you write up your answers in your own words and properly cite your source. Some examples of resources you might use:
- other students in the class
- other students not in the class
- other instructors
- textbooks or online notes
- anything you find on the internet
- ChatGPT or other AI tools
Please ask if you have questions about how to properly cite a source or a collaborator.