This document provides an introduction and overview of collaborative filtering in Python using the Surprise library. It begins with a taxonomy of recommendation system approaches, focusing on collaborative filtering which leverages user-item interactions. It then describes the neighborhood method of collaborative filtering, including computing similarity measures between users/items and aggregating neighbors' ratings. The document introduces the Surprise library, explaining its features like built-in algorithms, dataset handling, and evaluation tools. It provides code examples for basic usage, implementing custom algorithms, and evaluating models through cross-validation.