The course Algorithm aims to provide students with techniques to design an algorithm, prove its
correctness, and analyze its efficiency. For algorithm design, three common techniques
(divide-and-conquer, greedy, and dynamic programming) are introduced and illustrated by
common problems in practice. For algorithm correctness proof, the students will learn how to
use loop variants and mathematical induction to prove. For algorithm efficiency analysis, the
students will gain familiarity with worst-case running time analysis and asymptotic analysis. In
addition, common graph algorithms are also introduced and analyzed. Finally, the students will
learn how to classify computational problems into some basic complexity classes such as P, NP,
and NP-complete
Introduction
offering time
Fall 22
Major
Computer Science
Faculty
Linh Huynh(V)
Category
Course code