Upon successful completion of this course, students are expected to be able to identify basic ideas about algorithms; describe the concepts of time and space complexity and the big-O notation; explain the main approaches to design efficient algorithms; analyze complexity measures of algorithms; demonstrate a familiarity with major algorithms and data structures; apply important algorithmic design paradigms and methods of analysis; design a system appropriate to a given computing model; and apply theoretical knowledge in practice.
The course provides students with fundamental techniques for designing and analyzing algorithms, including an asymptotic analysis; divide-and-conquer algorithms; greedy algorithms; data structures; dynamic programming; and graph algorithms. Upon successful completion of this course, students are expected to be able to understand basic ideas about algorithms, understanding the concepts of time and space complexity and the big-O notation, understand the main approaches to design efficient algorithms, and analyze the complexity measures of algorithms.
Prerequisite(s): Program Design Methods
Published at :