In this project, you will:
This assignment has three parts:
Here are some baseline expectations we expect you to meet:
Follow the course collaboration policies
DO NOT use any classes from
java.util.*
. There are only two exceptions to this rule:
You may import and use java.util.Iterator
and
java.util.NoSuchElementException
.
You may import and use anything from java.util.*
within your testing code.
DO NOT modify instructor-provided code (unless told otherwise)
DO NOT produce excess output to the console; you should remove any print statements used for debugging purposes before submitting your assignment.
This project is split up into three parts. Part 1 is about heaps, Part 2a is meant to give you more practice working with dictionaries and sets, and Part 2b is meant to give you practice working with graphs.
One important thing to note is that you will in general be given very few tests on all three parts. This is intentional and is meant to help you develop strong debugging and testing skills. We strongly encourage you to add your own tests to supplement the ones you were given.
Part 0: Form a team
Find a partner and form a 2-person team. One of you should fill out the team signup form to receive your homework git repository. Please submit only one form per team.
Like earlier team assignments, you can work solo (you still need to fill this form) but we strongly encourage you to team up as the assignment is meant to be done in pairs.
If you'd like our help in finding a partner, please fill this partner pool form with your availability by Monday (11/5) noon. We'll do the matching Monday (11/5) afternoon.
Part 1: Heaps, sorting, and testing
Due Saturday November 10 at 11:59pm. Fill this form if submitting late.
Part 2a: Searching using TF-IDF
Due Monday November 19 at 11:59pm. Fill this form if submitting this part late.
Part 2b: Implementing PageRank
Due Monday November 19 at 11:59pm. Fill this form if submitting this part late.
Due Monday November 19 at 11:59pm