About This Course
This is a course on the design and analysis of algorithms, aimed at graduate students who have
not taken an theory-oriented algorithms course like CS 374. Graduate students who have already taken a theory-oriented algorithms course are encouraged to consider taking CS 473 inmstead of this course.
This is the first pilot offering of this course. The Siebel School's master's programs have grown significantly over the last few years. As the programs have grown, we have noticed an increasing number of graduate students who are interested in learning algoriths but struggle in our existing graduate algorithms courses, starting with CS 473. Our goal is to provide rigorous algorithms course that better matches our graduate students' diverse backgrounds and interests.
- Instructors
- Chandra Chekuri (shekuri@illinois.edu)
Jeff Erickson (jeffe@illinois.edu)
- Lectures
- Tuesdays and Thursdays, 2:00-3:15
114 Transportation Building
- Office Hours
- Chandra: Thu 11-12, Fri 2:00-3:15 (on Zoom, link TBA)
Jeff; Mon 4-5, Wed 11-12
In-person office hours are held in the open area outside 3304 Siebel
- Topics
- The course will cover a wide range of fundamental algorithm design and analysis techniques. Here is an tentative (and admittedly ambitious) list of topics; see the lecture schedule for more information.
- Basic algorithm analysis
- Review of basic data types and data structures
- Loop invariants
- Recursion: Divide and conquer, backtracking
- Dynamic programming
- Greedy algorithms
- Graph algorithms
- Reductions
- Randomization and hashing
- Local search algorithms
- Flows/matchings and their applications
- Optimization
- Intractability
- Intended Audience
-
Graduate students who have not previously taken CS 374 or an equivalent theory-oriented algorithms course. If you're not sure, please ask us!
- Degree Requirements
-
This course satisfies the "Theory and Algorithms" breadth requirement for the regular
MS and
MCS
programs, but not for the five-year
BS/MS
and
BS/MCS
programs. Students in the 5-year programs who are interested in algorithms should take CS 473.
Because this is a 400-level course, it does not count toward the requirement in all graduate programs for 500-level credits.
- Graduate students who have already taken a theory-oriented algorithms course as an undergrad should consider CS 473 instead. In particular, if you've actually taken CS 374, this is not the right class for you.
- At least for now, we are restricting enrollment in this class to graduate students. Undergraduates interested in algorithm should take CS 374.
- Students cannot receive credit for both this course and CS 374. This course cannot be used to satisfy any undergraduate degree requirements. In particular, this course des not satisfy the CS/ECE 374 degree requirement in computer science, computer engineering, Math&CS, Stat&CS, or any CS+X major.
- Prerequisites
-
Discrete mathematics (CS 173 or equivalent), data structures (CS 225 or equivalent), non-AI-assisted programming experience, and graduate standing. We will briefly review background material as necessary, but we assume that students have the intellectual maturity to fill in remaining gaps.
- Coursework
-
Grades are based on weekly written homeworks, two midterm exams, and a final exam. See the grading policies for more information about how each type of coursework contributes to the final course grade.
Class Resources
- Web site
- All course materialsâ€â€Âannouncements, course policies, detailed schedule, lecture notes, lecture videos, homeworks, homework and exam solutionsâ€â€Âcan be found here. Hey, look! You found it!
- Reading
-
There is no required textbook. A significant fraction of the class will follow Jeff's Algorithms textbook and related course notes, which are freely available online. Book chapters for almost all lecture topics are directly available on the schedule page; these will be revised and updated as the semester progresses. For topics that Jeff's textbook does not cover, we will provide links to alternative free references.
- Videos
-
We plan to record all lectures. Lecture videos should appear on MediaSpace at most a day after each lecture. Lecture videos from several past algoruthms courses are linked from a separate page.
- Gradescope
- We are using Gradescope for submission and grading of both homeworks and exams. Everyone who registered before the semester started should already have access to the course's Gradescope site. Students who add the course later can enroll themselves using the self-enrollment code
X8Z4V5.
- Ed Discussion
- We are using Ed Discussion for online questions and announcements. Anyone can join the Ed site; no access code is required. Please post questions on any course-related topic to Ed rather than emailing the course staff. You can even post your questions and answers anonymously.
- Etc.
- We've collected a long list of other useful resources on a separate page.