Modern biology increasingly relies on vast datasets generated through genomic, transcriptomic, and single-cell omics techniques. To make sense of these large-scale data and extract meaningful patterns or predictions, machine learning (ML) has become essential. This course introduces students to the foundational principles and techniques of ML as applied to biological data. Students learn the differences between supervised and unsupervised learning and implement key ML algorithms from scratch using Python, including linear and logistic regression, neural networks, k-nearest neighbors, and hierarchical clustering. They also use dimensionality reduction methods such as PCA. The course emphasizes core concepts like cost functions, gradient descent, regularization, the bias-variance trade-off, and performance evaluation using metrics such as ROC-AUC, accuracy, and recall. After building a conceptual foundation in week one, students apply their knowledge using scikit-learn and work in groups on a biological classification project using real-world data.