KotlinCS 124 LogoJava

Serialization, Sorting, and Searching

Learning Objectives
Learning Objectives

MP1 provides practice completing several small programming tasks using Android and introduces a few key ideas in user interface development.

Specifically, after completing MP1 you should be able to:

  1. Find your way around an Android project
  2. Understand how the list of RSOs is displayed and how the main activity responds to user interaction
  3. Engage in test-driven development
  4. Complete several small programming tasks based on a specification

Submission ID and Team
Submission ID and Team

Your submission ID and team should appear below.

Deadlines
Deadlines

Later MP checkpoints have two deadlines. We provide 10 points for getting started on the MP promptly and earning a certain number of points before the early deadline. The remainder of the MP is due a few days later.

However, MP1 is a shorter checkpoint, so there’s only one deadline for each deadline group:

MP1 also has an extra credit deadline. If you submit a fully-completed MP1 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 staff to support the rest. As such, we will not provide additional support around the extra credit deadline.

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

You will receive the MP1 test suites via email.

Next, you’ll want to reconfigure grade.yaml in the root directory of your project to request that we grade MP1. Note that 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 first MP1 lesson.

To pass the test cases and complete MP1, you need to fix a few problems with the code that we provided, and write a bit of new code to solve a problem. This does not require writing a lot of code! You will spend much more time understanding what the problem is and identifying the code you need to modify than you will actually implementing your solution.

Objectives
Objectives

When you run the starter code you should notice two things:

  1. The RSOs are not sorted
  2. The color buttons do not work
  3. The search bar does not work

For MP1 you’ll fix these problems. These changes require modifications to several files included in your repository. We’ll walk through what to do and provide suggestions for getting started on the daily lessons.

Testing
Testing

We have provided six test cases to guide your development, ordered in the way that we suggest approaching this checkpoint.

The daily lessons walk through how to approach each portion of the checkpoint, but in varying amounts of detail. In particular, for the search method we provide a minimal description of correct behavior and expect you to design and complete that method independently.

Grading
Grading

Grading for MP1 is broken down as follows:

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 MP1 by pushing to GitHub, in the same way that you did for 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 MP1 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:

Here’s a brief walkthrough showing how to restore the original test suites if needed:

Scores
Scores

You can view your official MP1 scores below.