KotlinCS 124 LogoJava

Serialization, Sorting, and Search

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 courses 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:

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 courses are sorted by subject first, then by number
  2. The search bar does not work

For MP1 you’ll alter the way that courses are sorted and get the search bar to work. 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 four test cases to guide your development. test0_SummaryComparison and test1_SummaryFilter are unit tests that test changes you need to make to the Summary class, specifically writing a default compareTo method and adding a filter method. test2_SummaryView and test3_FilteredView are integration tests that tests the functionality you need to add to the Android view, which builds on the changes you make to Summary. You can begin by completing both unit tests. Or, you can complete test0 and test2 and then move on to test1 and test3, which is the order in which we’ll approach the tests on the daily lessons.

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 MP0 test suites, please download them below:

Scores
Scores

You can view your official MP1 scores below.