CE 202 – Algorithms
CE 202 – Algorithms; Weekly hours: 2+1, ECTS: 6
This course aims to introduce the classic algorithms in various domains, and techniques for designing efficient algorithms. It covers fundamental ideas in algorithms; and teaches the students to design algorithms, prove their correctness, and analyze their efficiency. Emphasis is on the cost associated with different algorithms, studying the basic mathematical tools for analyzing algorithm cost, exploring design heuristics and how the cost can be affected by subtle choices. During the computer labs, C programming language is going to be used. After completing this course, students will be able to: Prove the correctness and analyze the running time of the basic algorithms for those classic problems in various domains; Apply the algorithms and design techniques to solve problems; Analyze the complexities of various problems in different domains; Using C programming language to implement algorithms. The role of algorithms in computing, analysing and designing algorithms; Growth of functions; Asymptotic notations; Standard notations and common functions; The substitution method and recursion-tree method; The master method; Probabilistic analysis and randomized algorithms; Sorting and order statistics algorithms; Binary search trees; Randomly build binary search trees; Red-black trees.