Textbook:
T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms (2nd Edition).
Course objectives:
This course covers the basic concepts and knowledge on algorithm analysis - a fundamental issue in computer science. The primary objective of this course is to build up a mathematical and analytical foundation for analyzing any algorithm.
The main Chapters :
A. Introductory section
1. Class Guidelines and Policies
2. Review of some mathematical concepts
B. math foundations
3. Growth of functions
4. Summations
5. Recurrences
6. Sets, functions, graphs and trees
7 Counting and probability
C. Sorting
8. Heapsort
9. Quicksort
10 Sorting in linear time
D. Elementary data structures
11. Stacks and queues
12. linked lists
13. Pointers implementing
14. Representing root trees
E. Hash tables
F. Binary search trees
G. Elementary graph algorithms
H. Advanced topics
Prerequisites: A minimal knowledge in a programming language, data structures, high school maths and discrete maths.