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

offering time

Fall 22


Computer Science


Linh Huynh(V)


Course code


Discover the future awaiting
you at Fulbright

Learn how to apply

This site uses cookies to provide a better user experience.

Essential cookies are active by default and are necessary for the proper functioning of the website. Analytics cookies gather anonymous information for us to enhance and monitor the site. Performance cookies are employed by third parties to optimize their applications (such as videos and maps) that are embedded within our website. To accept all cookies, click 'I accept.' Alternatively, choose your preferences for analytics and performance cookies, then select 'Close cookie control.'