All Computer Science is based on the concept of an efficient algorithm: as opposed to a program or a heuristic. We thus call these 'virtues' and features distinguishing CS from EE (Electrical Engineering):
Building on undergraduate CS300 (Introduction to Algorithms), the graduate-level course CS500 revolves around
advanced aspects of algorithms.
More specifically we discuss, design, and analyze algorithms with respect to various cost measures beyond traditional (=sequential) runtime,
such as
And we discuss, design, and analyze algorithms in various modes beyond the traditional worst-case, such as
The practical impact of these algorithms is demonstrated in selected implementations.
Lecturer: Martin Ziegler (use only this email address!)
Classroom: E11 #311
Schedule: Tue+Thu 10h30~11h45am KST
Language: English only
Teaching Assistants: 허경 and 민승기
Homework: Handwritten individual solutions (English only) and programming assignments in ELICE.
Grading: 20% attendance/quizzes, 20% homework, 30% midterm, 30% final exam
Midterm: April 18, 9h00~11h45 in E11 #304
Final exam: June 13, 9h00~11h45 in E11 #304
Prerequisites: CS204 (Discrete Mathematics), CS300 (Introduction to Algorithms)
1. Recap, Intro & Overview (PPT, PDF)
9. Parallel Algorithms (PPT, PDF)
10. Memory-Efficient Algorithms (PPT, PDF)
5. Randomized/Expected Analysis (PPT, PDF)
3. Average-Case Analysis (PPT, PDF)
2. Tree Data Structures (PPT, PDF)
4. Amortized Analysis (PPT, PDF)
With over 100 students enrolled, please refrain from contacting me by personal email.
Instead use KLMS to reach out to the TAs (preferred),
or write to the dedicated email address cs500@theoryofcomputation.asia.