Quick Reference
Computer Science Glossary for Coding Interviews
Essential computer science glossary and technical terms explained with visual intuition, complexity analysis, code examples in 4 languages, and practice problems.
Binary Search
O(log n)A divide-and-conquer algorithm that finds a target in a sorted array by repeatedly halving the search space.
Breadth-First Search (BFS)
O(V + E) where V = vertices, E = edgesA graph/tree traversal that explores all neighbors at the current depth before moving to the next level, using a queue.
Depth-First Search (DFS)
O(V + E) where V = vertices, E = edgesA graph/tree traversal that explores as deep as possible along each branch before backtracking, using recursion or a stack.
Dynamic Programming (DP)
Depends on the number of states × time per state (usually O(n) to O(n²) for interview problems)An optimization technique that solves complex problems by breaking them into overlapping subproblems and storing results to avoid redundant computation.
Why Precise Technical Language Wins Senior Engineering Offers
In software engineering interviews, the boundary between an L4 (Mid-level) and L5/L6 (Senior/Staff) rating frequently comes down to vocabulary precision. When a candidate says "we use a helper table to remember stuff we already did" vs. "we apply memoization to cache subproblem solutions with optimal substructure", interviewers instantly infer system-level rigor.
State Invariants vs. Implementation
Focus on what the algorithm maintains, not just the code mechanics. For instance, describe a heap by its heap-order invariant (parent ≤ child in min-heap) rather than merely an array with sift-up operations.
Amortized vs. Worst-Case Bounds
Distinguish between single-operation cost and sequence cost. A dynamic array append is O(1) amortized but O(N) worst-case when doubling capacity; a hash map lookup is O(1) average but O(N) under worst-case hash collisions.
How to Study the Glossary Entries
Each concept in this index includes an intuitive definition, mathematical complexity proof, implementation across 4 languages (Python, Java, JavaScript, C++), and canonical interview problems. Review 2 entries daily before practicing corresponding patterns to solidify theoretical foundations.