Table of Contents

Design and Analysis of Algorithms (CS500) in Spring 2023 at KAIST's School of Computing

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):

Synopsis

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.

Administration:

Lecturer: Martin Ziegler (use only this email address!)

Classroom: Online

Schedule: Tue+Thu 10h30~11h45am KST

Language: English only

Teaching Assistants: 현지훈 and 박정호

Homework: Handwritten individual solutions (English only) and programming assignments in ELICE.

Grading: 40% attendance/quizzes, 20% homework, 20% midterm, 20% final exam

Midterm: April 20, 9h00~11h45 in E3-1 #1501

Final exam: June 15, 9h00~11h45 in E3-1 #1501

Prerequisites: CS204 (Discrete Mathematics), CS300 (Introduction to Algorithms)

Literature

Syllabus/Slides

0. Summary (PPT, PDF)
1. Introduction (PPT, PDF)
2. Tree Data Structures (PPT, PDF)
3. Average-Case Analysis (PPT, PDF)
4. Amortized Analysis (PPT, PDF)
5. Randomized/Expected Analysis (PPT, PDF)
6. Online/Competitive Analysis (PPT, PDF)
7. P/NP Intermission (PPT, PDF)
8. Approximation (PPT, PDF)
9. parallel Time (PPT, PDF)
10. Memory (PPT, PDF)

E-Learning: