CSE 373
Back to Top
Site logo of CSE 373
CSE 373
  • Home / Calendar
  • Syllabus
  • Projects
    • P0 - CSE 143 Review
      • System Setup
      • Using IntelliJ
      • Programming
      • Unit Testing
      • Commit & Submit
    • P1 - Deques
      • Getting Started
      • Programming
      • Tests
    • P2 - Maps
      • Map Interface
      • Iterator Interface
      • ArrayMap Implementation
      • ChainedHashMap Implementation
      • Tests and Submission
    • P3 - Heap
      • Programming
    • P4 - Mazes
      • Introduction
      • Disjoint Sets
      • Kruskal's Algorithm
      • Dijkstra's Algorithm
  • Exercises
  • Exams
  • Office Hours
  • Course Staff
  • Resources

  • Course Tools
  • EdStem
  • Anonymous Feedback
Acknowledgements

P3 - Heap


  1. Learning Goals
  2. Getting the Assignment

Learning Goals¶

  • Integrate multiple ADTs and data structures to solve a problem with complex requirements.

    Due to the specific runtime requirements of this heap implementation, our solution will need to creatively combine different ADTs and data structures to design a better solution.

  • Plan the implementation of a data structure and its invariants.

    At a high level, it’s necessary to determine the invariants that a data structure should maintain before and after every method call, and at a low level, it’s useful to determine how these invariants affect the shared functionality that can be extracted into helper methods. In the process, it may also be necessary to consider which of the invariants these helper methods themselves require in order to function correctly.


Getting the Assignment¶

Task

Grab your partner(s) and set off on a new journey together!

If you are working in a group, consider scheduling a time to go over the spec together and discuss how to collaborate on the project. Like previous projects, one person should also add the other person to their repo as a collaborator, so that everyone has access to the source code.

Task

Pull the skeleton repository in IntelliJ to get the heap assignment.

Pull the repo similar to how you did it for the deques assignment:

IntelliJ Git Pull Skeleton

If IntelliJ doesn’t react to the new folder for whatever reason, refresh Gradle manually through the Gradle tool window (on the right by default):

Gradle Refresh

Search

Search the class website; related sections and pages will appear below. Note: this search is not as forgiving with typos as other search engines.