Back to Projects

Computer Science Coursework

CPSC 221 Hash Tables Lab

A UBC CPSC 221 C++ lab focused on hash-table implementation. The folder includes separate chaining, linear probing, iterators, resizing behavior, and text-analysis applications such as word counting and anagram finding.

Period

Mar 2025

Tools / Tech

C++Hash TablesSeparate ChainingLinear ProbingIteratorsTesting

Why I built it

The goal was to understand how collision handling, probing, iterators, and resizing affect correctness in a compact data structure.

Links

What it includes

  • Implements separate chaining and linear probing hash table variants.
  • Uses iterator code and resizing logic to maintain table behavior.
  • Applies hash tables to word counting, character counting, and anagram-style text tasks.

What I worked on

  • Completed the C++ implementation myself inside the provided course scaffolding.
  • Debugged collision handling and iterator behavior under tests.
  • Kept the project framed as data-structure coursework rather than product development.

What I Learned

  • Learned how small probing and resizing mistakes can change lookup behavior.
  • Practiced connecting abstract hashing concepts to concrete C++ code.
  • Built better habits around testing data-structure invariants.