KotlinCS 124 LogoJava
PrevIndexNext
Kotlin
Java
  • Implementing a Map : 04/26/2024

  • Streams : 04/25/2024

  • Generics : 04/24/2024

  • Hashing : 04/23/2024

  • Binary Search : 04/22/2024

  • MP3: Course Ratings : 04/19/2024

  • Quicksort : 04/18/2024

  • Merge Sort : 04/17/2024

  • Sorting Algorithms : 04/16/2024

  • MP Debugging Part 1 : 04/15/2024

  • MP2: Course Activity : 04/12/2024

  • Practice with Recursion : 04/11/2024

  • MP Debugging Part 0 : 04/10/2024

  • MP2: API Client : 04/09/2024

  • MP2: API Server : 04/08/2024

  • Trees and Recursion : 04/05/2024

  • Trees : 04/04/2024

  • Recursion : 04/03/2024

  • MP1: Filtering and Search : 04/02/2024

  • MP1: Loading and Sorting : 04/01/2024

  • Lists Review and Performance : 03/29/2024

  • Linked Lists : 03/28/2024

  • Algorithms and Lists : 03/27/2024

  • Continuing MP0 : 03/26/2024

  • Getting Started with MP0 : 03/25/2024

  • Lambda Expressions : 03/22/2024

  • Anonymous Classes : 03/21/2024

  • Practice with Interfaces : 03/20/2024

  • Implementing Interfaces : 03/19/2024

  • Using Interfaces : 03/18/2024

  • Working with Exceptions : 03/08/2024

  • Throwing Exceptions : 03/07/2024

  • Catching Exceptions : 03/06/2024

  • References and Polymorphism : 03/05/2024

  • References : 03/04/2024

  • Data Modeling 2 : 03/01/2024

  • Equality and Object Copying : 02/29/2024

  • Polymorphism : 02/28/2024

  • Inheritance : 02/27/2024

  • Data Modeling 1 : 02/26/2024

  • Static : 02/23/2024

  • Encapsulation : 02/22/2024

  • Constructors : 02/21/2024

  • Objects, Continued : 02/20/2024

  • Introduction to Objects : 02/19/2024

  • Compilation and Type Inference : 02/16/2024

  • Practice with Collections : 02/15/2024

  • Maps and Sets : 02/14/2024

  • Lists and Type Parameters : 02/13/2024

  • Imports and Libraries : 02/12/2024

  • Multidimensional Arrays : 02/09/2024

  • Practice with Strings : 02/08/2024

  • null : 02/07/2024

  • Algorithms and Strings : 02/06/2024

  • Strings : 02/05/2024

  • Functions and Algorithms : 02/02/2024

  • Practice with Functions : 02/01/2024

  • More About Functions : 01/31/2024

  • Errors and Debugging : 01/30/2024

  • Functions : 01/29/2024

  • Practice with Loops and Algorithms : 01/26/2024

  • Algorithms : 01/25/2024

  • Loops : 01/24/2024

  • Arrays : 01/23/2024

  • Compound Conditionals : 01/22/2024

  • Conditional Expressions and Statements : 01/19/2024

  • Operations on Variables : 01/18/2024

  • Variables and Types : 01/17/2024

  • Welcome to CS 124 : 01/16/2024

MP3: Course Ratings

For our final project checkpoint, MP3, we’ll add a course rating feature to our app. Like MP2, this will involve changes to our server, client, and app UI.

Also like MP2, MP3 is a step up in difficulty. We’ll provide you with a bit of the information you need to get started and guide you through the test suites. But completing the code for MP3 is up to you.

App Demo
App Demo

To begin, let’s view a demo of our finished project!

Getting Started
Getting Started

For MP3 we’ll be completing the project you’ve been working on previously. You’ll need the environment that you set up during that checkpoint to proceed, and you’ll need to have completed MP2.

Before you can get to work on MP3 we need to install the MP3 test suites. Before we continue, please commit your work. You should make sure to commit both immediately before and immediately after we install the MP3 test suites. (If there are no changes to commit beforehand, that’s fine.)

You’ll receive the MP3 Java test suites via email. Move the file to the app/src/test/java/edu/illinois/cs/cs124/ay2023/mp/test/ directory in your machine project. You’ll also want to reconfigure grade.yaml in the root directory of your project to request that we grade Checkpoint 3. Just like MP2, there’ll also be a few compilation errors to fix as well. Let’s look at how to do these things together:

Note that you will also need to provide a getSummary method for the summary field on your Rating class.

GET /rating/
GET /rating/

To start, let’s briefly overview how to approach an initial pass on GET /rating/ support in your server and client. Since this is quite similar to what you added for MP2, we won’t linger here.

POST /rating/
POST /rating/

Next we’ll discuss the HTTP POST request, how it differs from GET, and provide some guidance on how to set up your server support for POST.

Wrapping Up
Wrapping Up

To finish up, we’ll outline how to approach the rest of MP3.

A few additional notes:

Your Goal
Your Goal

As a reminder, on lessons where we focus on the machine project we will not assign a homework problem! However, the lesson will usually focus on helping you complete a particular part of the MP test suite, and so we encourage you to spend time on that in lieu of a homework problem.

Right now your goal should be to

  1. install the MP3 test suites and make the changes required for them to compile
  2. Make as much progress on MP3 as possible, since this is the only MP3 lesson!

If you get stuck, find us for help on the tutoring site or forum.

MP3 Scores
MP3 Scores