Learn Data Structures and Algorithms

This section lists out the syllabus, the learning resources and Mock Tests to help you prepare for the data structures and algorithms Certification test. The resources that we list here are references that we have collected over the internet and some of them from our own website. While we do recommend these resources based on the inputs of our user community, we do not claim that these are the most authoritative Learning Resources about any topic in data structures and algorithms. Please feel free to find out what suits best to you.

We have also prepared a Mock Test for each level. A Mock Test is an open assessment contest that will help you assess yourself after you are ready with the topics. For each level we have different Mock Tests. These DSA contests will run forever.

Update:
If you are new to programming, you should start with our learn to code paths. They have curated content with lessons and practical problems to practice.

If you already know programming, start from our problem-solving or DSA learning paths from the learn catalog page.

Foundation

Syllabus:

The syllabus for Foundation level is mentioned below:

  • Basic Data Structures: Arrays, Strings, Stacks, Queues
  • Asymptotic analysis (Big-O notation)
  • Basic math operations (addition, subtraction, multiplication, division, exponentiation)
  • Sqrt(n) primality testing
  • Euclid’s GCD Algorithm
  • Basic Recursion
  • Greedy Algorithms
  • Basic Dynamic Programming
  • Naive string searching
  • O(n logn) Sorting
  • Binary Searching

Learning Resources:

Past Test:

Practice on the exact problems which had appeared in a past DSA Foundation level exam:

Mock Test:

Advanced

This level is intended to test that the one has a very good grasp of data structures and algorithms, and can solve most problems that arise in practice. You can expect problems from the following topics to come in the DSA exam.

Syllabus:

Everything in the Foundation Level, along with:

  • Heaps (priority queue)
  • Disjoint Set Union
  • Segment Trees
  • Binary Index Tree (Fenwick tree)
  • Trees (traversals, tree dynamic programming)
  • Finding Lowest Common Ancestors (O(log N) solution where N is number of nodes).
  • Graph Algorithms:
    • Finding connected components and transitive closures.
    • Shortest-path algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)
    • Minimum spanning tree (Prim and Kruskal algorithms)
    • Biconnectivity in undirected graphs (bridges, articulation points)
    • Strongly connected components in directed graphs
    • Topological Sorting
    • Euler path, tour/cycle.
  • Modular arithmetic including division, inverse
  • Amortized Analysis
  • Divide and Conquer
  • Advanced Dynamic Programming problems (excluding the dp optimizations which are added in expert level)
  • Sieve of Eratosthenes

Learning Resources:

Past Test:

Practice on the exact problems which had appeared in a past Advanced level exam:

Mock Test:

Note: These links have been curated to help the community learn Data structures and algorithms. But if you own some of the material linked to, and you would not like them to be here, please contact us, and we will remove it.