CS 70

Homework 8: Pokemon or Tech Startup? Let's Hash it Out!

  • Dog speaking

    I have an announcement to make! I recently built an app for a hackathon, and this summer I'm going to turn it into a startup!

  • LHS Cow speaking

    That's amazing news, Dog.

  • Dog speaking

    All I need is a catchy name to make it go viral. It's a math app, so I'm thinking..."Plusle".

  • Goat speaking

    ...Hate to break it to ya, but "Plusle" is the name of a Pokemon.

  • Dog speaking

    Seriously???

  • LHS Cow speaking

    You know, this reminds me of an image that went viral back when I was a young calf...

Back then it was easier to go viral I guess

  • Dog speaking

    Well, I could look up a list of Pokemon to avoid picking one of those names. But I'd really rather not come up with a name that sounds like a Pokemon (what if Nintendo coincidentally takes it later)?

  • Cat speaking

    You know, I bet AI could help you with that.

  • LHS Cow speaking

    Indeed it can. Here's Gemini:

Gemini knows what's up

  • Duck speaking

    Using Gemini for this feels like overkill. I wonder if we could make our own, smaller AI just for this task.

  • LHS Cow speaking

    Funny you say that...

In this eighth and final homework, you'll explore how hash tables can be used to implement a simple machine learning algorithm that can classify a never-before-seen text as either "sounds more like a Pokemon" or "sounds more like software"! Specifically, you will implement your own hash table class to represent an associative data structure (like a Python dict). In doing this, you'll get to practice:

  • Analyzing hash functions and choosing the best one for the task.
  • Implementing a hash table using separate chaining.

Let's Go!

Both team members should click here to accept the assignment:


Resources

As always, we encourage you to ask (and answer) questions on Piazza as you work!


Grading

Completing this assignment is worth 100 points, and will be graded as follows:

  • 5 points: Planning (Completeness, not correctness)
  • 13 points: Repository Status (Makefile, code compiles, correct files submitted, no cpplint errors)
  • 2 points: All Team Members Listed on Gradescope Submission
  • 20 points: Coding Style
  • 25 points: Writing Tests
  • 30 points: Implementation Correctness
  • 5 points: Hash-Function Choice Justification

(When logged in, completion status appears here.)