The goal of this project was to build a collaborative filtering algorithm that is able to give both book and movie recommendations by predicting user ratings for each of the books and movies they have not rated yet. The algorithm was trained and tested on the BookCrossing and MovieLens public datasets.