This repository is the companion code for the first edition of 'Hands-on Machine Learning with Scikit-Learn and TensorFlow' (2017). It contains a collection of Jupyter notebooks teaching fundamental and advanced machine learning concepts, covering classification, SVMs, decision trees, ensemble methods, dimensionality reduction, and deep learning with TensorFlow 1.x (including CNNs, RNNs, autoencoders, and reinforcement learning). The code is educational, with step-by-step implementations, inline explanations, and exercise solutions. It is not a production application but a self-contained learning environment, supplemented with datasets (California housing, OECD life satisfaction, MNIST) and a Docker setup for reproducible execution. Significant technical drift exists: TensorFlow 1.x APIs, deprecated scikit-learn imports, and Python 2/3 compatibility shims make the notebooks incompatible with modern environments without substantial rewriting. The README explicitly directs users to the second edition repository for up-to-date code.