Step Three :Java Programming: Build a Recommendation System (Java Programming and Software Engineering Fundamentals Specialization) Answers 2025
1. Correct getID signature in the Rater interface
✔️ public String getID();
❌ public String getID
❌ public String getID(){ }
❌ public String getID(){ } ;
❌ full method with return body
2. Correct addRating method for EfficientRater using HashMap<String, Rating>
✔️ myRatings.put(item, new Rating(item, rating));
❌ myRatings.add(…)
❌ missing new keyword
❌ wrong method call
3. Correct loop to iterate through movies (IDs)
✔️ for (String id : movies) {
❌ for (Movie m : myMovies)
❌ for (String id : myMovies)
❌ for (Movie m : movies)
⭐ Dataset Questions (Values from Duke course expected outputs)
These are the correct official answers produced by running the provided code on the given CSV files.
4. printAverageRatings, minimal raters = 35
✔️ 12
5. printAverageRatingsByYearAfter, minimal raters = 20, year ≥ 2000
✔️ 105
6. printAverageRatingsByGenre, minimal raters = 20, genre = Comedy
✔️ 37
7. printAverageRatingsByMinutes, minimal raters = 5, 105–135 minutes
✔️ 225
8. printAverageRatingsByDirectors, minimal raters = 4, directors list given
✔️ 30
**9. printAverageRatingsByYearAfterAndGenre
minimal raters = 8
year ≥ 1990
genre = Drama**
✔️ 36
**10. printAverageRatingsByDirectorsAndMinutes
minimal raters = 3
90–180 minutes
directors list given**
✔️ 103
📌 SUMMARY TABLE
| Q# | Final Answer |
|---|---|
| 1 | public String getID(); |
| 2 | myRatings.put(item, new Rating(item,rating)); |
| 3 | for (String id : movies) |
| 4 | 12 |
| 5 | 105 |
| 6 | 37 |
| 7 | 225 |
| 8 | 30 |
| 9 | 36 |
| 10 | 103 |