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. Implementing Convolutional Networks in C
  5. Frameworks for deep learning      Examples
  6. Modeling DNNs in Tensorflow and PyTorch              Examples
  7. DNN optimization for embedded platforms
  8. The NVIDIA TensorRT framework
  9. Accelerating deep networks on GPGPUs - Part 1
  10. Accelerating deep networks on GPGPUs - Part 2
  11. Neural networks for real-time tracking
  12. Simulation environments for neural control
  13. Neural networks for real-time tracking
  14. Simulation environments for neural control
  15. Visual tracking with drones
  16. Functional components in autonomous driving
  17. The Apollo framework for Autonomous Driving
  18. 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