KotlinCS 124 LogoJava

Favorite RSOs

Learning Objectives
Learning Objectives

MP3 challenges you to complete a similar set of tasks as MP2, but with less guidance. You’ll be adding several new features to your app, including implementing API server and client support and updating your application user interface.

The learning objectives of MP3 are similar to MP2. Specifically, after completing MP3 you should be able to:

  1. Understand how a simple web server and client interact to exchange data
  2. Augment an existing app with new features, adding support across the app as needed
  3. Engage in test-driven development

Submission ID and Team
Submission ID and Team

Your submission ID and team should appear below.

Deadlines
Deadlines

Like MP2, MP3 has two deadlines. We provide 10 points for getting started on the MP promptly and earning a certain number of points before the early deadline. For MP3, you must earn 40 points by the early deadline. The remainder of the MP is due a few days later.

For MP3 the deadlines are:

MP3 also has an extra credit deadline. If you submit a fully-completed MP3 by this date, you will earn a 105 / 100.

Note that the extra credit deadline is designed to encourage some students to finish early and leave more time for tutors to support the rest. As such, we will not provide additional support around the extra credit deadline. Earning the early extra credit requires meeting the early deadline.

Objectives, Testing, and Grading
Objectives, Testing, and Grading

You will receive the MP3 test suites via email.

Reconfiguration
Reconfiguration

Next, you’ll want to reconfigure grade.yaml in the root directory of your project to request that we grade MP3. Note that, like MP1 and MP2, your app will not compile after installing the test suites. There are a few things you need to add to get it to compile. These steps are covered on the MP3 lesson.

Objectives
Objectives

To complete MP3 you’ll add support for marking RSOs as favorites to your application. This will require adding routes to your API server to update and query whether an RSO is a favorite, support in your API client for using those routes, and modifications to the RSOActivity and MainActivity that use this information.

Testing
Testing

We have provided six test cases to guide your development. test0_ServerGETAndPOSTFavorite and test1_ClientGetAndSetFavorite test your new server routes for retrieving and updating favorite RSOs. test2_FavoriteButton and test3_FavoriteSort test that the UI-related components of favorite RSO support work properly. test4_testRelatedRSOs and test5_RelatedRSOsUI test support for determining and displaying related RSOs, a briefly-specified final project challenge. You will probably want to complete the tests in order.

Grading
Grading

Grading for MP3 is broken down as follows:

Note that the final two related RSO tests are very briefly specified and expected to be challenging, but also not worth many points.

You can estimate your grade at any time by using the Grade task available in Android Studio. This is an estimate, not an official score.

Submitting
Submitting

You submit MP3 by pushing to GitHub, in the same way that you did for MP2, MP1, and MP0. However, make sure that you have configured grade.yaml before pushing. We grade the checkpoint you have configured in grade.yaml. So make sure that is set up to grade MP3 once you are ready.

Cheating
Cheating

Please review the CS 124 policies on collaboration.

All submitted code will be checked for cheating. Cheaters will receive stiff penalties. Hard-working students who are struggling honestly for their grade demand it.

Original Test Suites
Original Test Suites

If you need to restore the original test suites, please download them below:

Scores
Scores

You can view your official MP3 scores below.