Project 2

Due date: Friday, September 24 (FIRM)


  • Familiarity with test-driven development.
  • Review of linear data structures.


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 cs313413f21p2 and share it with me at and our TA. Be sure to share your repository with admin access.
  • Clone the cs313413f21p2 repository into Android Studio.
    • Android Studio may tell you that there's a plugin that supports .gitignore directives - you can click the link that installs that plugin and restart Android Studio to enable it.
  • In a Terminal window, enter gradlew Test or ./gradlew Test on a Mac to see all of the test errors; you should also be able to right-click on any of the Test files or on java above them 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 Android Studio to find these easily (View > Tool Windows > TODO, or the TODO tab at the bottom of the Android Studio window).
  • Make changes and repeat until all the unit tests pass.
  • 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 cs313413f21p2 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 Android Studio)
  • 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.