Skip to content

Computer Science · DSA Lab

Understand the pattern before you write the code.

Programming and DSA taught as concepts first — then visualised, coded and practised with real problems.

two_sum.py
def two_sum(nums, target):
    seen = {}
    for i, n in enumerate(nums):
        need = target - n
        if need in seen:
            return [seen[need], i]
        seen[n] = i
✓ Accepted · 9/9 tests passed

Learn the concepts

Guides that explain each data structure, with code in Python, JavaScript, Java and C++.

Learning paths

Concept lessons, visualisation and coding problems.

Arrays & Strings

Traversal, two pointers, sliding window, prefix sums.

10 guided problems

Linked Lists

Nodes, pointers, reversal and fast/slow pointers.

10 guided problems

Stacks & Queues

LIFO/FIFO, monotonic stacks and deque patterns.

10 guided problems

Hashing

Hash maps, sets, frequency counting and constant-time lookup.

10 guided problems

Searching & Sorting

Binary search, partitioning, stable sorting and inversion counting.

10 guided problems

Recursion & Backtracking

Recursive state, decision trees, pruning and exhaustive search.

10 guided problems

Trees & Graphs

BFS, DFS, recursion and topological order.

10 guided problems

Heaps & Priority Queues

Top-k selection, priority scheduling and multiway merging.

10 guided problems

Tries

Prefix trees, autocomplete and dictionary-guided search.

10 guided problems

Greedy & Intervals

Locally optimal choices, scheduling, merging and reachability.

10 guided problems

Bit Manipulation

Masks, XOR, shifts and bitwise optimisation.

10 guided problems

Dynamic Programming

Memoisation, tabulation, state transitions and optimisation.

10 guided problems

Strings

Character frequencies, pattern matching and palindromic structure.

10 guided problems

Two Pointers & Sliding Window

Opposing pointers and fixed or variable windows over ordered data.

10 guided problems

Matrices & 2-D Arrays

Layer traversal, coordinate transforms and sorted-grid search.

10 guided problems

Math & Number Theory

GCD, prime sieves, modular arithmetic and fast exponentiation.

10 guided problems

Union-Find

Disjoint sets, component counting and incremental connectivity.

10 guided problems

Advanced Trees

Fenwick trees, segment trees and binary lifting for tree queries.

10 guided problems