This course is based on Danny Friedman’ book, namely Machine Learning from Scratch-Derivations in Concept and Code. It covers the building blocks of the most common methods in machine learning. It will provide a conceptual overview of machine learning with the theory behind its methods, and focuses on the bare bones of machine learning algorithms. Its main purpose is to provide students with the ability to construct these algorithms independently. There are 7 parts, including ordinary linear regression, linear regression extensions, discriminative classification, generative classification, decision trees, tree ensemble methods and neural networks. These contents is designed for readers looking to learn new machine learning algorithms or understand algorithms at a deeper level.