The course covers core material in data structures and algorithm design, and also helps students prepare for research in the field of algorithms. The topic covered will include Algorithm Analysis, Models of Computation: Random Access Machines, Stored Program Model and Turing Machine, Limits to Computation and Hashing. Due to the limitations of sequential algorithms, students will learn how to use parallel algorithms.
This course aims to introduce students to the design of algorithms as a means of problem-solving. Students will learn how to analyze the complexity of algorithms. Major algorithm design techniques will be presented and illustrated with fundamental problems in computer science and engineering. Students will also learn the limits of algorithms and how there are still some problems for which it is not known whether there exist efficient algorithms.
Upon the successful completion of this course, students should be able to:
|Class Participation||10 Marks||10%|
|Final Examination||60 Marks||60%|