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.