๐ Course Overview
What does Sudoku have in common with debugging, scheduling exams, and routing shipments? All of these problems are provably hard โ no one has a fast algorithm to solve them. But in reality, people are quickly solving these problems on a huge scale with clever systems and heuristics!
In this minicourse, weโll explore how researchers and organizations like Microsoft, Google, and NASA are solving these hard problems, and weโll get to use some of the tools theyโve built!
3.63 / 4
Course
3.88 / 4
Instructor
1.71 / 4
Difficulty
2.00 / 4
Workload
๐งญ Logistics
Instructor: Ishaan Lal
Location: Walnut 401B
Time: Thurs 7:00-8:30 PM
Course Sites: Please sign up for Ed and Gradescope through Canvas!
๐ Enrollment
Please request permission through Path! Permits to register will be granted periodically. Even if you aren't officially enrolled yet, feel free to show up to the first class!
CIS 1210 is a prerequisite for CIS 1921. You are expected to be fairly comfortable with programming and familiar with graphs. Experience with Python is helpful but not necessary. Knowledge of NP-completeness is not necessary but useful to motivate the course.
๐ Grading
Homeworks will consist of 4.5 medium-size programming projects, assigned roughly biweekly.
You will work in pairs on a final project of your choosing — you might choose to solve a practical problem using the tools weโll learn, implement a solver with modern techniques, or even explore new methods of your own!
Homework: 44%
Final Project: 38%
Quizzes: 10%
Attendance: 8%
๐ Teaching Staff
๐ Schedule
Week | Date | Lecture | Additional Material | Homework |
Syllabus | ||||
1 | 1/16 | Intro to Hard Problems: Lecture Slides and Lecture Notes | Setup and HW0: Finger Exercises (due Monday, 1/27 by 11:59pm) | |
2 | 1/23 | Solvers & Encoding: Lecture Slides and Lecture Notes | Graph coloring Code | HW1: Sudoku (due Monday, 2/10 by 11:59pm) |
3 | 1/30 | Algorithms for SAT: Lecture Slides and Lecture Notes | ||
4 | 2/6 | Modern SAT Techniques: Lecture Slides | HW2: PennSAT (due Monday, 2/24 by 11:59pm) |