About the course and the textbook:
This is a course on algorithms and data structures, based on my textbook, Efficient Algorithms.
The textbook will be in three parts.
Part 1 covers the fundamentals of algorithms and is suitable for an undergraduate algorithms course.
Topics covered in Part 1 include the mathematical foundations of algorithm analysis, recursion, divide-and-conquer, dynamic programming, fundamental data structures, and graph algorithms.
Part 1 of the textbook is freely available for download below. A printed version can also be obtained from Amazon.
Gopal Pandurangan. Efficient Algorithms (Part 1: Fundamentals). pdf
Part 2 covers advanced topics and is suitable for a graduate algorithms course.
Topics covered in Part 2 include randomization techniques, randomized algorithms, probabilistic analysis of algorithms, hashing, number-theoretic algorithms, advanced graph algorithms (including maximum flow and minimum cut), theory of NP-completeness, Linear Programming, and approximation algorithms.
Part 2 will be available soon.
Part 3 covers specialized topics and is suitable for an advanced graduate algorithms course.
Topics covered in Part 3 include combinatorial algorithms, network algorithms, online algorithms, matrix algorithms, distributed algorithms, parallel algorithms, machine learning algorithms, and quantum algorithms.
Part 3 will be available later.