πŸͺ TechCookies
HomeDSASystem DesignMy Progress
Free
Log inStart free
TechCookies β€” Practice Β· Learn Β· PrepareTechCookies β€” Practice Β· Learn Β· Prepare
ConceptsPracticeSD challengesPricingPrivacyTermsContact
Β© 2026 TechCookies
⬑DSA Track
FoundationFree
Ξ©Big O & Complexity
β–€ArraysπŸ”’
β‡ŒTwo-pointerπŸ”’
β§–Sliding windowπŸ”’
↩Recursion & call stackπŸ”’
#Hash mapsπŸ”’
CorePro
β†’Linked listsπŸ”’
⊟Stacks & queuesπŸ”’
βŠ•Binary searchπŸ”’
⬑Trees β€” BFS & DFSπŸ”’
β¬’Graphs β€” BFS & DFSπŸ”’
AdvancedPro
β–¦Dynamic programmingπŸ”’
β©“Heaps & priority queuesπŸ”’
⊳TriesπŸ”’
⊌Union-FindπŸ”’
βŠ›Dijkstra's algorithmπŸ”’
↑Topological sortπŸ”’
⊞All problems
DSA TrackPattern-first curriculum

Learn patterns, not problems.

48 concepts from Big O to Dynamic Programming. Interactive step-through visualisations, pattern recognition quizzes, and guidedΒ β†’Β expert practice modes.

Start learning β†’Browse all problemsMy progress
⬑ 48 conceptsβ—‰ 14 patterns⊞ 120+ problemsπŸƒ SRS never-forget
6
Foundation
Free
5
Core
Pro
6
Advanced
Pro
120+
Problems
14
Patterns
β‡Œ

Foundation

FreeΒ· 6 concepts
Ξ©
beginnerFree
Big O & Complexity
Why algorithm efficiency matters. Time vs space tradeoffs and how to read Big-O notation.
Not started Β· 6 sections
β–€
beginnerFree
Arrays
The foundation of everything: contiguous memory, index access, and in-place manipulation.
πŸ”’ Complete prerequisites first
β‡Œ
beginnerFree
Two-pointer
Paired pointers solving sorted-array pair problems in O(n) β€” the first pattern that feels like magic.
πŸ”’ Complete prerequisites first
β§–
beginnerFree
Sliding window
A window that grows and shrinks over an array to find optimal subarrays in O(n).
πŸ”’ Complete prerequisites first
↩
beginnerFree
Recursion & call stack
How functions call themselves: base cases, the call stack, and why recursion maps naturally to trees.
πŸ”’ Complete prerequisites first
#
beginnerFree
Hash maps
O(1) average-case lookup that turns O(nΒ²) nested loops into O(n) single passes.
πŸ”’ Complete prerequisites first
⬑

Core

ProΒ· 5 concepts
β†’
intermediatePro
Linked lists
Fast/slow pointer, reversal in-place, and cycle detection β€” the classics.
πŸ”’ Pro required to access
⊟
intermediatePro
Stacks & queues
Monotonic stacks for next-greater problems, queues for BFS β€” when order of processing matters.
πŸ”’ Pro required to access
βŠ•
intermediatePro
Binary search
Binary search on the answer β€” not just arrays. Recognise the search space.
πŸ”’ Pro required to access
⬑
intermediatePro
Trees β€” BFS & DFS
Level-order vs depth-first. The stack and queue hidden beneath each traversal.
πŸ”’ Pro required to access
β¬’
intermediatePro
Graphs β€” BFS & DFS
Connected components, shortest paths, and island problems β€” graphs are just trees with cycles.
πŸ”’ Pro required to access
β—ˆ

Advanced

ProΒ· 6 concepts
β–¦
advancedPro
Dynamic programming
Recognise overlapping subproblems. Top-down memoisation β†’ bottom-up tabulation.
πŸ”’ Pro required to access
β©“
advancedPro
Heaps & priority queues
K-th largest, merge K sorted lists β€” heap gives O(log n) min/max in O(1).
πŸ”’ Pro required to access
⊳
advancedPro
Tries
Prefix trees for autocomplete and word search problems β€” O(L) lookup.
πŸ”’ Pro required to access
⊌
advancedPro
Union-Find
Disjoint-set union for dynamic connectivity β€” near-O(1) per operation.
πŸ”’ Pro required to access
βŠ›
advancedPro
Dijkstra's algorithm
Shortest path in weighted graphs β€” BFS meets a min-heap.
πŸ”’ Pro required to access
↑
advancedPro
Topological sort
Task scheduling and dependency resolution in directed acyclic graphs.
πŸ”’ Pro required to access
Ready to unlock everything?
Free
  • βœ“6 Foundation concepts
  • βœ“TypeScript only
  • βœ“Step-through visualisers
  • βœ“Pattern recognition quizzes
  • βœ“Notes + SRS flashcards
Pro
TechCookies Pro
  • βœ“All 17 concepts unlocked
  • βœ“Java Β· Python Β· Go + TypeScript
  • βœ“Expert mode β€” hints disabled
  • βœ“120+ practice problems
  • βœ“Weak-area detection
Upgrade to Pro β†’