Skip to content

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