Recent applications of machine learning have exploded due to cheaply available computational resources as well as wide availability of data. Machine Learning (ML) techniques provides a set of tools that can automatically detect patterns in data which can then be utilized for predictions and for developing models. Developments in ML algorithms and computational capabilities have now made it possible to scale engineering analysis, decision making and design rapidly. This, however, requires an engineer to understand the limits and applicability of the appropriate ML algorithms. This course aims to provide a broad overview of modern algorithms in ML, so that engineers may apply these judiciously. Towards this end, the course will focus on broad heuristics governing basic ML algorithms in the context of specific engineering applications. Students will also be trained to implement these methods utilizing open source packages such as TensorFlow.