Project 4B: Wordnet (Design)

Lectures needed for this project:

  • Lecture 17 (Extends, Sets, Maps, and BSTs)
  • Lectures 21, 22 (Graph Traversals and Implementations)

Partner policy: No partners. Discussing ideas with other students is allowed, but code sharing is not allowed, and the solutions you submit should be your own work! More details on the policies page.

LLM policy: LLMs should not write any of the code that you turn in. See more info in the LLM policies page for more details.

In this project, you’ll design your approach to Wordnet, the rest of the NGordnet tool.

Task 0: Wordnet Spec

Before getting started, please read the Project 4C: Wordnet (k == 0) and Project 4D: Wordnet (k != 0) specs. You won’t be able to begin the next tasks without understanding the Wordnet spec first!

Task 1: Checkpoint

Project 4B: Wordnet Checkpoint is a conceptual assignment testing your understanding of Wordnet. We recommend completing this before designing your project.

Complete the Project 4B: Wordnet Checkpoint. You have unlimited submissions until the deadline and explanations will be shown upon entering the correct answers. You may not extend the checkpoint$^*$, as this is intended to help you get started on the rest of the project.

$^*$Students with DSP accommodations may extend the checkpoint

Task 2: Technical Design Doc

Project 4B: Wordnet Design is a design assignment for you to plan your approach for Wordnet before implementing it.

For your design document, you must include each of these components from the rubric below. An introduction to design documents and examples can be found in the Design Doc Guide.

  1. Data (20%): Describes how the data will be used.
  2. Data Structures (20%): Describes what data structures will be used with the data.
  3. Algorithms (20%): Describes what algorithms will be used with the data structures and data.
  4. Complexity (20%): Describes the expected time and space complexity of the program.
  5. Diagram (20%): Describes how the data, data structures, and algorithms work together. Must be a visual representation.

We’ll grade your design document on completion and effort, not correctness. The correctness of your final design is checked by running the autograder on your code. We will grade your design document by the end of the week of the deadline.

Your design document must be readable and typed aside from your diagram. Please include your diagram as a separate page upon submission. If your diagram doesn’t fit on one page, you may submit it as multiple pages. You may be deducted a format point penalty if you do not follow these instructions.

If you do not submit your design doc by the original deadline, we cannot guarantee that we’ll have it graded by the end of the week.

If you intend to work on this project during office hours, we may ask to see your design document to help understand your approach. As such, please put effort into this assignment! Grasping project requirements in the design phase will help immensely during the later implementation phases.

Write a design document for Wordnet and submit it to the Project 4B: Wordnet Design assignment.

Design Tips

We’ve included below a few questions for you to consider while brainstorming your design:

General Questions

  • Poke around the /browser and /main folders and observe what code exists. How do the examples in the /demo folder use existing classes/methods?
  • How are a user’s inputs (i.e. hyponyms of “cat”, k > 0) communicated to us from the ngordnet website? How do we communicate results back to the website?
    • You aren’t expected to know how the website works. However, it’s important to understand the boundaries of your implementation.
  • Where do tasks overlap? Are there opportunities to reuse methods across different cases? Think about helper methods or opportunities to overload methods.
  • Can you find groups of data structures and methods that serve a similar, clearly defined purpose? If so, consider moving them to a separate class. Building abstraction barriers may be helpful for managing code complexity.

Considering Edge Cases

  • How will your implementation handle words that exist within multiple hyponyms?
  • What output do we expect when a list of words are inputted? Under what circumstances is a synset a hyponym of two words? What about multiple words? How will your implementation determine the correct output?
  • What output do we expect when the user provides a k > 0? Does this relate to anything we’ve already built?

Template

We have provided a template for you to use if you’d like. See the Project 4B: Wordnet Design Template, which is also linked in the assignment below.

Alternatively, you can diagram your entire design. If you choose to do this, make sure you include all components in the rubric.

Submission

Once you have submitted to both assignments below, you’re done!

  1. Project 4B: Wordnet Checkpoint (10 points)
  2. Project 4B: Wordnet Design (15 points)

The score you receive on Gradescope is your final score for this assignment (assuming you followed the collaboration policy).

This spec was written by Daniel Wang and Ronnie Beggs as a new assignment in Fall 2025. The provided template was created by Kanav Mittal and Stella Kaval in Spring 2025 and edited by Daniel Wang.