Neural Networks and Deep Learning

This course will start on January 9, 2024, at 9:00.
Lectures will be opened to everybody and will be given online on the following channel.
Please, connect 10 minutes before 9:00 to avoid disturbing the lecture.
The lectures scheduled on April 17 and 18 have been postponed to April 18 and 19 at the same time.


To attend the lectures and receive notifications about any change on course lectures, please register in this file by December 30th.

This course includes three modules of 3 CFUs each: the first module focuses on the theoretical foundations of neural networks and deep learning; the second module covers more advanced topics and recent research trends; the third module covers practical and implementation issues.

Course Program

Part I: Theoretical Foundations

  1. Introduction to neural computing
  2. Hopfield networks
  3. Unsupervised learning: PCA
  4. Unsupervised learning: Self-Organizing Maps
  5. Clustering algorithms
  6. Reinforcement learning - part 1
  7. Reinforcement learning - part 2
  8. Supervised learning: backpropagation
  9. Supervised learning: important remarks
  10. Supervised learning: performance metrics
  11. Radial Basis Function Networks
  12. Towards Deep Neural Networks (DNNs)
  13. Autoencoders
  14. Convolutional Neural Networks
  15. CNNs for object classification
  16. CNNs for object detection
  17. CNNs for image segmentation
  18. Recurrent Neural Networks
  19. Word embeddings and attention mechanism
  20. Transformers

Part II: Advanced Topics

  1. Deep reinforcement learning - part 1
  2. Deep reinforcement learning - part 2
  3. Model compression
  4. Semi-supervised learning
  5. Contrastive learning
  6. Towards trustworthy AI
  7. Generative Adversarial Networks (GANs)
  8. Diffusion models (Dall-E)
  9. Adversarial attacks and defenses
  10. Certifiable adversarial robustness
  11. Real-world adversarial examples
  12. Explainable and interpretable AI
  13. Anomaly detection and out-of-distribution generalization
  14. Domain generalization and domain adaptation
  15. Attention mechanisms in computer vision
  16. Transformers for computer vision

Part III: Implementation Issues

  1. Implementing neural networks in C
  2. Implementing Reinforcement Learning in C
  3. Implementing Backpropagation in C
  4. Frameworks for deep learning
  5. Modeling DNNs in Tensorflow and PyTorch
  6. DNN optimization for embedded platforms
  7. Accelerating deep networks on GPGPUs
  8. The NVIDIA TensorRT framework
  9. The NVIDIA TensorRT framework - advanced topics
  10. Neural networks for real-time tracking
  11. Simulation environments for neural control
  12. Visual tracking with drones
  13. Functional components in autonomous driving
  14. The Apollo framework for Autonomous Driving
  15. Accelerating deep networks on FPGA



  1. Hopfield network demo
  2. Kohonen network demo 1: 2D input space
  3. Kohonen network demo 2: image mapping
  4. Kohonen network demo 3: optimization
  5. K-means online demo
  6. Gaussian mix demo
  7. Reinforcement Learning: ASE-ACE demo
  8. Q-learning: The amoeba
  9. Q-learning: grid world demo
  10. Q-learning: shooting targets
  11. Q-learning: car driving demo
  12. Q-learning: car driving demo
  13. Supervised learning: function approximator
  14. Supervised learning: overfitting example
  15. Supervised learning: simple classifier

Suggested readings

Books Introductory readings For those who like to look into the future