Project 2

Due date: Friday, February 18 (FIRM)


  • Familiarity with test-driven development.
  • Review of linear data structures, in particular link lists.


Complete the List Performance Example – perform the following steps:

  • Import the listperformance-java project into your Bitbucket account from following the usual steps, but naming your new private Git repository cs313413sp22p2 and share it with me at and our TA. Be sure to share your repository with admin access.
  • Check out / clone the cs313413sp22p2 repository into IntelliJ IDEA.
    • IntelliJ may tell you that there's a plugin that supports .gitignore directives - you can click the link that installs that plugin and restart IntelliJ to enable it.
  • In a Terminal window, enter ./gradlew Test to see all the test errors, or right click the project name and select Run 'Tests in ...
  • Fix the syntax errors (if any, though there probably aren't any).
  • Complete the parts marked as TODO. Use the TODO view in IntelliJ to find these easily (View > Tool Windows > TODO, or click TODO at the bottom of the IntelliJ window).
  • Make changes and repeat until all the unit tests pass. You will also need to make several changes to and record test method runtimes to enter into a new README.txt file.
  • Commit and Push your changes.


  • Keep your code up to date in your repository by committing and pushing changes continually! This means that you are expected to keep your code in your Bitbucket repository (and push changes continually) as opposed to working only locally and pushing only at the end to submit your work. In this way, you will gain experience in working with version control systems.
  • Summarize your findings (answers to the questions embedded in the code) in a file called README.txt in the cs313413sp22p2 folder, add it to your project, and Commit and Push it to your Bitbucket repo.
  • Notify the instructor and TA when the project is ready to be graded.


  • 0.5 at least 3 Commits to your Bitbucket repository showing that you are making and saving changes on a continuous basis, not just at the end of your work on this project
  • 0.5 submission via Bitbucket repo (should still show Dr. Laufer's history before your import into Bitbucket and clone into IntelliJ)
  • 1 completing the parts marked as TODO (View > Tool Windows > TODO)
  • 1 adding the README.txt file answering questions embedded in the code

       3 points total


In the section of the project where it says "also try with a LinkedList - does it make any difference", you can simply add a new line for LinkedList in the source file and just comment out each one for testing.
This is asking if behaviorally there is any difference if you use an ArrayList or a LinkedList, not whether there is a performance difference (that is covered in the TODOs in