This document provides an overview of machine learning and deep learning techniques. It defines machine learning as a field that gives computers the ability to learn without being explicitly programmed. It also describes different machine learning algorithms including supervised learning techniques like classification and regression, and unsupervised learning techniques like clustering. Deep learning techniques using neural networks for applications such as computer vision and natural language processing are also overviewed. Resources for implementing machine learning and deep learning in Python are provided.