Java Programming: Build a Recommendation System

Java Programming: Build a Recommendation System

Duke University

About this course: Ever wonder how Netflix decides what movies to recommend for you? Or how Amazon recommends books? We can get a feel for how it works by building a simplified recommender of our own!
In this capstone, you will show off your problem solving and Java programming skills by creating recommender systems. You will work with data for movies, including ratings, but the principles involved can easily be adapted to books, restaurants, and more. You will write a program to answer questions about the data, including which items should be recommended to a user based on their ratings of several movies. Given input files on users ratings and movie titles, you will be able to:
1. Read in and parse data into lists and maps;
2. Calculate average ratings;
3. Calculate how similar a given rater is to another user based on ratings; and
4. Recommend movies to a given user based on ratings.
5. Display recommended movies for a given user on a webpage.

Who is this class for: This course is for anyone who has passed the first four courses in the Java Programming and Software Engineering Fundamentals Specialization, who has the ability to program in Java and design algorithms. Bring together everything you’ve learned to make a movie recommendation system that you can put on the web and send to your colleagues and friends!

You will start out the capstone project by taking a look at the features of a recommender engine. Then you will choose how to read in and organize user, ratings, and movie data in your program. The programming exercise will provide a check on your progress before moving on to the next step.

2 videos, 3 readings

Reading: Module Description / Resources

Video: Introduction and Motivation

Video: Reading and Storing Data

Reading: Programming Exercise: Step One

Reading: End of Module Survey

Graded: Step One

WEEK 2

Simple Recommendations

Your second step in building a recommender will focus on making simple recommendations based on the average ratings that a movie receives. You'll also make sure that each recommended movie has a least a minimal number of user ratings before including it in your recommendations. Throughout this step you are encouraged you use your knowledge of the seven step process to design useful algorithms and successful programs to solve the challenges you will face.

1 video, 3 readings

Reading: Module Description

Video: Average Ratings

Reading: Programming Exercise: Step Two

Reading: End of Module Survey

Graded: Step Two

WEEK 3

Interfaces, Filters, Database

In your third step, you will be encouraged to use interfaces to rewrite your existing code, making it more flexible and more efficient. You will also add filters to select a desired subset of movies that you want to recommend, such as 'all movies under two hours long' or 'all movies made in 2012'. You'll also make your recommendation engine more efficient as you practice software design principles such as refactoring.

1 video, 3 readings

Reading: Module Description

Video: Filtering Recomendations

Reading: Programming Exercise: Step Three

Reading: End of Module Survey

Graded: Step Three

WEEK 4

Weighted Averages

In your fourth step, you will complete your recommendation engine by finding users in the database that have similar ratings and weighting their input to provide a more personal recommendation for the users of your program. Once you complete this step, you could request ratings of movies from those you know, run your program, and give them recommendations tailored to their own interests and tastes!

1 video, 3 readings

Reading: Module Description

Video: Calculating Weighted Averages

Reading: Programming Exercise: Step Four

Reading: End of Module Survey

Graded: Step Four

Graded: Step Five

Farewell

Congratulations on completing your recommender programming project! As we conclude this capstone course, our instructors have a few parting words as you embark in future learning and work in computer science!

1 video

Video: Farewell from the Instructor Team

FAQs

How It Works

Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material,
and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends,
colleagues, and employers.

Creators

Duke University

Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.

Pricing

Audit

Purchase Course

Access to course materials

Available

Available

Access to graded materials

-

Not available

Available

Receive a final grade

-

Not available

Available

Earn a shareable Course Certificate

-

Not available

Available

Ratings and Reviews

Rated 4.7 out of 5 of 142 ratings

i have taken the whole specialization . so this review is for the whole specialization in general and for the capastone in particular.

the first and the second course is very easy . but the three remaining course are a little bit tough

so you will need to struggle and persist to complete the whole specialization especially the great project .

indeed the project is extremely great . you will use all the concept you have learned through this specialization to implement this great project .... but NOTE this specialization in general and the project in particular is NOT for a BEGINNER Programmer. it is for some one who has a background in programming . but overall you will learn a lot great stuff and concepts .. so have fun and enjoy programming .

Nice introduction to Java and programing principles in general

Offers an opportunity to practice all the concepts learnt so far! Good job by the team!

EF

I took the full Specialization, so I'm going write the same review for each of the 5 modules.

This is a great course, but it's not for beginners. They ask you to do a lot of coding, which is great since that's the only way to really gain proficiency. And the code they ask you to write is, in my opinion, pretty hard for someone new to coding. My hat's off to someone new to programming who makes it through the five modules.

So, thanks to Duke for putting together a great course. It was very good.