The course includes: Mathematical background、Basic analysis techniques、Computational complexities、Worst case analysis and average case analysis、Basic Design Paradigms、Divide and conquer、Greedy methods、Dynamic programming、Probabilistic algorithms、Computational Complexity、Linear reduction of problems、NP-completeness。