The objective of this course is to provide a comprehensive and detailed study of the design and analysis of algorithms. The course aims at discussing state of the art algorithms and related data structures that are crucial to achieve satisfactory levels of performance in industry and research since the processor speed-ups we have been enjoying are coming to an end and better algorithms are needed in order to cope with the increasing demand of data processing.
Course program
The role of algorithms in computing
Master theorem
Probabilistic analysis, randomized algorithms
Median and order statistics
Red-black trees
Augmenting data structures
Dynamic programming
Greedy algorithms
Amortized analysis
Some number-theoretic algorithms
String matching
NP-complete problems
Approximation algorithms
Learning algorithms, decision trees
Other information
Past take-home midterm exams questions can be found here CE601 MIDTERM 2016.