Machine learning and deep learning are allowing the progressive automation of tasks that only few years ago were impossible or required labour-intensive human activity. Image processing, language processing/translation, automated control, digital pathology are examples of recently revolutionized sectors. From a scientific perspective, there are strong evidences that deep learning methods are much better capable of quantifying properties of complex and/or chaotic dynamical systems, among which turbulence, than the current conventional state-of-the-art methods. This opens new research possibilities in which machine learning supports, or even unlocks, new scientific discoveries. This course, aimed at students with a fluid mechanics background, has a two-fold aim: first it will provide an application-oriented primer on neural networks for inference and control tasks, and second it will present recent selected use-cases from fluid mechanics and non-linear dynamics. The course time will be evenly split between lectures and hands-on sessions. Students will be trained to state-of-the-art machine learning software tools (python/jupyter, keras).