In this course, we introduce the principles of deep learning along with their applications in real word problems, aiming in understanding the various Neural Network architectures and their relation to statistical machine learning. In what follows, we emphasize on supervised learning through Convolutional Neural Networks (CNN) and Recurrent Neural Networks (RNN, GRU, LSTM), and also Autoencoders and Generative Adversarial Networks as techniques for unsupervised learning. Finally, we focus on examples and applications on a wide range of subjects such as image analysis, computer vision and natural language processing.