Courses / AADS

23CS03HF · Python · Undergraduate, after a first data structures course

Advanced Algorithms and Data Structures

Balanced trees, string matching, graphs, design techniques and NP-completeness. 34 topics, each with a picture-first explanation, a step-by-step trace, a short Python implementation, practice problems, a self-marking quiz and GATE-style questions with worked solutions.

  • 34topics
  • 34quizzes
  • 136GATE-style questions
  • 15lab programs

The 34 topics

Course overview

Choose the right structure, and the right technique, and a hard problem becomes an easy one.

This course is about choosing and building the right tool for a computational problem:

Every topic page explains the idea with pictures first, then traces it step by step, then gives a short Python implementation you can run and change.

Course outcomes

CO You will be able to Level
CO1 Apply advanced data structures (balanced search trees, B-trees, segment and suffix trees, tries) and string-matching algorithms for efficient data organisation. Apply
CO2 Analyse real-world scenarios to choose and implement graph algorithms: traversal, shortest paths, spanning trees and network flow. Analyse
CO3 Examine problem requirements to choose between divide and conquer, greedy and dynamic programming, and implement the right one. Analyse
CO4 Analyse computational problems to decide whether backtracking, branch and bound or complexity-based arguments suit them. Analyse
CO5 Implement and analyse advanced algorithms and data structures in working programs (the lab programs). Analyse

Syllabus

Textbooks

Topic pages refer to these books by number.

  1. Textbook 1: Introduction to Algorithms, 3rd edition, The MIT Press, 2009.
  2. Textbook 2: Fundamentals of Computer Algorithms, 2nd edition, University Press, 2008.
  3. Textbook 3: Data Structures and Algorithm Analysis in C, 2nd edition, Pearson, 2010.
  4. Textbook 4: Fundamentals of Data Structures in C, 2nd edition, 2015.
  5. Textbook 5: Design and Analysis of Algorithms, Oxford University Press.

Reference books: 1. The Algorithm Design Manual, 2nd edition, Springer, 2008. 2. Data Structures and Algorithms in Python, Wiley, 2013. 3. The Art of Computer Programming, 3rd edition, Addison-Wesley, 1997. 4. Data Structures and Algorithms, Pearson Education, 2003.

Free online courses