Teaching

INFO8006 Introduction to Artificial Intelligence

github:glouppe/info8006-introduction-to-ai

The course aims at giving an introduction and an overview of artificial intelligence. Lectures are based on several chapters of the textbook “Artificial Intelligence: A modern approach” (S. Russel and P. Norvig) used worldwide since 1995 for teaching essentials of AI. Some recent developments not included in this textbook are also covered. Topics include:

  • Foundations of Artificial Intelligence
  • Solving problems by searching
  • Games and adversarial search
  • Representing uncertain knowledge
  • Inference in Bayesian networks
  • Reasoning over time
  • Learning
  • Making decisions
  • Reinforcement learning
  • Artificial General Intelligence and beyond

DATS0001 Foundations of Data Science

github:glouppe/dats0001-foundations-of-data-science

The goal of this course is the lay the foundations of data science and to survey Bayesian probabilistic models used for solving data-analysis problems. Our perspective is that models are built iteratively: We build a model, use it to analyze data, assess how it succeeds and fails, revise it, and repeat. The table of content closely follows each step of the build-compute-critique-repeat loop:

  • Lecture 1: Introduction
  • Lecture 2: Data representation and manipulation
  • Lecture 3: Visualization
  • Lecture 4: Probabilistic modelling
  • Lecture 5: Approximate Bayesian inference (part 1)
  • Lecture 6: Approximate Bayesian inference (part 2)
  • Lecture 7: Model criticism
  • Lecture 8: Applications
  • Lecture 9: Wrap-up case study

INFO8010 Deep Learning

github:glouppe/info8010-deep-learning

Latest developments in deep machine learning have enabled great and unprecedented advances in systems for visual recognition, speech and text understanding or autonomous intelligent agents. In this context, this course is a deep dive into the details of deep learning architectures, with a focus on learning end-to-end models for these tasks. Students learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in the field. Topics to be covered (tentative and subject to change):

  • Fundamentals of machine learning
  • Multi-layer perceptron
  • Automatic differentiation
  • Training neural networks
  • Convolutional neural networks
  • Computer vision
  • Recurrent neural networks
  • Attention and transformers
  • Auto-encoders and generative models
  • Generative adversarial networks
  • Uncertainty

INFO8004 Advanced Machine Learning

github:glouppe/info8004-advanced-machine-learning

The goal of this course is to prepare students for the study of state-of-the-art research in the field of machine learning. The class is organized as a journal club, with reading and presentation assignments of recent machine learning research papers. In terms of content, this course focuses on advanced topics in machine learning, including supervised learning, unsupervised learning and non-standard learning protocols such as semi-supervised learning, transfer learning or active learning. It covers different families of techniques, such as neural networks, graphical models or kernel-based methods. From the practical viewpoint, the emphasis is on machine learning problems dealing with high-dimensional and structured representation spaces (e.g. texts, images, videos, time-series, and graphs).

INFO8002 Large-scale data systems (archived)

github:glouppe/info8002-large-scale-database-systems

In the modern data landscape, large-scale data systems have become a critical component of the data science analysis pipeline. They are of primary importance for the reliable storage, but also for the analysis, of the increasingly larger volumes of data encountered in web-based applications, cloud computing centres or in networks of connected objects. However, large-scale data systems remain notoriously difficult to build because they need to scale to hundreds or thousands of machines, they must be tolerant to crashes, they have to cope with concurrent execution and they need to ensure consistency of the data they store. In this context, the course covers elements of systems for data science in a bottom-up fashion. We first cover the foundational abstractions that are the core of distributed systems, including basic abstractions and system assumptions, reliable broadcast, shared memory and consensus. We then study data computing systems that are built on top of those components, including MapReduce and computational graph systems (Spark). Similarly, we study distributed storage systems, including distributed file systems, distributed key-value stores and blockchains. Topics to be covered (tentative and subject to change):

  • Data deluge
  • Basic distributed abstractions
  • Reliable broadcast
  • Shared memory
  • Consensus
  • Blockchain
  • Distributed hash tables
  • Cloud computing
  • Distributed file systems

PROJ0016 Big data project (archived)

The purpose of this course/project is for the students to apply the knowledge acquired in the Data Science and Engineering program to a project involving actual data in a realistic setting. During the project, the students engage in the entire process of solving a real-world data science problem: formalizing the problem, collecting and processing data, applying appropriate analytical methods and algorithms, deploying a solution and presenting the results of their study. The students work in groups to carry out a practical project over a big dataset, aiming at using the available software and hardware systems for retrieving a specific kind of information from the dataset. The project is carried out within modern distributed computing and storage environments, using state-of-the-art analytical methods.