DSA Progress Tracker

Author: aryasree-arCreated Jan 15, 2026Updated Jul 2, 2026

Progress Tracker

Complete Git & GitHub Course

  • Complete Git & GitHub Course

Introduction to Programming

  • Introduction to Programming
    • Types of languages
    • Memory management
    • Flow of the program
    • Flowcharts
    • Pseudocode

Introduction to Java

  • Introduction to Java
    • Introduction
    • How it works
    • Setup Installation
    • Input and Output in Java
    • Conditionals & Loops in Java
      • if-else
      • loops
      • Switch statements
    • Data-types
    • Coding best practices

Functions

  • Functions
    • Introduction
    • Scoping in Java
    • Shadowing
    • Variable Length Arguments
    • Overloading

Arrays

  • Arrays
    • Introduction
    • Memory management
    • Input and Output
    • ArrayList Introduction
    • Searching
      • Linear Search
      • Binary Search
      • Modified Binary Search
      • Binary Search on 2D Arrays
    • Sorting
      • Insertion Sort
      • Selection Sort
      • Bubble Sort
      • Cyclic Sort
      • Count Sort
      • Radix Sort
    • Pattern questions

Strings

  • Strings
    • Introduction
    • How Strings work
    • Comparison of methods
    • Operations in Strings
    • StringBuilder in Java
    • StringBuffer

Maths for DSA

  • Maths for DSA
    • Introduction
    • Complete Bitwise Operators
    • Range of numbers
    • Prime numbers
    • Sieve of Eratosthenes
    • Newton's Square Root Method
    • Factors
    • Modulo properties
    • Number Theory
    • HCF / LCM
    • Euclidean algorithm
    • BigInteger & BigDecimal

Recursion

  • Recursion
    • Introduction
    • Flow of recursive programs - stacks
    • Why recursion?
    • Tree building of function calls
    • Tail recursion
    • Sorting
      • Merge Sort
      • Quick Sort
    • Backtracking
      • N-Queens
      • N-Knights
      • Sudoku Solver
      • Maze problems
    • Recursion String Problems
    • Recursion Google, Amazon Questions
    • Recursion Array Problems
    • Recursion Pattern Problems
    • Subset Questions

Space and Time Complexity Analysis

  • Space and Time Complexity Analysis
    • Introduction
    • Comparisons of various cases
    • Solving Linear Recurrence Relations
    • Solving Divide and Conquer Recurrence Relations
    • Big-O, Big-Omega, Big-Theta
    • Little Notations
    • Get equation of any relation
    • Complexity discussion of problems
    • Space Complexity
    • NP-Completeness Introduction

Object Oriented Programming

  • Object Oriented Programming
    • Introduction
    • Classes & instances
    • this keyword
    • Properties
    • Inheritance
    • Abstraction
    • Polymorphism
    • Encapsulation
    • Overloading & Overriding
    • Static & Non-Static
    • Packages
    • Access Control
    • Interfaces
    • Abstract Classes
    • Annotations
    • Singleton Class
    • final, finalize, finally
    • Object Cloning
    • Object Class
    • Generics
    • Exception Handling
    • Collections Framework
    • Vector Class
    • Lambda Expression
    • Enums

Linked List

  • Linked List
    • Introduction
    • Singly + Doubly + Circular
    • Fast and slow pointer
    • Cycle Detection
    • Reversal of LinkedList
    • Linked List + Recursion

Stacks & Queues

  • Stacks & Queues
    • Introduction
    • Push efficient
    • Pop efficient
    • Queue using Stack / Stack using Queue
    • Circular Queue
    • Interview problems

File handling

  • File handling

Trees

  • Trees
    • Introduction
    • Binary Trees
    • Binary Search Trees
    • Interview questions
    • DFS
    • BFS
    • AVL Trees
    • Segment Tree
    • Fenwick Tree / BIT

Heaps

  • Heaps
    • Introduction
    • Theory
    • Priority Queue
    • Heapsort
    • Two Heaps Method
    • k-way merge
    • Top k elements
    • Interval problems

HashMap

  • HashMap
    • Introduction
    • Theory & comparisons
    • Limitations
    • Chaining
    • Probing
    • Huffman Coding
    • Karp-Rabin String Matching
    • Subarray Problems (Sliding Window, Two Pointer, Kadane)

Graphs

  • Graphs
    • Introduction
    • BFS
    • DFS
    • Components
    • MST
    • Kruskal
    • Prims
    • Dijkstra
    • Topological Sort
    • Bellman Ford
    • A* Pathfinding

Dynamic Programming

  • Dynamic Programming
    • Introduction
    • Recursion → DP → Iteration → Space optimized
    • 0/1 Knapsack
    • Subset Problems
    • Unbounded Knapsack
    • Subsequence Problems
    • String DP

Greedy Algorithms

  • Greedy Algorithms

Tries

  • Tries

Advanced Concepts

  • Advanced Concepts
    • Bitwise + DP
    • Extended Euclidean Algorithm
    • Modulo Multiplicative Inverse
    • Linear Diophantine Equations
    • Matrix Exponentiation
    • Mathematical Expectation
    • Catalan Numbers
    • Fermat’s Theorem
    • Wilson's Theorem
    • Euler's Theorem
    • Lucas Theorem
    • Chinese Remainder Theorem
    • Euler Totient
    • NP-Completeness

Multithreading

  • Multithreading

Square Root Decomposition

  • Square Root Decomposition

Source: kunal-kushwaha/DSA-Bootcamp-Java