MSc • Data Science • Intelligence artificielle • Machine Learning
MSc in Data Science & Artificial Intelligence.
Le parcours de niveau master phare de DSTI pour les étudiants qui veulent modéliser des problèmes complexes, comprendre le machine learning en profondeur et relier l’IA mathématique aux données réelles, au software et aux environnements d’ingénierie.
C’est le parcours scientifique pour les étudiants qui veulent construire, évaluer et expliquer des modèles — pas seulement utiliser des outils d’IA, mais comprendre la logique statistique, mathématique et informatique qui les sous-tend.
Modéliser le réelStatistiques, machine learning, optimisation et IA pour les problèmes complexes.Fondations approfondies en IARéseaux neuronaux, deep learning, données de grande dimension et modélisation avancée.Science orientée productionMLOps, cloud, data engineering et bases software pour une IA déployable.
01 — Identité du programme
La data science n’est pas seulement de la prédiction. C’est une modélisation rigoureuse.
Le MSc in Data Science & Artificial Intelligence s’adresse aux étudiants qui recherchent le centre de gravité le plus fort en modélisation, machine learning et IA dans l’offre de niveau master de DSTI.
Positionnement DSTI
De la profondeur mathématique à la pratique de l’IA.
Le programme combine statistiques, optimisation, machine learning, deep learning, modélisation avancée et bases de data engineering, afin que les diplômés puissent raisonner sur les modèles et comprendre les systèmes qui les mettent en œuvre.
Statistiques
Comprendre l’incertitude
Comprendre le raisonnement statistique derrière l’inférence, la modélisation, la validation et la décision en contexte d’incertitude.
Machine Learning
Construire et évaluer des modèles
Travailler avec des approches supervisées, non supervisées et avancées, avec mise en œuvre pratique.
Deep Learning
Entrer dans l’IA moderne
Étudier les réseaux neuronaux, le deep learning, les données de grande dimension et des applications comme la computer vision et le NLP.
Ingénierie
Relier la science aux systèmes
Cloud, SQL, MLOps, software engineering et bases big data aident les modèles à dépasser le stade du notebook.
02 — Pour qui ce programme est conçu
Pour les étudiants qui cherchent un centre de gravité en modélisation et IA.
Ce MSc est exigeant sur les plans mathématique et technique. Il convient aux étudiants qui veulent comprendre les modèles en profondeur et les utiliser de manière responsable dans des contextes de données réels.
Bon profil
Vous voulez acquérir une vraie crédibilité technique en modélisation, machine learning et IA.
Vous aimez les mathématiques, les statistiques, la modélisation, l’expérimentation et la validation de modèles.
Vous voulez des bases avancées en machine learning, deep learning et IA.
Vous voulez une culture suffisante en data engineering et MLOps pour comprendre comment les modèles sont utilisés en pratique.
Vous visez des fonctions de data scientist, machine-learning engineer, spécialiste IA ou des postes orientés modélisation.
Moins adapté si
Votre objectif principal est la business analytics ou l’ingénierie d’infrastructure.
Si votre intérêt principal porte sur l’aide à la décision, le reporting et la mise en œuvre analytics, comparez avec le MSc in Data Analytics with AI.
Si votre intérêt principal porte sur les pipelines, les plateformes cloud et les systèmes data de production, comparez avec le MSc in Data Engineering for AI.
Si votre intérêt principal porte sur la protection des systèmes et les risques, comparez avec le MSc in Cyber Security.
03 — Structure du programme
La structure du programme, en un coup d’œil.
La structure combine remise à niveau technique, enseignements spécialisés, séances d’accompagnement et expérience professionnelle intégrée.
840hVolume total enseigné, entre Warm Up, enseignements spécialisés et séances d’accompagnement.
75hDSTI Warm Up pour renforcer les mathématiques, la programmation, la culture IA, les bases IT et la pratique des systèmes.
60hSéances d’accompagnement pour réviser, poser des questions, retravailler les concepts difficiles et préparer les examens.
30 ECTSExpérience professionnelle par stage, emploi ou activité professionnelle validée.
Titre professionnel national (RNCP)
La qualification nationale à laquelle mène ce MSc.
Titre actuelNiveau 7 · niveau master
Architecte en Intelligence Artificielle
RNCP41993 · enregistré auprès de France Compétences · s'applique aux promotions actuelles et futures
DSTI ne se cache pas derrière des intitulés vagues. Le MSc in Data Science & Artificial Intelligence est présenté ci-dessous par blocs d’enseignement, heures, ECTS et contenu de cours.
Warm Up • 75h
Point de départ technique
Une passerelle préparatoire pour des étudiants venant de parcours académiques variés, avant d’entrer dans le cœur du MSc.
Enseignements spécialisés
Statistiques, IA et ingénierie
Une structure transparente, cours par cours, couvrant la modélisation, l’optimisation, le deep learning, le MLOps, le big data et la gouvernance.
Expérience professionnelle • 30 ECTS
Application en contexte professionnel
Une expérience professionnelle validée, où les étudiants appliquent le programme dans un environnement de travail pertinent.
Warm Up75h • 6 ECTS
Point de départ technique commun
Le Warm Up aide les étudiants issus de parcours variés à renforcer les mathématiques, la programmation, la culture IA et les bases IT nécessaires à un MSc exigeant en Data Science et IA.
10h
Warm Up: Fundamental Mathematics
Core mathematical preparation for quantitative and technical coursework.
Establishing shared foundations for working with data and code
The Warm Up brought together mathematical reasoning, programming and the practical organisation of a computing environment. Sessions moved between Python and R, operating systems, relational data and spreadsheets, alongside discussion of artificial intelligence and version control. Examples and guided work connected abstract ideas with everyday operations: representing information, running a program, managing files and examining whether a result or a change can be trusted.
What students explored
Reasoning and representation
Logic, functions and limits sat alongside relational tables and spreadsheet values, with attention to what a representation means and preserves.
Code and working environments
Python, R and command-line work connected language features with files, permissions, dependencies and the organisation of a reproducible project.
Checking and collaborating
Version control and discussion of generated code linked collaborative work with the need to understand, inspect and safely manage changes.
Explore the sessions
1. Data Working Environments and System Setup
The session introduced Clean IT as preparation for data work, explaining local, cloud-based and hybrid ways of working with data projects. It compared these approaches in terms of privacy, security, cost, performance, storage, reliability, collaboration, setup and customisation, stressing that the appropriate choice depends on the use case and sensitivity of the data. Students were guided through recommended computer specifications and core Windows setup tasks, including activating an education licence, enabling Linux and virtualisation features, and installing Ubuntu and Windows Terminal. Virtual machines and disk partitioning were explained as ways to run separate operating environments while sharing limited hardware resources. The session also outlined later work with cloud notebooks, local Python tools, virtual environments and code editors.
2. Python Fundamentals and Virtual Environments
The session introduced Python as a high-level, interpreted, dynamically typed and extensible programming language, explaining why it is widely used in data work. Students created and ran a simple ‘Hello World’ Python program using Visual Studio Code and the terminal. The class covered variables as references to objects in memory, including assignment, naming conventions, values, types, type checking and explicit type conversion. It also demonstrated formatted strings for inserting variable values into text. Students were shown how to download course materials, create and activate a virtual environment, install dependencies, use Jupyter notebooks, and begin exercises on variables.
3. Python Conditionals, Errors and Lists
The session reviewed Python as a high-level, interpreted and dynamically typed language, alongside virtual environments, variables, functions and the principle of avoiding repeated code. It introduced conditional execution with if, elif and else statements, as well as try-except blocks for handling errors such as invalid types, division by zero and unavailable files. Students practised writing conditional functions to identify whether values were positive, negative or zero, and to work with quadratic calculations and safe square roots. The class then covered sequences, particularly mutable lists and immutable tuples, including indexing, slicing, negative indexing, modifying lists, object identity, references, copying and nested collections. It concluded by introducing iteration as processing collection members one at a time.
4. Digital Computer Architecture and von Neumann Systems
The session introduced computer architecture by defining a computer as a system that receives inputs, processes them and produces outputs. It compared analogue and digital computers, explaining that digital systems use discrete binary values and support general-purpose computing. The class explored the Turing machine and finite-state machines, emphasising deterministic behaviour: the same input and instruction produce the same output. It then examined the von Neumann architecture, including input/output ports, the control unit, central processing unit (CPU), arithmetic logic unit (ALU), random-access memory (RAM), secondary storage, buses and registers. The session also explained that programs are loaded from storage into memory for processing, and that apparent multitasking relies on rapid context switching between processes.
5. R Programming and Reproducible Analysis
The session introduced R as a language for statistical analysis, data work, dashboards and application programming interfaces (APIs), comparing its use with Python, Spark and Rust. It discussed effective learning in the age of artificial intelligence, emphasising the need to understand, validate and safely manage code produced by language models, including the use of version control and separation of development from production systems. Students were introduced to RStudio and Quarto, and practised creating and running Python and R code chunks. The class compared Python arrays with R vectors, covering object assignment, one-based indexing in R, output functions, vectors, lists and data frames. It also examined coding style, memory pre-allocation, and risks such as overwriting built-in R functions or relying on ambiguous column-name matching.
6. Operating Systems, Processes and File Systems
The session reviewed how operating systems create the appearance of multitasking through pre-emptive scheduling, context switching, process IDs and round-robin allocation of CPU time. It introduced file systems and file paths, comparing Windows drive-letter paths with Linux root-based paths, and demonstrated how Linux can access Windows files through mounted directories. The class examined graphical and command-line methods of launching programs, explaining the roles of the shell, kernel fork function, process hierarchy, executable paths and CPU execution. It also covered CPU bitness, binary representation, and the broad structure used to store decimal numbers in registers, before introducing the relevance of networking to cloud computing.
7. PowerShell File Management and Automation
The session introduced PowerShell as a cross-platform command-line and scripting environment built on .NET, with uses in system administration, automation and cloud services. It compared proprietary and open-source operating systems, and explained Windows file systems, permissions, paths, case sensitivity and the differences from Linux. Practical demonstrations covered navigating directories, listing files, reading, creating, copying, moving, renaming and permanently deleting files, including the importance of backups when modifying configuration files. The class also covered aliases, pipelines, structured object output, filtering and sorting running processes, and redirecting standard and error output to files. The afternoon introduced PowerShell scripts, parameters, variables, control flow, execution policies and validating a supplied path before running a script.
8. Linux Command Line and Permissions
The session introduced Linux as an operating system built around the Linux kernel, explained distributions, and compared its file-system structure with Windows. It covered users, groups, system users, ownership and read, write and execute permissions, including numeric permission modes and the purpose of root and sudo access. Practical command-line work demonstrated navigation, file and directory creation, copying, moving, deletion, symbolic links, text editing, redirection and searching with grep and regular expressions. The class also covered package installation, services, processes and process signals, before beginning an introduction to Bash scripts, parameters, variables and conditional checks.
9. Relational Databases and Data Integrity
The session introduced data management by explaining why tables are a human-readable way to organise information. It showed how text, images, audio and more complex sources such as websites can be converted into numerical table-based representations. Students designed a simple relational database for customers, products and invoices, identifying attributes, primary keys and foreign keys. The class covered functional dependencies and the relational model, using examples to show how poor table design and duplicated data can cause integrity problems. A final activity demonstrated how splitting poorly structured data into related tables reduces duplication and improves reliability.
10. Excel Data Types and Functions
The session introduced Excel as a widely used business tool and outlined the resources, exercises and expected software environment for the course. Students explored Excel data types, including logical, numerical and text values, and learned that formatting changes how data appears rather than its underlying value. Dates and times were explained as numerical serial values, alongside common issues such as automatic conversion, leading zeroes and converting between text and numbers. The class then examined built-in Excel functions, how to use the categorised documentation, and the roles of text, date/time, logical and information functions. Students began practical tutorials on applying simple, top-ten, custom and advanced filters to data.
11. Logic, Sets and Binary Relations
The session introduced core logical notation, including implication, equivalence, negation, quantifiers and proof by contradiction. It covered set theory: subsets, the empty set, cardinality, unions, intersections, complements, disjoint sets, partitions and Cartesian products. Applications between sets were defined through images, injectivity, surjectivity, bijectivity, composition, restrictions and extensions, with examples based on squaring real numbers. The class then studied binary relations and their properties, including reflexivity, symmetry, antisymmetry and transitivity, before defining equivalence relations, equivalence classes, order relations, bounds, suprema and infima. A later discussion clarified injective, surjective and bijective functions and introduced the inverse of a bijection.
12. Sequences, Convergence and Function Limits
The session introduced real sequences as functions from the natural numbers to the real numbers and defined convergence using epsilon and a limiting value. It covered uniqueness of limits, boundedness of convergent sequences, rules for sums, products, quotients and absolute values, and the special care required with divergent sequences and infinite limits. Monotone and adjacent sequences were studied, including convergence of bounded monotone sequences, powers of a positive number, accumulation values, and the Cauchy criterion. The class then began real functions, covering limits, inequalities, monotonicity, continuity, operations on continuous functions, composition, and extension by continuity.
Artificial Intelligence and Language Models
The session introduced artificial intelligence (AI) as a long-standing research problem, covering the Turing test and the history of symbolic, neural and hybrid approaches to AI. It explained that large language models use neural networks to identify and extend patterns in large datasets, rather than necessarily understanding logic, facts or context. The class compared rule-based chatbots with neural networks, discussed limitations including hallucinations, data quality, context and ethical risks, and considered neurosymbolic AI as a possible future direction. It also distinguished supervised, unsupervised and semi-supervised learning through examples of image classification and recommendation systems, and stressed the importance of reliable data and good software engineering practice.
14. Git, GitHub and Collaborative Version Control
The session reviewed personal development environments, including cloud and local notebooks, virtual environments and requirements files for reproducible work. It introduced collaborative software development through GitHub as a platform for code repositories, portfolios, project documentation, licences and activity tracking. Students were shown how to create and organise repositories, edit README files using Markdown, upload files and folders, and publish a requirements file. The class then introduced Git as version-control software, explaining branches, pulls, pushes, commits, merging, conflict resolution and the protection of a stable main branch during team work.
15. R Factors, Strings and Data Import
The session explained how factors in R can impose meaningful category order, retain unused levels and reduce memory use by storing category codes as integers. Students created RStudio projects to manage working directories, loaded comma-separated values (CSV) data, and practised troubleshooting package, script and file-path issues. The class reviewed basic statistical functions and exploratory plots, then focused on readable R coding style through descriptive names, consistent assignment operators, spacing and avoiding semicolons. It introduced string matching and replacement, date handling with year–month–day dates, and the creation, storage and sourcing of functions, including default arguments. The session concluded with an introduction to tidy data, dplyr verbs and pipe operators.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Tronc commun Data Science & AI190h • 24 ECTS
Mathématiques, statistiques, optimisation et réseaux neuronaux
Ce bloc établit les fondations scientifiques et mathématiques du programme : analyse statistique, optimisation, séries temporelles, SAS et réseaux neuronaux.
25h3 ECTS
Mathematics for Data Science
Calculus, linear algebra and complex numbers required for optimisation and data science.
Following the mathematics behind a model's calculations
Derivatives, vectors and matrices were explored through the calculations they make possible in data analysis. The sessions moved from the slope of a function to changes of basis, regression and principal component analysis. Along the way, the class considered redundant variables, numerical sensitivity and scaling: mathematical details that affect how a calculation behaves and how its result can be interpreted.
What students explored
Local change
Derivatives, partial derivatives and Taylor approximations provided ways to describe a function near a point and connect that description with optimisation.
Directions in data
Linear independence, orthogonality and changes of basis connected vector operations with redundancy, scaling and the interpretation of several variables together.
Matrix structure
Rank, eigenvalues and quadratic forms linked solvability and numerical sensitivity with regression, principal components and the shape of an optimisation problem.
Explore the sessions
1. Calculus and Multivariable Derivatives
The session introduced calculus as a foundation for optimisation, machine learning and statistical modelling. It defined functions, linear and affine functions, and common nonlinear functions including powers, exponentials and logarithms. Derivatives were explained as local slopes, with rules for sums, constants, powers, products, quotients and composite functions, alongside links to neural-network differentiation. The class then extended derivatives to several variables through partial derivatives, higher-order and mixed partial derivatives, and their use in describing slopes in different directions. Taylor series and Taylor polynomials were presented as local approximations, with applications to numerical computation, optimisation methods and interpolation.
2. Vector Algebra and Linear Independence
The session began with a recap of the product rule for derivatives, using a rectangle-area argument and the limit definition to show why the small product of two variations vanishes. It then introduced vectors as one-dimensional arrays, covering vector addition, scalar multiplication, linear combinations, and the importance of matching dimensions in mathematical and programming operations. Linear independence, dependence, collinearity and bases were explained as ways to identify redundant variables and reduce the dimensionality of data. The dot product, orthogonality, vector norms, normalisation and orthonormal bases were developed, with links to correlation, variance, regression and numerical scaling. The class also introduced changes of basis, including their role in principal component analysis (PCA), compression and viewing data from more informative directions.
3. Matrix Inverses, Determinants and Eigenvalues
The session examined matrix inverses, showing that a square matrix is invertible exactly when its columns are linearly independent, equivalently when it has full rank. It introduced matrix rank, numerical sensitivity near singular matrices, and the special simplicity of diagonal matrices, whose inverses and determinants can be computed element by element. Determinants were defined and calculated for two-by-two and three-by-three matrices using minors and cofactors, with discussion of why this recursive method is impractical for large matrices. The class then introduced trace, eigenvalues and eigenvectors for symmetric matrices, deriving the characteristic equation and using orthonormal eigenvectors to diagonalise a matrix through a change of basis.
4. Eigenvectors, Regression and Principal Components
The class examined how eigenvalues and eigenvectors in data analysis can reveal approximate linear relationships and support linear regression, including the effect of scaling variables and interpreting small eigenvalues as residual error. It covered adding an intercept through centring variables or including a column of ones, comparing resulting coefficients with a statistical regression model, and avoiding overfitting by selecting simpler models and validating them. The session also explained how changing to eigenvector coordinates can reveal trends in data that are not visible when plotting individual variables, linking this to principal component analysis. It then introduced positive-definite matrices and quadratic forms through the signs of eigenvalues, with applications to convexity and optimisation. Finally, it introduced complex eigenvalues of non-symmetric matrices, complex-number arithmetic, Cartesian and polar forms, and the use of complex exponentials in trigonometry and Fourier transforms.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Foundations of Statistical Analysis and Machine Learning — Part 1
Descriptive statistics, probability theory and applications using R.
Foundations of Statistical Analysis and Machine Learning
Course code: CDSAI-002
From describing observations to reasoning under uncertainty
Probability and statistics were developed as foundations for interpreting data and preparing for machine learning. The sessions moved from distributions and descriptive measures to conditional probability, random variables and statistical inference. Examples, simulations and work in R connected mathematical definitions with what can be observed in a sample, including variation, uncertainty and the care needed when drawing conclusions from limited data.
What students explored
Describing a sample
Tables, plots and summary measures made distribution shape, spread and relationships visible, with attention to outliers and the limits of correlation.
Modelling uncertainty
Conditional probability, independence and random variables provided a language for distinguishing observed outcomes from the probability models used to interpret them.
Drawing statistical conclusions
Estimation, confidence intervals and hypothesis tests connected sample evidence with uncertainty, error risks and the assumptions behind a statistical conclusion.
Explore the sessions
1. Descriptive Statistics and Set Notation
The session introduced the course’s focus on probability, statistics and their role as foundations for machine learning, with R and RStudio as supporting tools. It reviewed mathematical notation for sums, products and sets, including unions, intersections and complements. Descriptive statistics were covered through frequency tables, bar charts, histograms, density plots and empirical cumulative distribution functions, with emphasis on interpreting distribution shape. The class defined quantiles, the median, mean, variance, standard deviation, interquartile range, skewness and kurtosis, and used box plots to examine spread and potential outliers. It then introduced multivariate descriptive analysis using contingency tables, scatter plots, covariance and correlation, stressing that correlation does not establish causation.
2. Conditional Probability, Bayes’ Theorem and Independence
The session completed an introduction to probability distributions for finite, countably infinite and continuous sample spaces. It covered conditional probability, Bayes’ theorem and base rates through diagnostic-test, screening, production-defect and transmission examples, as well as the Monty Hall problem. Independence, incompatibility and mutual independence were distinguished using coin-toss and permutation examples. Students then completed practice multiple-choice questions on descriptive statistics, including means, medians, empirical cumulative distribution functions and probability calculations. The session ended by introducing random variables as functions mapping outcomes to real-number values and motivating probability distributions for them.
3. Random Variables, Dependence and Convergence
The session reviewed random variables through uniform, binomial, Poisson and normal distributions, focusing on their parameters, probability mass or density functions, cumulative probabilities, quantiles, means and variances. Simulated samples were compared with theoretical distributions to show how observed data can differ from ideal probability models. The class then introduced multivariate random variables, joint and marginal distributions, conditional distributions, independence, covariance and correlation, including a bivariate normal simulation and covariance matrix. It concluded with an introduction to convergence, random samples that are independent and identically distributed, parameter estimation, and the motivation for the law of large numbers and central limit theorem.
4. Estimation, Confidence Intervals and Hypothesis Testing
The session reviewed descriptive statistics, probability theory, random variables, probability distributions, convergence, the law of large numbers and the central limit theorem. It introduced estimators and estimations, including bias, variance, mean squared error and the use of large samples to improve estimates. Confidence intervals were explained as ranges around an estimate associated with a chosen risk level, and a practical activity used one-sample t-tests in R to calculate 95% and 99% confidence intervals for mean height. Statistical hypothesis testing was then introduced through null and alternative hypotheses, rejection regions, p-values, significance levels, and Type I and Type II errors, with examples involving coin tosses and comparisons of group means. The session concluded by outlining common tests for one mean, two means and independence, in preparation for further study.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
40h4 ECTS
Foundations of Statistical Analysis & Machine Learning — Part 2
Tests, estimators, confidence intervals, inference, ANOVA, PCA, linear regression and applications using R.
Foundations of Statistical Analysis & Machine Learning — Part 2
Course code: CDSAI-003
From a sample estimate to a defensible interval
The sessions followed a statistical question through several levels of uncertainty: how a random variable behaves, how a sample estimates a population quantity, and what an interval or fitted line can reasonably say. Worked calculations and R simulations connected probability distributions with estimator variability. The account then moved towards linear regression, retaining attention to assumptions, residuals and uncertainty around the estimated slope.
What students explored
Probability models
Densities, transformations and Gaussian calculations established how probabilities and simulated observations relate to the distribution being assumed.
Estimation and uncertainty
Bias, consistency, mean squared error and confidence-interval coverage offered different ways to judge what a sample-based estimate can support.
Fitted relationships
Least-squares regression connected covariance and variance with fitted coefficients, residuals and a confidence interval for the slope under stated assumptions.
Explore the sessions
1. Continuous Distributions and Simple Linear Models
The session introduced the simple linear model as a way to model one numerical response using one numerical explanatory variable, and explained why estimation theory, confidence intervals and statistical tests are needed to assess such models. It covered continuous random variables and density functions, including positivity, normalisation, support, probabilities as areas under a density, expectations, variances, moments and distribution functions. Worked examples showed how to verify a density, calculate expectation and variance, and derive a distribution function. The class also demonstrated how to find the distribution and density of a transformed random variable using distribution functions and differentiation. Finally, it introduced uniform, exponential and Gaussian random variables, focusing on the uniform distribution, its properties, transformations from a uniform distribution on [0,1], and inverse-distribution simulation.
2. Gaussian Probabilities and R Simulation
The session explained how to use standard Gaussian distribution tables to calculate probabilities, including interval probabilities, complementary events and symmetry for negative values. It then showed how to standardise a non-standard Gaussian variable using its mean and standard deviation before applying the standard table, and compared table-based approximations with calculations in R. R functions for densities, distribution functions, quantiles and random simulation were introduced, including the use of a seed to reproduce simulated results. The class then began statistical representation of data, covering independent and identically distributed samples, population representativeness and sampling bias, and distinguishing qualitative, discrete quantitative and continuous quantitative observations. Pie charts, bar plots and cumulative proportion curves were introduced, with proportions presented as estimates of probabilities and simulations used to show that larger samples give more accurate estimates.
3. Point Estimation and Laws of Large Numbers
The session introduced point estimators as functions of a random sample, distinguishing an estimator (a random variable) from its numerical estimate based on observed data. It explained unbiased and asymptotically unbiased estimators through examples for a uniform distribution, including the sample mean and sample maximum, and showed how to adjust a biased maximum-based estimator. The law of large numbers and convergence in probability were introduced to explain why empirical averages approach expectations and why larger samples generally produce more accurate estimates. Simulations and box plots were used to illustrate estimator variability, the effect of sample size, and the interpretation of potential outliers. Consistency and quadratic error were defined as criteria for assessing and comparing estimators.
4. Confidence Intervals for Gaussian Means
The class reviewed point estimation using the method of moments and maximum likelihood, including the maximum likelihood estimator for the upper bound of a uniform distribution. It compared estimators using mean squared error, variance and bias, and summarised common estimators for uniform, exponential and Bernoulli models. The session introduced confidence intervals as random intervals with a specified confidence level, explaining why they provide information that point estimates alone cannot. A confidence interval for a Gaussian mean with known variance was derived by standardising the sample mean and using standard normal quantiles, including symmetric and one-sided intervals. Simulations illustrated coverage, the possibility that an interval misses the true parameter, and how interval width depends on sample size, variability and confidence level; sample-size planning and limitations of large datasets were also discussed.
5. Asymptotic Confidence Intervals and Delta Method
The session developed asymptotic confidence intervals for a population mean when neither the distribution nor the variance is known, using the central limit theorem, consistency of the sample variance and Slutsky’s lemma. It then applied these ideas to confidence intervals for a Bernoulli proportion, including a simpler conservative interval based on the bound p(1 − p) ≤ 1/4. Confidence intervals for the parameter of an exponential distribution were derived by first estimating its mean, with the delta method introduced for functions of an expectation. The class also derived an exact confidence interval for a Gaussian variance using the chi-squared distribution, and introduced the Fisher distribution to compare the variances of two independent Gaussian samples. Examples illustrated how confidence intervals can be used to assess equality of variances and how sample size affects conclusions.
6. Least-Squares Simple Linear Regression
The session developed the simple linear regression model with a numerical response and explanatory variable, using a fixed-design approach and assumptions on the error terms. It explained least-squares estimation of the intercept and slope, deriving the fitted coefficients and relating the slope to empirical covariance and variance. Covariance, random vectors, independence, marginal distributions and Gaussian random vectors were introduced to support the regression theory. Maximum likelihood estimation under Gaussian errors was used to estimate the error variance, leading to residuals, fitted values and a Student-t confidence interval for the slope. Software was used to fit models, inspect coefficients, residuals and fitted values, and calculate confidence intervals.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Time-Series Analysis
Temporal data analysis with mathematical foundations and applications in R for forecasting and prediction.
Choosing a forecast by examining what time leaves behind
Forecasting began with looking carefully at a series: its trend, recurring patterns and dependence between observations. The sessions then connected transformations, smoothing and model fitting with residual checks and time-aware evaluation. Work in R moved across passenger counts, precipitation, retail data and electricity demand, showing how the forecasting question shapes both the model and the way its predictions should be tested.
What students explored
Reading the series
Plots, aggregation and autocorrelation helped distinguish trends and seasonality before deciding which transformations or model terms to consider.
Building and checking models
Smoothing, differencing and seasonal autoregressive models were examined alongside residual independence, changing variance and comparisons between candidate fits.
Evaluating a forecast
Rolling validation and the required forecast horizon framed comparisons, including models that use explanatory variables as well as past observations.
Explore the sessions
1. Time-Series Patterns, Visualisation and Autocorrelation
The session introduced time series as regularly spaced observations indexed by time, with the aim of forecasting future values. It used plotted examples to distinguish seasonal patterns with fixed frequency, cycles with variable frequency, trends, changing seasonal amplitude, and the role of external information in forecasting. Students were shown how to create and plot time-series objects in R, including specifying frequency and start dates, producing seasonal plots, and treating missing values through interpolation. The class covered descriptive statistics, autocorrelation and partial autocorrelation plots, how these can indicate trends or seasonality, and tests for whether autocorrelation is present. Students practised loading a dataset, constructing a time series, identifying its patterns, and aggregating monthly observations into annual totals.
2. Exponential Smoothing, Decomposition and Cross-Validation
The session reviewed exponential smoothing for forecasting time series with trend and seasonality, and time-series cross-validation for comparing forecasting methods using rolling training periods. It introduced additive decomposition into trend, seasonal pattern and residual noise, noting that multiplicative series can be made additive through a logarithmic transformation. Moving averages and the decomposition function were used to estimate and remove trend and seasonality for exploratory analysis, while their limitations for extrapolating trends were explained. Differencing operators were introduced to remove polynomial trends and seasonal patterns, with seasonal differencing followed by first differencing used to obtain approximately stationary series. Students assessed residual autocorrelation using autocorrelation plots and Box tests, then practised this on air-passenger and Google stock-price data.
3. SARIMA Modelling and Forecast Diagnostics
The session introduced backshift notation and used it to express autoregressive integrated moving average (ARIMA) models, including how ordinary differencing converts a non-stationary series into one that can be modelled with autoregressive and moving-average terms. Seasonal ARIMA (SARIMA) models were explained as combining regular and seasonal dependence, seasonal differencing, and lagged relationships at multiples of the seasonal period. Students practised identifying candidate SARIMA orders from autocorrelation and partial autocorrelation plots, fitting models, checking residual independence, comparing models using the Akaike information criterion (AIC), and producing forecasts for retail-index and San Francisco precipitation data. The class also covered heteroscedasticity and the Box–Cox transformation, including estimating the transformation using training data and applying the resulting model to forecasts on the original scale. A final exercise asked students to select a SARIMA model for airline-passenger data using Box–Cox transformation, differencing, autocorrelation diagnostics, and train-test evaluation.
4. Dynamic Regression and Time-Series Clustering
The session reviewed forecasting methods for univariate time series, including exponential smoothing, ARIMA models and machine-learning approaches using lagged observations. It stressed that methods should be compared through time-series cross-validation rather than a single training and test split, with the test horizon matching the required forecasting horizon. The class introduced multivariate time series forecasting using known future covariates, fitting time-series linear models with trend and seasonal effects and then modelling correlated residuals with ARIMA to form dynamic regression models. An electricity-demand example used temperature, squared temperature and working-day status, showing how nonlinear covariate effects and seasonal information can improve forecasts. Students practised splitting the data, fitting models, diagnosing residual autocorrelation, and comparing dynamic regression, neural-network and random-forest forecasts.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
SAS Base
Preparation for SAS Base certification, covering SAS Base programming and applications in SAS STATS.
Turning raw records into checked and readable SAS output
The sessions treated SAS programming as a sequence of data-handling decisions: reading records, inspecting their structure, deriving variables and checking the output. Syntax and log messages mattered alongside the resulting reports. Practical exercises moved from basic DATA and PROC steps to conditional processing, grouped totals and raw-file input, with particular attention to missing values and the difference between stored data and its displayed format.
What students explored
Inspecting the input
Libraries, metadata, logs and simple procedures helped identify variable types, missing values and errors before further processing.
Transforming records
Filtering, calculated variables, conditional branches and combining datasets provided the main operations for preparing data for analysis or reporting.
Presenting and checking results
Formats, frequency tables, grouped totals and character functions connected readable reports with checks on the records behind them.
Explore the sessions
1. SAS Programming Fundamentals and Syntax
The session introduced SAS Base Programming, its role in accessing, managing, analysing and presenting data, and its relevance to certification and data preparation. It explained that SAS programs consist mainly of DATA steps, which typically create data sets, and PROC steps, which process data or produce output. Students practised setting up course data, using SAS interfaces, submitting code, and checking the log and results to identify errors. The class covered SAS syntax, including semicolons, keywords, formatting, comments, quotation marks and common syntax errors. It also introduced SAS data sets, libraries, metadata, PROC CONTENTS, PROC PRINT, PROC MEANS, variable types, missing values and SAS date values.
2. PROC PRINT and Custom Formats
The session reviewed PROC PRINT, including selecting variables with a VAR statement and adding, checking and clearing titles and footnotes. It introduced SAS formats as a way to alter the display rather than the stored value, covering numeric, currency and date formats, widths, decimal places, and the importance of periods in FORMAT statements. Students created user-defined character and numeric formats with PROC FORMAT to translate codes, group salary ranges, handle other values and identify invalid or missing data. The class then began creating customised SAS data sets using DATA and SET statements, WHERE and subsetting IF conditions, assignment statements for calculated variables, DROP and KEEP statements, and permanent labels and formats. Exercises practised filtering observations, creating variables such as bonuses and discounts, and producing formatted reports.
3. Raw Data Import and Conditional Processing
The session covered importing delimited raw files into SAS, including delimiters, date informats, labels, formats, and the DSD and MISSOVER options for handling missing values. SAS functions were used to create and manipulate variables, including SUM, MONTH, YEAR, QUARTER, WEEKDAY, TODAY and MDY, alongside an explanation of the program data vector (PDV) and the effect of DROP, KEEP and LENGTH statements. Conditional processing with IF–THEN–ELSE and DO–END groups was practised to assign values based on job titles, countries, order types, birth quarters and ages. The class also covered concatenating data sets with SET, renaming variables to align structures, introductory one-to-one merging, and using PROC FREQ to inspect data, produce one- and two-way frequency tables, identify invalid, missing and duplicate values, and group values through formats.
4. Accumulating Totals and Fixed-Column Input
The session reviewed solutions for creating and filtering SAS data sets, using WHERE statements, conditional OUTPUT statements, KEEP statements and PROC PRINT or PROC FREQ reports. It introduced accumulating totals in the PDV through RETAIN statements and sum statements, including the treatment of missing values, and showed how to summarise sorted data by BY groups using FIRST. and LAST. variables. Fixed-column raw files were read with formatted input, column pointers, informats, multiple input records and trailing @ controls. Character manipulation covered variable lists and functions including SUBSTR, LENGTH, PROPCASE, SCAN, CATX, FIND, TRANWRD, COMPRESS and LEFT. Numeric functions for rounding, truncation, descriptive statistics, medians and largest values were demonstrated through exercises.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Continuous Optimisation
Critical points, optimisation of multivariable functions, gradient methods and constraint-based optimisation using Lagrange multipliers.
Connecting the shape of a problem with its solution
Optimisation was developed from the definition of a cost function and its constraints, rather than introduced only as a software routine. The sessions connected derivatives and convexity with conditions for a minimum, then examined least squares, regularisation and constrained problems. Gradient descent brought the discussion back to computation: the direction, step size and conditioning all affect how an iterative method progresses.
What students explored
Conditions for a minimum
Directional derivatives, gradients and Hessians helped distinguish critical points, local minima and conclusions that require convexity.
Constraints and stability
Variational inequalities, Lagrange multipliers and regularisation connected feasible solutions with constraint effects and better-behaved numerical problems.
Iterative calculation
Gradient descent and line searches linked the geometry of the objective with step-size choices, convergence and matrix conditioning.
Explore the sessions
1. Foundations of Continuous Optimisation
The session introduced continuous optimisation as the minimisation of a cost function over decision or control variables, subject to geometric, equality, inequality and differential-equation constraints. It distinguished local from global minima, explaining why convex cost functions and convex feasible sets are particularly important. Examples included constrained linear optimisation for minimum-cost nutrition planning, least-squares solutions of inconsistent linear systems, and infinite-dimensional optimisation in the calculus of variations with regularisation to limit oscillations. The class then defined directional and Gateaux derivatives, compared Gateaux and Fréchet differentiability, related derivatives in finite-dimensional spaces to gradients, and derived the derivative of a quadratic cost function. Second-order directional derivatives and the Hessian were introduced, followed by the mean-value formula and the chain rule.
2. First-Order Conditions and Convexity
The session introduced necessary optimality conditions for differentiable cost functions, showing that an unconstrained local minimum in an open domain satisfies the Euler equation J′(u)=0. It explained open sets, local minima, critical points, and why boundary minima do not necessarily satisfy this equation. For optimisation over convex sets, it derived the variational inequality J′(u)(v−u)≥0 and applied it to vector and affine subspaces, projections onto convex sets, and least-squares problems. The convex case was then studied, showing that local minima are global, strictly convex functions have at most one minimum, and the Euler equation or variational inequality becomes sufficient for global optimality. Finally, quadratic cost functions and symmetric positive-definite linear systems were related to minimisation problems.
3. Second-Order Conditions and Least Squares
The session examined a non-convex two-variable function by finding its critical points, comparing their function values, and using Hessian eigenvalues to distinguish two minima from a saddle point. It explained first- and second-order optimality conditions, including Euler’s equation on open sets, Euler’s inequality on convex constraint sets, and how convexity makes first-order conditions sufficient as well as necessary. The class then introduced least-squares minimisation for inconsistent or non-unique linear systems, deriving the normal equations AᵀAx = Aᵀb from the gradient of the squared residual norm. It considered existence and uniqueness of least-squares and minimum-norm solutions, before introducing regularisation by adding a small squared-norm penalty to obtain a better-behaved, uniquely solvable optimisation problem.
4. Lagrangians, KKT Conditions and Duality
The session defined norms on vector spaces and introduced saddle points of a Lagrangian as points that minimise with respect to the primal variable and maximise with respect to the multiplier variable. It established the min–max property of saddle points and linked saddle points of a Lagrangian to solutions of optimisation problems with inequality constraints. The class derived complementary slackness, explained active and inactive constraints, and interpreted Lagrange multipliers as constraint prices. It then presented the Karush–Kuhn–Tucker conditions for convex optimisation, including linear programming and problems with both equality and inequality constraints. An exercise began by computing the gradient and Hessian of a quadratic function in order to test convexity.
5. Gradient Descent and Step-Size Selection
The session introduced unconstrained optimisation as an iterative process that seeks to reduce a cost function at every step. Gradient descent was derived using a first-order Taylor expansion, showing why the update direction is the negative gradient and why selecting an appropriate step size involves a trade-off between speed and reliability. Fixed-step and optimal-step gradient methods were discussed, including convergence conditions based on strong convexity and Lipschitz continuity of the gradient, and line-search approaches for choosing practical steps. Quadratic objectives were examined in detail, linking their minimisation to solving positive-definite linear systems and showing how eigenvalues and conditioning affect convergence. The class then formulated linear regression as a least-squares optimisation problem and began implementing its cost function and gradient in R using matrix operations.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Learning to read a neural network's training behaviour
The sessions connected the neural-network training cycle with the practical question of whether a model will generalise. Data preparation, loss functions and parameter updates were considered alongside validation curves, leakage and model complexity. Work in PyTorch provided a setting for assembling training loops and trying regularisation, while the discussion retained the limits of neural networks in data requirements, computation and interpretability.
What students explored
Preparing the learning problem
Encodings, scaling and dataset splits were considered alongside data quality, balanced samples and the prevention of leakage.
Following the updates
Batches, losses, backpropagation and optimisers explained how training changes model parameters and why learning-rate choices matter.
Checking generalisation
Validation curves, early stopping and regularisation helped distinguish improved training fit from useful performance on unseen data.
Explore the sessions
1. Artificial Intelligence, Machine Learning and Neural Network Applications
The session introduced artificial intelligence as systems that perform tasks normally associated with human intelligence, distinguishing it from general artificial intelligence. It positioned machine learning as learning from data and deep learning as machine learning based on neural networks, while comparing neural networks with classical methods such as regression, random forests, boosting, clustering and support vector machines. Applications in computer vision, audio processing and natural language processing were explored, including image classification, object detection, segmentation, speech recognition, sentiment analysis and question answering. The machine-learning workflow was reviewed: defining objectives and success metrics, collecting and preparing data, selecting and evaluating models, deployment, monitoring and retraining in response to data drift. The class also covered labelled versus unlabelled data, the importance of balanced, shuffled and deduplicated datasets, and cautious use of sampling and data augmentation.
2. PyTorch Data Preparation and Neural Network Training
The session reviewed the relationship between artificial intelligence, machine learning, deep learning and neural networks, including the distinction between shallow and deep networks. It introduced PyTorch tensor handling, device selection, graphics processing unit (GPU) availability and moving data between the central processing unit (CPU) and GPU. Data preparation for neural networks was covered through numerical encoding, ordinal and one-hot encoding, and feature scaling using min-max scaling and standardisation. The training cycle was explained: feeding data in batches, forward propagation, loss calculation, backpropagation and parameter updates across epochs. The class examined mean squared error and binary cross-entropy losses, gradient descent, learning rates, vanishing gradients, and batch, stochastic and mini-batch strategies, before comparing momentum, Adagrad, RMSProp and Adam optimisers.
3. Model Evaluation, Optimisation and Generalisation
The session reviewed how neural-network models should generalise to unseen data and how datasets should be divided into training, validation and test sets. It covered epochs, mini-batches, loss functions, backpropagation, gradient descent, learning rates and optimisers, including momentum and Adam. The class examined underfitting, overfitting, the bias–variance trade-off, early stopping, model complexity, regularisation, and the importance of data quality and relevant features. It also discussed avoiding data leakage, maintaining comparable distributions across data splits through stratified sampling, and balancing groups where fairness requires it. Students then practised structuring a PyTorch workflow with datasets, data loaders, models, training loops and validation-loss logging in TensorBoard.
4. Regularisation, Activation Functions and Training Diagnostics
The session examined how training and validation curves can indicate overfitting, underfitting, unstable optimisation and the need for early stopping. It covered causes and remedies for poor generalisation, including improving data quality, increasing data or model capacity where appropriate, removing irrelevant features, and adjusting learning rate and batch size. Regularisation methods were explained, including L1 and L2 penalties, dropout, data augmentation and batch normalisation, alongside vanishing gradients and internal covariate shift. The class also discussed why deep networks learn hierarchical features, their advantages for complex unstructured data, and their limitations in computation, data requirements and interpretability. In practical work, students added batch normalisation, dropout and L2 weight decay to a PyTorch classifier, then used Optuna to tune hyperparameters and inspect the resulting trials.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Tronc commun Data Engineering250h • 24 ECTS
Fondations software, cloud, SQL, MLOps et big data
Les data scientists ont besoin d’une culture d’ingénierie. Ce bloc relie la modélisation aux environnements software, cloud, bases de données, MLOps et big data qui rendent l’IA déployable.
25h2 ECTS
Software Engineering — Part 1
Procedural programming in Rust, memory representation, ownership, borrowing, data structures, testing and reliable code.
Making ownership and interfaces visible in working Rust code
Rust provided the setting for examining how software structure and memory handling interact. The sessions moved from values, ownership and borrowing to error handling, collections and a modular graph implementation. Testing then returned attention to observable behaviour: what a function or component should do, how failures are represented, and how checks can remain independent of the implementation details they are intended to examine.
What students explored
Memory and references
Stack and heap storage, ownership, borrowing and lifetimes explained how Rust constrains access to values and the validity of references.
Structure and interfaces
Collections, traits and modules connected data-structure choices with separation of concerns, reuse and a graph implementation.
Checking behaviour
Unit, integration and property-based testing were distinguished, with graph examples connecting assertions and error cases to actual software components.
Explore the sessions
1. Rust Fundamentals and Ownership
The session introduced Rust as a systems programming language chosen for performance, memory safety, concurrency and use in data-intensive applications. It covered Rust tooling, including Cargo projects, crates, the Cargo.toml manifest, building and running programs, and configuring an editor with Rust analysis and debugging support. The class explained memory management through the stack and heap, including scope, allocation, fixed and dynamic data, strings and pointers. It also introduced immutable and mutable variables, ownership, moving values, cloning, borrowing through references, and basic control structures and functions.
2. Lifetimes, Error Handling and Traits
The session examined Rust lifetimes, explaining how references must remain valid and how explicit lifetime annotations prevent dangling references at compile time. It covered Option and Result types for handling missing values and failures, including matching, unwrapping, default values and propagating errors with the question-mark operator. The class introduced structs for grouping related data, their instantiation and mutation, ownership implications when copying fields, and implementation blocks for adding methods and constructor-like functions. It then introduced traits as shared behaviour across types, using the Iterator trait and operations such as next, map, filter, take and collect in preparation for building a linked-list example.
3. Data Structures, Graphs and Modularity
The session reviewed Rust exercises on lifetimes and references, mutable borrowing in structs, generic functions, Option and Result types, iterators, collections, and filtering data. It compared core data structures such as vectors, double-ended queues, heaps, hash maps, hash sets, B-tree maps and sets, focusing on their operations, complexity and appropriate use cases. Advanced structures including graphs, trees and spatial trees were introduced, alongside graph traversal and shortest-path concepts. The class then covered modularity, separation of concerns, encapsulation, abstraction, decoupling, interfaces, reuse and testing, before beginning a modular Rust graph implementation using type aliases, structs and derived traits.
4. Rust Testing, Benchmarking and Profiling
The session covered software testing in Rust, including the purposes and distinctions of unit, integration and property-based tests. It demonstrated how to write and run tests with Cargo, use assertions, test error conditions and private functions, mock external dependencies, organise tests, and keep tests independent and focused on behaviour. Practical examples applied unit and integration tests to graph structures and algorithms. The class also introduced benchmarking, code coverage, debugging and profiling, before reviewing core Rust principles such as ownership, borrowing, memory safety, modularity and error handling.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Software Engineering — Part 2
Object-oriented programming in C#, SOLID, UML, MVC, design patterns, services and Entity Framework.
Following a data pipeline through objects and design choices
C# examples connected object-oriented concepts with the structure of an application. The sessions moved from types and collections to classes, interfaces and architectural separation, using transactions and sensor data to make those choices concrete. Rather than treating design patterns as a vocabulary exercise, the later work examined how data access, reporting, export and notifications can be arranged through distinct responsibilities.
What students explored
Objects and relationships
Encapsulation, inheritance and polymorphism were examined through examples that distinguished shared capabilities from the specialisation of a class.
Separating responsibilities
Unified Modelling Language diagrams and model–view–controller architecture connected requirements and class structure with application behaviour and presentation.
Adapting the pipeline
Factories, adapters, repositories and observers supplied ways to organise data conversion, persistence, export and notifications without combining every concern.
Explore the sessions
1. C# Fundamentals and Data Structures
The session introduced C# as an object-oriented language used with the .NET platform and Common Language Runtime, including automatic memory management and just-in-time compilation. It covered Visual Studio project organisation, solutions, projects, namespaces, program entry points, primitive and reference types, operators, functions, conditions and loops. Practical examples demonstrated type conversion, integer division, user input validation with TryParse, and the differences between casting and parsing. The class also examined arrays, multidimensional and jagged arrays, and dynamic data structures including lists, linked lists, stacks and dictionaries. A merge sort example was introduced to illustrate divide-and-conquer sorting and its time complexity.
2. Object-Oriented Design and UML Modelling
The session introduced object-oriented programming, defining objects as entities with state, behaviour and identity, and classes as blueprints containing attributes, methods and constructors. It covered encapsulation through public and private members, static members, the current-instance reference, properties, constructors and method overloading, using bank-account and fraction examples in C#. SOLID design principles were introduced, particularly single responsibility and open–closed principles, with discussion of maintainability, extensibility and testability. The class also introduced the Unified Modelling Language (UML), including use case diagrams for identifying actors and system requirements, and class diagrams for modelling attributes, methods, visibility and static members. Finally, it began explaining horizontal relationships between classes, including association and aggregation.
3. Inheritance, Interfaces and Polymorphism
The session covered object-oriented relationships: inheritance through generalisation and specialisation, and interface realisation as a contract for shared capabilities. It explained polymorphism, abstract classes and methods, method overriding, virtual methods, protected access, base-class constructors, casting, and the difference between overriding at runtime and overloading at compile time. Examples modelled animals, vehicles, flying objects, database connectors, property ownership and transaction records. A practical C# example used abstract transaction classes, sales and refund specialisations, Language Integrated Query (LINQ)-based reporting, and interchangeable comma-separated values (CSV) and JavaScript Object Notation (JSON) data exporters through an interface. Students were set a guided UML-based exercise to build an Internet of Things (IoT) data pipeline using these concepts.
4. MVC Architecture and Design Patterns
The session introduced model–view–controller (MVC) architecture, separating an application into models for data and logic, views for presentation, and controllers for handling input and coordinating the other components. A console-based user-management example was developed to demonstrate this separation, including input validation, menus, error handling and exception handling. The class then covered creational, structural and behavioural design patterns, focusing on singleton, factory, adapter and observer patterns, including their purposes and limitations. These ideas were applied to a sensor-data pipeline using a factory to convert database records into reading objects, a repository and Entity Framework with SQLite for data access, report generation, and CSV and JSON export. The example was extended with an observer-based event system to notify application observers when database, reporting and export actions occurred.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Python Machine Learning Labs
Data structures, data cleaning, feature engineering and machine-learning modelling with Python libraries.
Looking at the data before choosing a predictive model
The supplied sessions concentrated on the work that precedes model fitting: understanding the question, inspecting imperfect records and deciding how to represent them. Python and pandas exercises used passenger data to examine missing values, class imbalance and feature construction. A separate book-rating project was introduced as a brief; the evidence here follows the preparation and exploratory work, rather than claiming completed project results.
What students explored
Framing the question
The project brief connected a prediction task with imperfect input data, comparison between models and the need to explain the resulting work.
Inspecting records
Summary statistics, plots and missing-value checks supported discussion of outliers, class imbalance and which information belongs in the prediction task.
Constructing features
Text extraction, grouped imputation and categorical encoding showed how representations are built before evaluating a model on unseen examples.
Explore the sessions
1. Machine Learning Workflow and Project Brief
The session introduced the structure of the machine learning course, including its focus on exploratory data analysis, feature engineering and modelling within a complete machine learning pipeline. A group project was outlined in which students were asked to use book metadata to predict Goodreads ratings, clean and analyse imperfect data, compare at least two models, and deliver code, a simple application, a report, a video demonstration and a GitHub repository. The class emphasised that machine learning begins with a clearly defined problem, suitable data and an understanding of how a human would approach the task. It also reviewed Python foundations needed for machine learning, including built-in data structures, mutability and immutability, indexing, conditions, loops and functions.
2. Pandas Inspection, Data Quality and Class Imbalance
The session reviewed pandas data frames, including their tabular structure, indexing, comma-separated values (CSV) import, and the use of head(), tail() and describe() for inspection. It introduced the Titanic data set as a continuing case study and defined the machine-learning task as predicting passenger survival from available passenger information. The class examined data quality issues such as missing ages, identified the target column and ground truth, and discussed class imbalance and its effect on model bias. It also interpreted summary statistics, distributions, standard deviation and outliers, considering when unusual cases should be retained, removed or contextualised through additional features.
3. Feature Extraction and Plotly Visualisation
The session reviewed exploratory data analysis and feature engineering using the Titanic data set, including handling missing values, removing unhelpful columns and considering bias when retaining scarce passenger profiles. It demonstrated how to extract structured titles from unstructured name text using string splitting, indexing, slicing, functions and DataFrame apply operations, then create and analyse a new title feature. The class examined how uneven category frequencies can limit the usefulness of a feature for machine-learning models. It also introduced data visualisation with Plotly, using wine-quality data to inspect distributions, relationships and outliers, housing data to map prices geographically, and stock and country data to show changes over time.
4. Titanic Imputation and Categorical Encoding
The session completed exploratory analysis and feature engineering for a Titanic survival prediction task. It examined missing data, gender, passenger class, age distributions, fares and outliers, using bar charts, pie charts, histograms, distribution plots and box plots to identify relationships with survival. The class discussed removing unhelpful columns, imputing missing ages using grouped averages, and preparing data so that it is numerical and suitable for machine learning. It introduced ordinal/label encoding and one-hot/vector encoding, including their trade-offs, the k−1 rule, and the encoding of binary and passenger-class variables. The session then introduced the distinction between training and testing data, explaining how models learn from labelled examples and are evaluated on unseen examples.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
50h4 ECTS
MLOps by Adaltas
DevOps, GitOps, DataOps, MLOps, unit testing with Spark, CI/CD, artifact deployment, Databricks and MLFlow.
Keeping a learning system reproducible as its inputs change
Machine learning operations (MLOps) was explored as coordination between code, data, models and the people responsible for running them. Git workflows and automated tests led into delivery pipelines, container orchestration and experiment tracking. The later sessions examined data validation and production monitoring, where a model can become unsuitable even when its software continues to run. Labs provided concrete settings for investigating those different failure modes.
What students explored
Controlled changes
Version control, test-driven development and continuous integration connected small code changes with repeatable checks and release preparation.
Reproducible experiments
Data versioning, environments and recorded parameters made the inputs and outputs of an experiment part of the work to preserve.
Operational evidence
Data tests, monitoring and drift analysis examined changes in inputs, behaviour and performance that ordinary software tests may not reveal.
Explore the sessions
1. MLOps Culture, DevOps and Git Foundations
The session introduced machine learning operations (MLOps) as a culture of communication, automation and collaboration between development, data and operations teams. It compared waterfall and agile approaches to software delivery, emphasising frequent releases, feedback and the ability to respond to changing requirements. The class covered core development and operations (DevOps) concepts including service-level measures, semantic versioning, readable naming conventions and community coding standards such as PEP 8. It then introduced Git as a distributed version-control system, explaining repositories, commits, staging, pushing, pulling, branching, merging and merge conflicts through command-line demonstrations.
2. Git Workflows, Virtual Environments and Automated Testing
The session reviewed Agile and Waterfall project-management approaches, explaining why DevOps aligns with Agile through shorter development cycles, collaboration, adaptability and automation. Students practised the essential Git workflow for creating or cloning repositories, tracking changes, reviewing diffs, making conventional commits, and synchronising with remote repositories. The class introduced Python virtual environments and then focused on continuous testing, including the purpose of automated tests for reliable software delivery. It distinguished unit, functional, integration and end-to-end testing, emphasising high unit-test coverage, self-contained tests and avoiding slow or interdependent test cases. Test-driven development was presented as a cycle of writing a failing test, implementing the minimum code to pass it, then refactoring; students were assigned Python exercises using pytest to test input validation functions.
3. Test-Driven Development and CI/CD Pipelines
The session reviewed semantic versioning, explaining that patch releases fix bugs, minor releases add non-breaking changes, and major releases may include breaking changes. It also revisited Git commands for cloning an existing repository, initialising a new local project and pulling remote updates, alongside the distinctions between unit, functional, integration and end-to-end testing. Test-driven development was outlined as writing a failing test before implementing the function, then iterating through passing tests, new features and refactoring. The main topic was CI/CD: continuous integration frequently merges and tests changes, continuous delivery keeps software ready for release, and continuous deployment automatically makes delivered software available to users. Students were assigned a GitHub Actions activity to automate tests and linting across branches and pull-request events.
4. Kubernetes Container Orchestration and Deployment
The session reviewed DevOps as a culture focused on automation, communication, agile delivery and shorter development cycles. It revisited semantic versioning, Git as a distributed version-control system, testing levels, test-driven development, CI/CD, and Docker containers versus virtual machines. The class then introduced container orchestration, explaining why Kubernetes is used to manage decoupled, scalable and resilient containerised services. Key Kubernetes concepts included clusters, control planes, nodes, pods, services, declarative versus imperative configuration, persistent storage and networking. Students were assigned a Minikube lab to practise deploying, exposing and scaling Kubernetes applications locally.
5. Data Versioning and Machine-Learning Platforms
The session reviewed how MLOps differs from traditional DevOps, emphasising that changing data, alongside code, models and environments, must be managed throughout the machine-learning lifecycle. It covered data governance, security, privacy, versioning and the need to improve computational efficiency as model-training costs rise. Students continued practical work on data versioning and examined why large data files should not be versioned directly in Git, including repository-size limits, performance issues and repeated storage of binary-file changes. The class introduced end-to-end machine learning platforms, criteria for selecting them, and Kubeflow as a Kubernetes-based open-source platform supporting notebooks, pipelines, training, model serving and model registries. Students then began installing Kubeflow locally in preparation for platform exploration and machine learning pipeline labs.
6. Data Validation and Model Testing
The session introduced data and model testing within MLOps, showing how machine-learning systems require software, data, model and infrastructure tests across an end-to-end pipeline. It reviewed train, validation and test data splits, including cross-validation, and explained their role in avoiding data leakage, overfitting and misleading performance results. Model-testing approaches included baseline comparisons, invariance tests, directional-expectation tests and minimum-functionality tests. Data testing covered schema and null-value checks, outliers, text handling, feature-engineering validation and training-serving skew. Students completed labs using pytest, Great Expectations, data profiling, automated linear-regression testing and GitHub Actions-based continuous integration and delivery.
7. Experiment Tracking with Kubeflow Pipelines
The session introduced experiment tracking in MLOps as a way to ensure reproducibility, support iteration and improve collaboration. It covered recording model parameters, training data, dataset splits, features, results, metrics, environments and dependency versions so that experiments can be compared and repeated reliably. The class considered the value of saving generated artefacts such as plots and visualisations, rather than recreating them, to reduce computational cost and simplify reporting. Students began a Kubeflow lab that involved creating a pod and pipeline to run and track machine-learning experiments, alongside discussion of choosing suitable open-source or proprietary tools.
8. Production Monitoring and Model Drift
The session covered monitoring in production MLOps systems, including standard operational measures such as service availability, resource use, network behaviour and hardware utilisation. It explained why machine learning pipelines also require monitoring of data quality, schema changes, missing or discontinued features, data outages, bias and performance across different user segments. The class distinguished data drift, where input-feature distributions change, from concept or target drift, where the relationship between inputs and outcomes or the business problem changes. It considered gradual and sudden causes of drift, how declining performance can trigger retraining or full model redevelopment, and the need for defined key performance indicators (KPIs) to balance remediation against computational and staffing costs. Students then worked on a practical Evidently notebook lab to detect data drift and deliberately induce model failure.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Data Wrangling with SQL
Relational databases, advanced SQL queries, stored procedures, triggers, dynamic SQL and Microsoft SQL Server.
Turning a business question into a precise database query
The sessions connected relational structure with the questions people ask of business data. Students restored databases, inspected tables and wrote Structured Query Language (SQL) queries before examining joins, missing records and normalisation. Small wording differences mattered: finding a matching product, an order without an invoice or a customer who bought every product required different reasoning about relationships and the records a query would return.
What the sessions explored
Inspecting unfamiliar data
Keys, schemas, row counts and collation provided starting points for understanding a database before drawing conclusions from its contents.
Expressing relationships
Self-joins, filters and missing-record queries connected business questions with explicit comparisons between rows and relationships between tables.
Checking structure
Normal forms and functional dependencies exposed possible inconsistency, while aggregation and division queries tested more demanding conditions across related records.
Explore the sessions
1. Connecting relational models with database systems
The session introduced relational databases, explaining how tabular data is organised into rows and columns and how tables are linked through primary and foreign keys. It contrasted relational and non-relational data models, using document and key-value structures to show why highly variable data may create sparse tables. The class explained client-server database architecture, including database servers, clients, web interfaces, back-end code, SQL queries, connection details and access permissions. It also compared proprietary and open-source database systems, and outlined the course case-study approach and SQL-based assessment.
2. Inspecting schemas and writing selection queries
The session covered restoring a SQL Server database from a backup file, including verifying the backup and using the database interface to inspect tables. It reviewed relational tables, primary and foreign keys, schemas, and the use of schemas for functional organisation and access permissions. Students wrote basic SQL queries using SELECT, FROM, USE and COUNT, and discussed why row counts should be checked before using SELECT * on an unfamiliar or very large table. The class also examined database collation, including case and accent sensitivity, and explored customer data to identify data-quality inconsistencies and infer how customer and billing identifiers were structured.
3. Comparing products and finding missing invoices
Self-joins compared product prices, including a query for non-USB products priced at least as highly as a USB product. Text filters, wildcard placement and case conversion affected which rows matched; DISTINCT addressed repeated results from multiple comparisons. An entity–relationship diagram then connected customers, orders and invoices through their keys. The class explored orders without invoices using an outer join with missing-value filtering and alternative subqueries. These examples led into invoice structure: identifiers, dates, line items, quantities, prices and totals. The queries were examined in their data context, without asserting that every alternative behaves identically for all missing values.
4. Examining dependencies and normalising database structures
The session reviewed database normalisation, covering first, second, third and Boyce-Codd normal forms, functional dependencies, atomic values, composite keys and the risks of duplicated or dependent non-key data. Examples from a sample database were used to identify non-atomic JavaScript Object Notation (JSON)-style fields and third-normal-form breaches that could create inconsistent customer and invoice information. The class then restored and explored a second SQL Server database, checked table keys and case-sensitive collation, and used the graphical interface to add and edit a city column. Finally, it practised GROUP BY, COUNT and HAVING, then developed two approaches for finding customers who had bought every product, including a division query using nested NOT EXISTS conditions.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
50h4 ECTS
Cloud Computing — Amazon AWS
AWS cloud services and preparation for AWS Certified Solutions Architect – Associate.
Examining data movement and recovery choices in cloud systems
These sessions examined how data moves through Amazon Web Services (AWS), and how an architecture can recover when something goes wrong. Data ingestion and processing led into backups, replication and recovery strategies. Revision activities then connected these choices with wider architectural questions about security, availability and cost. The account follows the supplied sessions rather than presenting them as an exhaustive introduction to every AWS service.
What the sessions explored
Moving and preparing data
Batch and streaming pipelines introduced choices for ingesting, cataloguing, transforming and querying data, including quality checks and handling sensitive information.
Planning recovery
Backups, replication and redeployment were compared against recovery objectives, with attention to corruption, regional failures, cost and operational complexity.
Reviewing architectural choices
Knowledge checks and assessment preparation revisited the reasons for selecting particular services, rather than treating a product name as an answer.
Explore the sessions
1. Moving and processing data in AWS
The session introduced data engineering on AWS, focusing on the five Vs of data: value, veracity, volume, velocity and variety. It explained data pipelines, including extract, transform and load (ETL) and extract, load and transform (ELT) approaches, structured and unstructured data, and the choice between batch and streaming processing. AWS ingestion services were covered, including AppFlow for software-as-a-service data, DataSync for file transfers, and Data Exchange for third-party data. The class examined AWS Glue for data catalogues, crawlers, ETL jobs, schema management, data quality and handling sensitive information. Streaming tools including Kinesis Data Firehose, Kinesis Data Streams, managed Apache Flink and Kafka services were compared, alongside data lakes, data warehouses, Lake Formation, Athena, Redshift and OpenSearch.
2. Planning recovery across a cloud architecture
Disaster recovery planning connected acceptable data loss and recovery delay with storage, computing, databases and networks. Backups, snapshots and cross-region replication were compared, including why replication alone does not protect against corruption. The class reviewed storage migration, lifecycle management and shared file services, then considered machine recovery, automatic scaling, load balancing and regional failover. Managed database recovery and repeatable infrastructure deployment added further recovery options. A guided hybrid-storage lab covered configuring storage, moving files to Amazon Simple Storage Service (S3) and replicating data into another region, connecting architectural choices with the mechanics of protecting and moving data.
3. Comparing recovery patterns against business needs
The session completed the disaster recovery module by reviewing recovery point objectives (RPOs), recovery time objectives (RTOs), and the relationship between disaster recovery and business continuity planning. It covered AWS services and approaches for resilience, including S3 replication, Storage Gateway, Amazon Machine Images, snapshots, CloudFormation infrastructure as code, Route 53 health checks and failover. Four disaster recovery patterns were compared: backup and restore, pilot light, warm standby, and multi-site active-active, with emphasis on their cost, recovery speed and suitable use cases. Students worked through knowledge-check and exam-style questions on selecting the appropriate recovery pattern and AWS service for different scenarios. The session also introduced the certification exam structure, exam guide and practice-question resources.
4. Using revision questions to guide preparation
Certification preparation used a modular study guide and short quizzes to identify topics needing further revision. The material revisited computing, storage, networking, databases and security, alongside name resolution, logging, resilience, performance and cost. Students were shown how quiz results could guide their study rather than treating every topic as equally familiar. Additional resources included hands-on AWS practice environments, an architecture project and configurable practice tests. The session concerned ways to prepare and assess understanding; the source does not establish completion of the project or an eventual certification result.
5. Reviewing architecture choices and assessment questions
The session reviewed commonly misunderstood AWS concepts in preparation for an assessment. It covered service-level agreements, Elastic Compute Cloud (EC2) Auto Scaling, S3 durability, encryption and access logs, virtual private cloud (VPC) networking, network address translation (NAT) gateways, VPC peering, security groups and availability zones. It also compared relational databases with DynamoDB, explained Identity and Access Management (IAM) permissions and roles, and distinguished CloudWatch, CloudTrail and AWS Config for monitoring and auditing. Further topics included messaging with SNS and SQS, CloudFormation, caching, VPC flow logs, cost-allocation tags, SSL offloading, and gateway versus interface VPC endpoints. Practice-question answers were used to reinforce how to select appropriate AWS services for performance, security, scalability and cost management.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
50h4 ECTS
Big Data Ecosystem by Adaltas
HDFS, scheduling, resource management, ETL, scalable enterprise service bus, Spark, data exploration and visualisation.
Following data through distributed storage, processing and streams
These sessions followed data across a distributed system: where it is stored, how work is divided, and how results move between services. Hadoop, Spark, Kafka and NiFi supplied different parts of that picture. Labs and demonstrations connected architecture with queries, processing jobs and data flows, while fault tolerance, access control and operational limits remained part of the discussion rather than separate concerns.
What students explored
Distribution and reliability
Replication, cluster roles and failure scenarios exposed the trade-offs behind spreading storage and computation across machines connected by a network.
Queries and processing
Hive tables, MapReduce jobs and Spark DataFrames connected storage formats and execution choices with practical ways to query and transform data.
Streams and data flows
Kafka events and NiFi pipelines introduced time, delivery, queues and provenance as concerns when data keeps arriving and moving between systems.
Explore the sessions
1. Big Data Distributed Systems and Hadoop Foundations
The session introduced big data as data that cannot be stored or processed effectively by a single machine, focusing on volume, velocity and variety. It explained distributed systems, horizontal and vertical scaling, clusters and nodes, along with the benefits and challenges of distributing computation across networked machines. The consistency, availability and partition tolerance (CAP) theorem was used to compare consistency, availability and partition tolerance in distributed data storage. The Hadoop ecosystem was outlined, including Hadoop Distributed File System (HDFS) for storage, Yet Another Resource Negotiator (YARN) for resource management, and processing tools such as MapReduce and Spark. Students began a practical activity by connecting securely to a Hadoop edge node through Secure Shell (SSH) and practising basic Linux command-line use.
2. Hive Data Warehousing and Medallion Architecture
The session reviewed distributed systems, Hadoop HDFS and YARN, including master, worker and edge nodes, replication, fault tolerance and high availability. It distinguished online transaction processing (OLTP) from online analytical processing (OLAP) systems and compared databases, data lakes, data lakehouses and data warehouses, including atomicity, consistency, isolation and durability (ACID) properties. The class introduced Apache Hive as a data-warehouse tool built on HDFS, using HiveQL and execution engines to query stored data. It covered external versus managed Hive tables, row-based and columnar file formats, Hive partitioning, and the bronze, silver and gold stages of the medallion architecture. Students then began practical Hive exercises creating and querying external and managed tables, including use of ORC files.
3. HDFS Storage and MapReduce Processing
The session reviewed core big-data concepts, including the three Vs, data types, horizontal versus vertical scaling, networking risks and the CAP theorem. It covered Hadoop’s main components: HDFS for distributed block storage, YARN for cluster resource management, and MapReduce for distributed processing. The class examined how HDFS splits and replicates files, why small files create metadata overhead, and why processing should be located with the relevant data blocks where possible. MapReduce was introduced through a word-count example, explaining map, shuffle and sort, reduce, network communication, and disk-based fault tolerance. Students then worked on Hadoop-based Python MapReduce word-count exercises and began designing a MapReduce job from scratch.
4. Spark Architecture, DataFrames and SQL
The session reviewed distributed-system reliability, including single points of failure, standby NameNodes, split-brain scenarios, leader election and ZooKeeper heartbeats. It compared MapReduce and Spark, covering disk-based versus memory-based fault tolerance, resilient distributed datasets, transformations and actions, lazy evaluation, and narrow versus wide transformations and shuffles. The teaching then introduced Spark DataFrames and Spark Structured Query Language (SQL) as higher-level, more readable alternatives to low-level resilient distributed dataset (RDD) programming, explaining schemas, the Catalyst Optimiser and the benefits of explicitly defining schemas for large production data sets. Students began a practical Docker-based Jupyter lab using New York City taxi data to explore DataFrame operations, SQL queries and joins, with exercises requiring work in both PySpark and Spark SQL.
5. Kafka Event Streaming and Time Semantics
The session introduced real-time event streaming, distinguishing unbounded streams from bounded datasets and comparing hard, soft, near-real-time and batch processing requirements. It reviewed stream-processing concepts including event time versus processing time, windows, triggers and watermarks, and strategies for refining aggregated results. The class then examined Kafka as an event-streaming platform, covering events, producers, consumers, brokers, topics, partitions, offsets and consumer groups. It explained partitioning by round-robin allocation or message keys, replication through leaders and followers, producer acknowledgements and delivery guarantees, and leader election using KRaft rather than ZooKeeper. Students were asked to deploy a Kafka cluster in containers, run a consumer, and optionally process streamed events with Python, Spark or an extract, transform and load (ETL) service.
6. NiFi Data Flow and Pipeline Design
The session reviewed OLAP and OLTP workloads, row-based and columnar file formats, the medallion architecture, Apache Spark, and Kafka’s publish-subscribe model. It introduced Apache NiFi as a tool for managing data flows and compared ETL, extract, load and transform (ELT) and light-transformation loading pipelines. The class covered NiFi’s security, scalability, delivery guarantees, data provenance and lineage, clustering, registry-based version control, and core components including flow files, processors, connections, funnels and process groups. It also considered why NiFi is best suited to moving data and carrying out light transformations rather than heavy processing. Students began a practical Docker-based lab to build, version and document a basic NiFi data flow.
7. NiFi Flow Configuration and Operations
The session reviewed Apache NiFi as a tool for building ETL and ELT data flows, contrasting transformation before loading with transformation after loading into a data lake. It covered NiFi architecture, including flow files, metadata attributes, content, provenance, repositories, processors, controller services and clustering. The class demonstrated the NiFi interface, process groups, ports, funnels, connections, relationships, queues, back-pressure thresholds, load balancing and debugging. It also explained scheduling, retry and penalty behaviour, parameter contexts, expression language, and version-control alternatives following the planned retirement of NiFi Registry. Students were assigned sequenced labs to build increasingly complete pipelines, culminating in consuming Kafka streams with NiFi, transforming the data, and loading cleaned results into PostgreSQL.
8. Hadoop Security and Object Storage
The session reviewed distributed cluster roles and introduced four security principles: identification, authentication, authorisation and encryption. It explained how LDAP, Kerberos, Apache Ranger, Knox and Atlas can support identity management, ticket-based access, role-based permissions, gateway access and governance in Hadoop ecosystems, with comparisons to cloud-native tools. The class then compared file, block and object storage, focusing on object storage features such as buckets, metadata, flat namespaces, immutability, S3-compatible application programming interfaces (APIs) and storage tiers. Software-defined storage, MinIO, Ceph and erasure coding were discussed as ways to provide scalable, resilient cloud storage. Students were assigned a lab to deploy MinIO in Docker and create and manipulate object-storage buckets.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Data Science & AI avancées215h • 32 ECTS
Modélisation avancée, deep learning et systèmes complexes
Ce bloc constitue le cœur de la modélisation avancée : statistiques de grande dimension, survival analysis, inverse problems, bases graphes et documentaires, deep learning, ABM et web sémantique.
35h4 ECTS
Advanced Statistical Analysis and Machine Learning
Multiple linear regression, CART, random forests, feature selection, model comparison and practical applications in R.
Advanced Statistical Analysis and Machine Learning
Course code: ADSAI-001
Asking what makes a fitted model worth trusting
Regression and tree-based methods were examined through their assumptions, diagnostics and selection choices. Work in R connected fitted output with residual behaviour, interval interpretation and the effect of adding variables. The sessions then considered penalisation, pruning and data splitting, retaining a distinction between explaining a relationship and predicting a new observation. A dataset-methodology session brought those questions back to the purpose of an analysis.
What students explored
Interpreting fitted output
Residuals, confidence intervals and prediction intervals connected a model's numerical output with the assumptions needed to interpret it.
Choosing complexity
Variable selection, penalisation and tree pruning examined the trade-off between fitting available observations and performing usefully on new data.
Protecting the evaluation
Training, validation and isolated test data supported comparisons while the analysis question and domain context guided interpretation.
Explore the sessions
1. Linear Regression and Ensemble Methods
The class introduced simple and multiple linear regression using R, including fitted lines, model output, confidence intervals for mean responses and prediction intervals for new observations. It explained variable selection in multiple regression, comparing exhaustive, stepwise, ridge and lasso approaches, and noted the effect of correlated explanatory variables. The session also outlined analysis of variance for qualitative variables, regression and classification trees, and random forests as a way to stabilise unstable trees. It then developed the simple linear regression model, least-squares estimators, their unbiasedness and variance properties, assumptions on errors, and the role of random vectors, covariance and Gaussian distributions. Model checking through residuals, standardised and studentised residuals, quantile–quantile (Q–Q) plots and goodness-of-fit testing was introduced.
2. Linear Regression Residual Diagnostics
The session covered validation of simple linear regression assumptions using residual diagnostics, focusing on homoscedasticity, zero-mean errors and Gaussian error distributions. Residual-versus-fitted plots were used to identify changing variance and systematic imbalance around zero, with simulations illustrating why heteroscedasticity invalidates several inferential quantities in model output. The distinction between unobservable errors and residuals was explained, including why residuals need not have identical variances even when the errors are homoscedastic. Standardised residuals, histograms and normal quantile–quantile (Q–Q) plots were introduced to assess normality, alongside an explanation of empirical distribution functions and quantiles. The session concluded by motivating studentised residuals and a future Kolmogorov–Smirnov test for quantifying departures from normality.
3. Multiple Regression and Interval Estimation
The session completed simple linear regression by distinguishing prediction intervals for a new observation from confidence intervals for its expected value, explaining why prediction intervals are wider and how both change away from the mean explanatory value. These intervals were calculated manually and checked against R output, with emphasis on the assumptions required for results to be meaningful. Multiple linear regression was then introduced, including data preprocessing, the distinction between numeric and qualitative explanatory variables, and how R treats factors within analysis of covariance. The multiple regression model was written in matrix form, and the least-squares estimator was derived using gradients and matrix operations. The class considered invertibility, linear dependence and multicollinearity among explanatory variables, showing that different equivalent model parameterisations can produce identical predictions. Finally, the session introduced testing overall model significance, multiple-testing corrections, and the motivation for variable selection.
4. Multiple Regression Assessment and Influence
The session developed multiple linear regression model assessment, focusing on the limitations of the multiple R-squared statistic and the use of adjusted R-squared to balance goodness of fit against model complexity. It used geometric projections and software demonstrations to show why ordinary R-squared increases as explanatory variables are added, even when those variables are irrelevant. The class considered diagnostic checks for residual behaviour, including plots for zero mean and constant variance, tests for heteroscedasticity and normality, and the identification of influential observations. It then derived prediction intervals for a new response under Gaussian assumptions, distinguishing intervals for a future observation from those for the expected response. The session also discussed the differing definition of R-squared when no intercept is included and introduced forthcoming approaches to variable selection, including exhaustive, stepwise, ridge and lasso methods.
5. Variable Selection and Penalised Regression
The session reviewed variable selection for multiple linear regression using exhaustive search, forward selection, backward elimination and stepwise selection. These methods were illustrated in R, using adjusted R-squared and Fisher tests to choose or remove explanatory variables, and their computational costs were compared. Models selected by different methods were evaluated by splitting data into training and test sets and comparing prediction errors. Penalised regression was introduced through ridge regression and lasso, including L1 and L2 penalties, the role of the tuning parameter lambda, cross-validation and the one-standard-error rule; lasso was highlighted as performing variable selection. The session then introduced one-factor analysis of variance as a special case of multiple linear regression, using indicator variables for qualitative factor levels.
6. Classification and Regression Trees
The class introduced CART (Classification and Regression Trees), including tree terminology, binary splits, node numbering, leaves and the recursive construction of trees. It explained how possible splits are defined for quantitative and qualitative predictors, and how regression trees maximise variance reduction while classification trees maximise impurity reduction using measures such as the Gini index and Shannon entropy. Examples in R used the Iris data to interpret tree outputs, posterior probabilities, predicted classes, losses and decision regions, alongside a regression-tree example. The session then covered maximal trees, overfitting, cost-complexity pruning, nested subtrees, cross-validation and the one-standard-error rule for selecting a final tree. It also introduced surrogate splits for handling missing predictor values and noted the instability of CART as motivation for later study of random forests.
7. Exploratory Dataset Methodology and Correlation
The session introduced a methodology for exploring a new dataset, beginning with clarifying the business question, intended audience, reporting format, assumptions and practical decision-making context. Using a wine-quality dataset in RStudio and R Markdown, the class loaded and cleaned data, identified variables and outputs, produced descriptive statistics, and discussed the importance of domain knowledge when interpreting values and outliers. It covered the curse of dimensionality, correlations and scatterplot matrices, including Pearson, Spearman and Kendall correlations, and the limitations of using correlation alone for feature selection because of variable interactions. The class then distinguished prediction from interpretation, and explained model selection using training, validation and isolated test sets, cross-validation, bagging, random versus stratified splitting, and the risks of overfitting and test-set leakage.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Statistical Analysis of Massive and High-Dimensional Data
Analysis of large datasets including open data and social networks, with modern statistical tools and practical implementation in R.
Statistical Analysis of Massive and High-Dimensional Data
Course code: ADSAI-002
Comparing models without letting the comparison favour them
The sessions connected the diversity of data with the difficulty of choosing and evaluating a model. Classification examples led into nested validation, kernel methods and dimensionality reduction, before the class examined clustering and mixture models. Visualisations in R made boundaries and groupings inspectable, while reference methods, model complexity and uncertainty remained part of the comparison rather than being hidden behind a single score.
What students explored
Fair comparisons
Separate tuning and evaluation, reference methods and repeated validation helped assess whether a classifier comparison was measuring useful differences.
Representing many variables
Principal components and sparse representations introduced choices about extraction, selection and the interpretation of reduced dimensions.
Interpreting clusters
Mixture models, initialisation and model-selection criteria connected a proposed grouping with uncertainty and alternative ways of describing the data.
Explore the sessions
1. Statistical Learning, Data Types and Project Workflow
The session introduced statistical learning within the wider field of artificial intelligence, emphasising the trade-off between model complexity, usability and interpretability. It discussed challenges in artificial intelligence, including reliable decision-making, heterogeneous data, limited supervision, and small high-dimensional datasets, using medical screening, metabolomics and electricity-consumption analysis as examples. Different data types were distinguished, including continuous, count, ordinal, categorical, image, functional, network and text data, alongside the practical stages of a data-science project and the treatment of missing, abnormal and extreme values. Classical descriptive statistics for univariate and multivariate data were reviewed, including covariance and correlation matrices, box plots, scatter plots and pair plots. The session then defined statistical learning, machine learning, supervised and unsupervised learning, and explained regression, classification, clustering and dimensionality reduction, ending with the need to use separate learning and validation data when evaluating supervised models.
2. Nested Cross-Validation and Binary Classification
The session reviewed validation and cross-validation for comparing classifiers on flower measurements, including linear discriminant analysis (LDA), k-nearest neighbours (KNN) and quadratic discriminant analysis (QDA). It showed how to tune the number of neighbours in KNN, explained why nested cross-validation is needed to evaluate a tuned method fairly, and compared average errors and their standard deviations. Classification boundaries were visualised in two dimensions to contrast the linear behaviour of LDA, quadratic boundaries from QDA, and data-dependent boundaries from KNN. Logistic regression was introduced as a maximum-likelihood binary classifier based on modelling log-odds, and was applied to a binary version of the flower problem. Support vector machines were then introduced through nonlinear feature mappings, maximum-margin separating hyperplanes, support vectors and kernel functions.
3. Kernel Support Vector Machines and Model Selection
The session compared linear and quadratic discriminant analysis, then used support vector machines with linear, polynomial and radial basis function kernels for multiclass classification. Classification boundaries were visualised, and cross-validation was used to tune polynomial degree and the radial basis function kernel parameter gamma, before double cross-validation compared LDA, QDA, KNN and support vector machine methods on the Iris data. The importance of retaining reference methods and selecting models according to validation error was emphasised. The class then introduced unsupervised learning, distinguishing dimensionality reduction from clustering, and feature extraction from variable selection. Principal component analysis, probabilistic PCA and sparse PCA were explained, including dimension selection, correlation circles for interpretation, and an R exercise using Swiss socioeconomic data.
4. Gaussian Mixture Clustering and EM Algorithm
The session reviewed clustering as unsupervised classification and introduced mixture models, particularly Gaussian mixture models, in which latent variables represent cluster membership. It explained the EM algorithm as an iterative expectation and maximisation procedure for estimating mixture parameters, assigning observations through posterior probabilities, and addressing local optima through multiple initialisations. Model constraints and selection were discussed, including the relationship between K-means and a restricted Gaussian mixture model, and use of the Bayesian information criterion (BIC) to balance fit against complexity and choose both a model and the number of clusters. Practical R demonstrations applied K-means, hierarchical clustering and Gaussian-mixture clustering to Swiss village data, comparing cluster interpretations, dendrogram linkage methods, uncertainty and BIC values. The session also considered whether dimensionality reduction should occur before or after clustering, showing that the order can change the resulting partition.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h3 ECTS
Survival Analysis
Parametric, non-parametric and semi-parametric survival analysis techniques.
Studying time to an event when observation ends first
Survival analysis introduced data in which an event may not have been observed before follow-up ends. The sessions connected that incomplete observation with survival curves, censoring assumptions and regression models. Examples in R moved from estimating curves to interpreting covariate effects and checking model assumptions, with particular care over the difference between a hazard, a probability and a change in survival time.
What students explored
Incomplete observation
Censoring and numbers at risk shaped the interpretation of estimated survival curves and the uncertainty around them.
Comparing event rates
Cox models connected covariates with hazard ratios, reference categories and model comparisons while accounting for right-censored observations.
Checking the model
Diagnostics, time-varying covariates and alternative time-based models examined what to do when a simple proportional-hazards interpretation is inadequate.
Explore the sessions
1. Statistical Inference and Significance
The session introduced the structure of the survival analysis course, including duration data, non-parametric survival methods, Cox proportional hazards models, model checking and advanced machine-learning approaches. It refreshed statistical inference, covering populations and samples, sampling methods, uncertainty, estimation, confidence intervals and hypothesis testing. The class distinguished statistical significance from practical significance, explained p-values and Type I and Type II errors, and compared statistics with machine learning. It reviewed the normal distribution, standardisation, probability functions in R and simulation of data. Students also began working with R and RStudio, including linear regression, model interpretation, prediction and diagnostic checks of model assumptions.
2. Survival Functions, Censoring and Kaplan–Meier Estimation
The session introduced survival analysis as the study of time to an event, using examples from medical, industrial, behavioural and customer-retention settings. It defined survival, cumulative distribution, density, hazard and cumulative hazard functions, including median survival time and the relationship between survival and hazard. Right censoring, left censoring and the assumption of non-informative censoring were explained, alongside the effect of shrinking numbers at risk on confidence intervals. Students learned the Kaplan–Meier estimator and the Nelson–Aalen alternative, then used R to estimate and plot survival curves, censored observations and cumulative survival. The session also introduced comparisons between group survival curves using the log-rank test and illustrated these methods with animal-behaviour, cancer and smoking-cessation data.
3. Cox Proportional Hazards Regression
The session introduced Cox proportional hazards regression as a semi-parametric model for assessing the effects of categorical and continuous covariates on hazard rates while accounting for right censoring through partial likelihood. Hazard ratios were interpreted for binary, continuous and multi-level categorical predictors, including the importance of reference categories, confidence intervals and distinguishing hazard from probability. Practical R examples fitted Cox models to rat, lung cancer, smoking and smoking-cessation data, including changing reference groups, estimating predicted survival curves and examining multivariable effects. The class also covered comparing nested models with likelihood-ratio tests and analysis of variance, comparing models with the Akaike information criterion (AIC), automated model selection, and the concordance index as an indicator of predictive performance.
4. Cox Diagnostics, Time-Varying Covariates and AFT Models
The session reviewed Cox model diagnostics, including Martingale and DFBETA measures of coefficient influence, tests and plots for the proportional hazards assumption, and approaches for violations such as stratification, truncation and time interactions. Practical R examples showed how time-varying covariates require start–stop data structures and can substantially alter estimated hazard ratios, using transplant, employment and treatment data. The class introduced accelerated failure time models, contrasting their parametric assumptions and time-ratio interpretation with the hazard-ratio interpretation of Cox models. It also introduced ridge regression, lasso and elastic net methods for high-dimensional survival modelling, explaining regularisation penalties and cross-validation for selecting tuning parameters.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Inverse Problems & Data Assimilation
Variational and sequential data assimilation for initial condition identification and parameter estimation, with Python applications.
Recovering hidden states from incomplete and noisy observations
The class examined how a mathematical model can be combined with observations to estimate quantities that cannot be measured directly. Noise, missing information and unstable solutions were part of the problem from the outset. Regularisation, adjoint methods and filtering offered different approaches, with a numerical experiment showing why the details of a discretised model matter when checking and improving an estimate.
What students explored
What observations can establish
Existence, uniqueness and sensitivity examined through inverse problems, with regularisation introduced to stabilise estimates made from incomplete or noisy information.
Using models to improve estimates
Variational methods and backward adjoint calculations connected observations over time with the optimisation of initial conditions and model parameters for forecasting.
Representing uncertainty at manageable cost
Reduced-rank and ensemble methods compared with other filters, balancing the representation of uncertainty against computational demands in high-dimensional dynamical systems.
Explore the sessions
1. Understanding instability before estimating unknown quantities
Direct problems mapped known inputs to outputs; inverse problems sought unknown inputs or parameters from observations. Differentiation, image deblurring and tomography illustrated questions of existence, uniqueness and sensitivity to data. Regularisation introduced a way to stabilise a solution, with parameter choices affecting conditioning and optimisation. Data assimilation then combined physical models with sparse, noisy measurements. Weather and ocean examples introduced dynamical behaviour, observation models and heterogeneous measurements, making uncertainty part of the formulation rather than an afterthought.
2. Deriving an adjoint for variational assimilation
Four-dimensional variational assimilation sought an initial state that balanced a background estimate with observation mismatches over time. Model dynamics entered as constraints, leading to direct, adjoint and optimality equations. Solving the adjoint backwards provided a gradient for optimisation. The class examined why discretising a continuous adjoint may not produce the correct discrete gradient. Calibration extended the approach to model parameters as well as initial conditions, connecting the derivation with forecasting and digital-twin applications without removing that consistency requirement.
3. Approximating uncertainty and comparing filtering methods
Reduced-rank filtering addressed the cost of storing and propagating large covariance matrices. Leading eigenvalues and eigenvectors represented important uncertainty directions in a smaller form. Comparisons with standard and extended Kalman filters used a non-linear transport model to examine linearisation and propagation choices. Ensembles introduced empirical covariance estimates from several model states. Nudging offered a lower-cost approach that relaxes a model towards observations, with stability conditions considered alongside its relationship to filtering and variational methods in the session.
4. Testing a discrete adjoint in a twin experiment
The discrete Lorenz adjoint was developed alongside a constructed reference trajectory and noisy, intermittent observations. A cost function combined background information with observation errors. Gradient checks examined whether the adjoint matched the discrete forward scheme, rather than assuming that a continuous derivation could simply be discretised. Optimisation methods were compared; a quasi-Newton method recovered a trajectory close to the reference in the experiment. Model coupling also allowed an unobserved variable to be estimated within that particular setup.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Graph Databases — NoSQL Part 1
Preparation for Neo4j Certified Professional and graph-based problem modelling with practical Neo4j implementations.
Making relationships the starting point of a database query
Graph-database work began with nodes, relationships and the questions their connections can answer. The sessions used Neo4j and Cypher to move from matching a pattern to importing data, applying constraints and inspecting query plans. Aggregations and temporal values extended the queries, while a continuing graph exercise and discussion of deployment options connected the data model with its practical use.
What students explored
Modelling connections
Labels, properties and directed relationships connected graph concepts with queryable data, using a movie dataset for practical examples.
Loading and querying
Imports, uniqueness constraints and traversal patterns were examined alongside optional matches, duplicate removal and the inspection of execution plans.
Working with results
Aggregations, projections, lists and temporal calculations supplied ways to turn matched relationships into useful structured output.
Explore the sessions
1. Neo4j Graph Fundamentals and Cypher Queries
The session introduced Neo4j as a native, schema-optional graph database and compared its relationship-focused storage with relational databases. It covered graph theory fundamentals, including nodes, relationships, directed and weighted graphs, labels, properties and shortest-path traversal. Students explored common graph-database applications such as fraud detection, recommendation systems and network analysis. The class introduced Cypher syntax for matching, filtering and returning nodes and relationships, using a movie graph dataset for practical queries. Students also practised creating nodes and relationships with MERGE, updating or removing properties, and using conditional creation and matching behaviour.
2. CSV Import and Advanced Cypher Querying
The session demonstrated how to import comma-separated values (CSV) data into Neo4j, create uniqueness constraints, load person, location and visit nodes, and create relationships between them. It then introduced intermediate Cypher querying, including case-insensitive string filtering, checking query plans with EXPLAIN and PROFILE, and writing efficient graph traversal patterns. Further activities covered OPTIONAL MATCH, ordering, filtering null values, limiting and paginating results, and removing duplicates with DISTINCT. The class also practised map projections and CASE expressions to customise returned JSON-style objects and categorise movie runtimes.
3. Cloud Neo4j, Aggregations and Temporal Cypher
The session introduced cloud computing models, service types and deployment approaches, including the benefits and limitations of public, private, hybrid and multi-cloud environments. It compared using Neo4j through Amazon Web Services (AWS), Google Cloud and Azure marketplaces, including single instances, clustered deployments, containers and relevant certification routes. The class then practised intermediate Cypher queries using aggregation functions such as COUNT, COLLECT, SUM, AVG, MIN and MAX, alongside DISTINCT, UNWIND, list indexing and list slicing. It also covered date, time and duration values in Cypher, including calculating intervals and converting timestamps for comparisons. Students continued the COVID graph mini-project exercises.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
5h2 ECTS
Document Databases — NoSQL Part 2
MongoDB collections, documents, advanced queries, aggregations, architecture and practical applications.
Reshaping documents into an answer with an aggregation pipeline
MongoDB sessions connected document structure with the operations needed to inspect and report on it. After comparing database models, students worked with collections, nested values and queries before following documents through ordered aggregation stages. Restaurant data supplied a recurring example, and index discussion connected the logical query with how the database finds its records and selects an access path.
What students explored
Document operations
Collections, embedded fields and arrays provided the setting for creating, reading, updating and deleting records through MongoDB tools and Python.
Aggregation stages
Filtering, grouping, reshaping and joining documents showed how a report can be constructed through a sequence of transformations.
Finding records
Collection scans and index scans framed the discussion of index types and the practical task of querying restaurant data.
Explore the sessions
1. NoSQL Concepts and MongoDB CRUD
The session introduced NoSQL databases, explaining how document, graph, wide-column and key-value databases differ from relational databases and suit different use cases. It compared SQL and NoSQL in terms of schema flexibility, scalability, transaction guarantees, querying, performance, security and vendor lock-in. MongoDB was presented as a document-oriented database using Binary JSON (BSON), with databases, collections, documents, fields, embedded documents, arrays and object IDs. Students installed MongoDB and Compass, created databases and collections, inserted, deleted and updated documents, and imported a restaurant dataset. The class then explored filtering, projections, sorting, pagination, logical operators, comparisons, field existence, regular expressions and array queries, before introducing equivalent operations through the PyMongo Python library.
2. Aggregation Pipelines and Indexing
The session introduced MongoDB aggregation pipelines, in which documents pass through ordered stages such as $match, $project, $group, $unwind, $sort and $lookup. It demonstrated accumulator operations including counts, sums, averages, minima, maxima, and first or last values, alongside reshaping, cleaning and constructing fields within pipelines. Examples used restaurant data to calculate statistics by borough and cuisine, flatten arrays of inspection grades, create map-ready outputs, and obtain random samples. The class then covered indexes, explaining collection scans versus index scans and the use of single-field, compound, text, unique, time-to-live (TTL), wildcard, collation and geospatial indexes. Practical work was assigned to create indexes and write queries and aggregations that generate a restaurant report.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Deep Learning
Deep learning models in Python, with practical applications in computer vision and natural language processing.
Exploring how models represent images, language and sound
Images, text and audio provided different settings for examining deep-learning models. The class connected architectures with the tasks they serve, moving from convolutional networks to transformers and speech models. Practical activities used pretrained models, while evaluation, data preparation and reproducible comparisons remained part of the discussion. Scores, labels and generated outputs prompted attention to what a model returns and how that response is interpreted.
What students explored
Matching architecture to a task
Image classification, detection and segmentation compared with language and audio tasks, examining the representations and network structures used to process them.
Adapting and evaluating models
Pretraining, fine-tuning, data quality and evaluation measures considered together, including the limitations of benchmarks and the interpretation of model predictions in practice.
Working with pretrained systems
Language and audio activities connected model outputs with practical interpretation, alongside discussion of generation settings, controlled experiments and reproducible reporting of results.
Explore the sessions
1. Connecting visual tasks with convolutional networks
Computer vision tasks ranged from classification and detection to segmentation, pose and depth estimation. The class examined why flattening an image into a general multilayer network can lose useful spatial structure and require many parameters. Convolutional networks introduced filters, receptive fields, padding, stride and pooling as alternatives. A PyTorch classification lab using the CIFAR-10 image dataset was introduced, with normalisation and batching discussed before later fine-tuning work. Historical architectures provided context for the development of these approaches.
2. Moving from visual regions to sequence models
Detection and segmentation introduced bounding boxes, overlapping-region measures and architectures that identify or label image regions. Practical guidance covered pretrained weights, evaluation mode, input transformations and confidence thresholds, with training data informing whether adaptation was needed. Transformers then introduced encoder and decoder arrangements, self-attention and parallel processing. Embeddings, tokenisation and vector similarity connected these models with the representation of sequences, extending the discussion from spatial information in images to the structure used for language tasks.
3. Comparing training objectives and evaluation choices
Different transformer architectures were examined through masked, span-reconstruction and next-token training objectives. General pretraining, domain adaptation and task-specific fine-tuning were connected with the need for curated data. Evaluation covered classification, text-comparison measures, error rates, benchmarks and human judgement, including their limitations. Practical activities used language models for prediction, sentiment, similarity, search and extractive questions. Retrieval-augmented generation connected embeddings with retrieved information. An introduction to Whisper then began the transition to speech recognition, transcription and translation.
4. Interpreting audio outputs and controlling text generation
Project guidance emphasised reproducible experiments, exploratory analysis, controlled comparisons and careful use of generated code. Students practised pretrained audio classification and speech transcription, interpreting scores, labels and language outputs. Waveforms, sampling and spectrograms provided the signal-processing context. Large language models introduced a distinction between base and instruction-tuned systems. Generation strategies and settings were compared through their effects on coherence and diversity, including deterministic selection, sampling and repetition controls rather than a single preferred setting for every task.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Agent-Based Modelling
Complex problem modelling with ABM, comparisons with statistical, Markov and system dynamics approaches, and ABM validation.
Examining what individual interactions change in a model
Agent-based modelling was approached through the purpose and assumptions of a model, not only the software used to run it. The sessions compared population averages with heterogeneous individuals, then considered rules, interactions and update order. Examples from health and decision-making connected model design with uncertainty, calibration and validation, while NetLogo provided an initial setting for exploring an existing model and its documentation.
What students explored
Choosing a representation
Statistical, population-level and agent-based approaches were compared in terms of heterogeneity, feedback and the question the model should address.
Describing the rules
States, interactions, timing and documentation made modelling choices explicit, including decisions that can change the resulting behaviour.
Examining uncertainty
Calibration, verification, validation and sensitivity analysis distinguished matching observations from testing a model and understanding its limitations.
Explore the sessions
1. Modelling Paradigms, Prediction and Markov Chains
The session introduced modelling as a purposeful simplification of reality used to understand relationships and make predictions. It compared statistical models, Markov models, system dynamics, microsimulations and agent-based models, emphasising heterogeneity, interactions between agents, feedback loops and unintended consequences. Predictive modelling was discussed through regression, uncertainty, extrapolation beyond observed data, parameter estimation and Monte Carlo simulation. Markov models were introduced through state transitions, transition matrices, steady states and the distinction between discrete and continuous time. Students were also introduced to NetLogo, opened a segregation model from its library, and explored the software’s interface, documentation, code tabs and support resources.
2. Agent Heterogeneity, Networks and Jensen’s Inequality
The session compared population-averaged system dynamics models with agent-based models, using alcohol use and disease transmission to show how individual histories, heterogeneity and network structure can affect outcomes. It explained Jensen’s inequality and why averaging individual characteristics before modelling non-linear processes can give different results from modelling individuals first and then averaging. Agents were defined through states, transitions, behavioural rules, interactions, networks and environmental resources, with discussion of deterministic and stochastic rules and multiple linked state diagrams. The class introduced decision modelling for selecting between actions under uncertainty, including predictive and prescriptive analysis, decision trees, expected values, utilities, Monte Carlo simulation and Bayesian use of broad and local data. Examples considered clinical treatment choices and emergency responses to wildfire risk, emphasising problem formulation, stakeholder criteria, uncertainty and the costs of possible outcomes.
3. ODD Protocol and Agent-Based Model Design
The class introduced the ODD protocol for documenting agent-based models: Overview, Design Concepts and Details. It examined how to define a model’s purpose, entities, variables, rules, population, boundaries, and temporal and spatial scales. The session compared discrete and continuous time, and explained why update order, synchronisation and sequential processing can affect model outcomes. Design concepts including emergence, agent objectives, adaptation, learning, prediction, sensing, interaction and stochasticity were illustrated through predator–prey and disease-spread models. Students also considered how randomness can produce small or large epidemics and why models should include only the complexity needed for their purpose.
4. Agent-Based Model Verification, Calibration and Validation
The session examined verification, calibration and validation of agent-based models, distinguishing internal testing, fitting models to observed data, and testing predictions or comparisons with other models. It covered calibration strategies for uncertain numerical and categorical parameters, steady states and transitions, time-series fitting, uncertainty bands, and the importance of choosing criteria that match a model’s purpose. Sensitivity, uncertainty and robustness were differentiated, with experimental designs, Monte Carlo simulation, regression and decision trees introduced as ways to assess parameter effects and interactions. The class also considered sources of uncertainty, including parameter estimates, model structure, output interpretation and unpredictable future events. Finally, it used simple epidemic models to explain the susceptible–infectious–recovered (SIR) framework, reproduction numbers, herd immunity and the value and limitations of theoretical models.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h4 ECTS
Semantic Web Technologies
RDF, SPARQL and standards for representing, querying and using knowledge on the web.
How can data from different sources be connected, queried and given a shared meaning? These sessions moved from the foundations of the Web to knowledge graphs, query languages and ontologies. Practical work linked the standards to concrete tasks: describing resources, querying public datasets, modelling a museum collection and predicting what a reasoning system could infer. Modelling choices were examined alongside their social and ethical consequences.
What students explored
Connected data and practical queries
Representing information as linked statements, writing graph queries and working with public datasets, while checking that data is well formed and meaningful.
Models, meaning and inference
Defining classes and relationships, examining what follows logically from them, and recognising how assumptions and ambiguity shape a knowledge model.
Standards in use
Reusing vocabularies, connecting existing data formats and assessing data quality, alongside privacy, accessibility, bias and the need to check generated material.
Explore the sessions
1. From the Web to linked data
The Web was distinguished from the Internet as a distributed hypermedia application, built around Uniform Resource Locators (URLs), the Hypertext Transfer Protocol (HTTP) and Hypertext Markup Language (HTML). The session traced a path through structured documents using Extensible Markup Language (XML) to linked data and Resource Description Framework (RDF) graphs. Knowledge graphs connected named entities and relationships across datasets, supporting search, recommendation, integration, validation and reasoning. Retrieval-augmented generation was another application considered. The discussion also examined data collection, tracking, algorithmic influence and biased datasets, bringing privacy, accessibility and ethics into the technical picture.
2. Building and checking RDF graphs
RDF statements were studied as triples forming directed, labelled graphs. Uniform Resource Identifiers (URIs), literals and blank nodes supplied the building blocks for linking data across datasets. Students practised graph completion and learnt N-Triples, Turtle and RDF/XML syntax, including prefixes, namespaces, typed values and language tags. Activities included validating, converting and visualising data, creating a personal RDF profile and examining an external library dataset. The practical guidance was to test incrementally and check generated RDF rather than copying the output of artificial intelligence without verification.
3. Asking questions with graph patterns
SPARQL, the query language for RDF, introduced a way to ask questions by matching patterns in a graph. Students constructed patterns with triples, variables, prefixes and filters, then practised SELECT queries, distinct results, ordering and pagination. Remote endpoints such as DBpedia and Wikidata provided datasets to query. Further exercises used optional patterns, alternatives, exclusions and supplied values, alongside type and language tests, casting and string functions. Translating natural-language requests into queries connected the syntax to a precise account of which graph matches should be returned.
4. Defining vocabularies and drawing inferences
Ontologies were introduced as shared, formal vocabularies that give data meaning and support logical inference. Classes, properties and their definitions were distinguished from taxonomies, thesauri and validation schemas such as Shapes Constraint Language (SHACL). A museum modelling exercise exposed ambiguity, user needs, domain expertise and cultural assumptions. RDF Schema (RDFS) then provided classes, subclass and subproperty hierarchies, domains and ranges. Examples showed how these declarations allow additional types and relationships to be inferred, making the consequences of a model’s definitions visible in the graph.
5. Richer ontologies and open-world reasoning
An RDFS lab showed how loading a schema and enabling reasoning changes the available triples and query results. The Web Ontology Language (OWL) introduced richer class definitions and property relationships, including intersections, disjointness, equivalence, restrictions, inverse relations and property chains. Students interpreted axioms and predicted inferred facts from small graphs, using biological and organisational examples. Restrictions on values and cardinalities extended the modelling possibilities. Open-world reasoning and the absence of a unique-name assumption were central cautions: incomplete information and different names cannot simply be treated as proof of absence or difference.
6. Connecting formats and reusing existing vocabularies
Media Fragments and a media-resources ontology introduced descriptions of image regions, audiovisual segments and tracks. Students considered how to assess existing vocabularies through their definitions, scope, reuse and expressivity, and how validation supports data quality. The session surveyed mappings from relational databases, HTML, JavaScript Object Notation (JSON) and comma-separated values (CSV) into RDF. JSON for Linking Data (JSON-LD) contexts and other mapping standards connected familiar formats to graphs. Practical work included extracting embedded triples, interpreting mappings and converting profiles to JSON-LD. The Linked Data Platform introduced managing RDF resources and containers through HTTP operations.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Méthodologies opérationnelles50h • 4 ECTS
Gouvernance, droit et contexte projet
La data science et l’IA s’inscrivent dans des organisations et des cadres juridiques. Ce bloc aborde la réglementation des données, l’éthique et la méthodologie projet.
25h2 ECTS
Data Laws and Regulations — Philosophies, Geopolitics and Ethics
Data privacy and security principles, EU and US regulation, and differences between common law and code law.
Data Laws and Regulations — Philosophies, Geopolitics and Ethics
Course code: MEL-001
Questioning the rules and responsibilities surrounding artificial intelligence
The sessions examined data and artificial intelligence through law, ethics and geopolitical choices. Discussion moved between regulatory approaches and concrete questions about privacy, discrimination, ownership and human control. Cases involving conversational robots, connected products and autonomous weapons showed why technical capability alone does not settle a decision. The account follows the arguments explored in class, including tensions between innovation, enforceable obligations and the protection of rights.
What students explored
Law and ethical commitments
Different jurisdictions and risk-based regulation provided a setting for distinguishing enforceable duties from voluntary commitments and for discussing competing public priorities.
People and their data
Privacy, consent, data-subject rights and sharing rules connected system design with identifiable people, potential discrimination and the limits of control over information.
Responsibility beyond the model
Human control, professional ethics and supply-chain oversight extended the discussion to how systems are supplied, deployed and used by other organisations.
Explore the sessions
1. Legal, Ethical and Geopolitical Challenges of AI
The session introduced the legal, ethical and geopolitical issues raised by data and artificial intelligence, emphasising that regulation varies across jurisdictions and societal contexts. It explored why artificial intelligence (AI) and data engage areas including data protection, liability, intellectual property, constitutional law, international law and discrimination. Students considered the limits of using AI in legal decision-making, including predictive systems for human-rights cases, balancing legal certainty and efficiency against human interpretation and the evolving nature of law. The class also examined definitions of AI, the distinction between narrow and general AI, calls to regulate future technological risks, and the possible legal personhood of robots. A case discussion considered arguments for and against a conversational robot inheriting an owner’s assets.
2. EU AI Act Risk-Based Regulation
The session examined the development and purpose of the European Union (EU) AI Act, including tensions between innovation, competitiveness, sovereignty, public regulation and private ethical codes. It distinguished legal obligations from voluntary ethical commitments, explaining why enforceable rules and sanctions are significant. The class explored the Act’s risk-based model, covering prohibited, high-risk, limited-risk and minimal-risk AI systems, alongside the duties imposed on providers and other actors. It also considered the Act’s extraterritorial reach, exclusions such as military and research uses, enforcement mechanisms, regulatory sandboxes, and the particular rules for general-purpose AI models. Students discussed practical difficulties in assessing risks to fundamental rights, democracy and human dignity, as well as potential conflicts between European and international regulatory approaches.
3. Privacy, Data Protection and the GDPR
The session introduced data protection law through discussion of children’s data, profiling, algorithmic bias and the limits of consent in digital services. It examined why data protection is important for AI, comparing the European rights-based approach with the more sector-specific approach in the United States. The class covered privacy as a broader concept than information control, including dignity, intimacy, home and communications, and considered the EU Charter rights to privacy and personal-data protection. It then introduced the General Data Protection Regulation (GDPR), including personal data, identifiable natural persons, processing activities, material and territorial scope, and the basic obligations on organisations processing data. Students discussed examples involving health data, policing, profiling, data transfers and cross-border services.
4. Data-Subject Rights, Bias and Data Sharing
The session examined GDPR data-subject rights in AI systems, including access, rectification, erasure, restriction of processing, portability and objection, and explained privacy by design across training and deployment. It considered how biased datasets and algorithmic design can create or reinforce discrimination, and discussed fairness, auditing, impact assessments and ethics by design. The class then introduced the EU Data Act, its application to data from connected products and related services, its relationship with the GDPR, and rules on user-led data sharing, competition, gatekeepers, contracts, compensation and dispute resolution. The final section used neurotechnology to explore mental privacy, brain data, cognitive liberty, and the need for ethical and legal safeguards against misuse by companies or governments.
5. Autonomous Weapons and AI Professional Ethics
The session examined the ethical, legal and professional responsibilities of scientists and data specialists in relation to autonomous lethal weapons and AI used in conflict. It considered the limits of existing regulation, particularly the military exemption in the AI Act, and debated whether emerging technologies should be regulated or prohibited before they are fully developed. The class compared arguments for and against autonomous weapons, including meaningful human control, bias, accountability, international consensus and historical preventive bans on certain weapons. It also discussed whether advanced AI systems merely imitate reasoning or might develop forms of understanding or consciousness, and considered the implications for law and responsibility. Finally, the session explored corporate due diligence, value-chain oversight and contractual controls through examples of technology companies supplying tools that may be used for immigration enforcement, surveillance or defence.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
25h2 ECTS
IT Project Management: Traditional and Agile Approaches
Project management lifecycle and best practices for traditional and agile approaches.
IT Project Management: Traditional and Agile Approaches
Course code: MEL-002
Planning work, reviewing progress and adapting a project
Project management was explored through both structured planning and short delivery cycles. The sessions connected business purpose, scope, resources and stakeholders with sprint planning, review and adaptation. Simulations and practical activities made the methods discussable in terms of work actually planned or reviewed. Traditional and agile approaches were compared through uncertainty, constraints and coordination, rather than presented as a choice with one answer for every project.
What students explored
Purpose and constraints
Business cases, project charters and scope, time and cost constraints connected planned work with the reasons for undertaking it and the resources available.
Feedback and commitment
Sprint reviews, retrospectives, capacity and velocity introduced ways to inspect progress and make realistic commitments as a team learns from delivery.
Coordination across teams
Roles, stakeholder relationships, dependencies and scaled agile practices linked local planning decisions with wider organisational objectives and collective delivery.
Explore the sessions
1. Project Foundations and Agile Sprint Management
The session introduced the course structure and its aim of preparing students to participate in or lead data science projects. It contrasted traditional, waterfall-style project management with agile approaches, explaining time-boxed sprints, sprint reviews, retrospectives, planning and visual task boards. A project was defined as a temporary undertaking with a unique objective, a defined timescale and required resources, distinguishing it from routine operations. The class also examined product and sprint backlogs, prioritisation, team commitment, transparency and measuring progress. Business cases, break-even points, return on investment and the need to reassess a project when business conditions change were introduced.
2. Waterfall Lifecycle, Triple Constraint and Project Vision
The session began with sprint planning and reflection, using completed work and team capacity to agree a realistic commitment for the next sprint. It covered project vision statements, the limitations of AI-generated content, and the need to understand project-management concepts well enough to assess artificial intelligence (AI) outputs critically. Key traditional project-management concepts included the triple constraint of scope, time and cost; project life-cycle phases; uncertainty, risk and the rising cost of change; and the Project Management Institute (PMI) waterfall framework, including project charters, planning, resources, communication, procurement and stakeholder management. Students practised preparing elements of a project charter and assigning stakeholder roles through a responsible, accountable, consulted and informed (RACI) matrix, then discussed stakeholder power and influence. The class also covered Gantt charts, task estimation, S-curves, earned value, cost and schedule variance, key performance indicators (KPIs), and the Plan-Do-Check-Act cycle.
3. Agile Manifesto, Velocity Forecasting and Method Comparison
The session used a simulated sprint review, retrospective and planning exercise to demonstrate approval of completed work, velocity tracking, forecasting and commitment to a minimum sprint scope. It introduced Agile values from the Agile Manifesto, stressing individuals and interactions, working software, customer collaboration and responding to change whilst recognising the continuing value of plans, documentation and contracts. Agile and waterfall approaches were compared in terms of fixed constraints, planning, suitability for different levels of uncertainty, stakeholder involvement and regulated environments. The class examined timeboxing, incremental delivery, technical debt, minimum viable products, proof of concepts, product backlogs, prioritisation and Agile contract models. It also covered the roles of the product owner, Scrum Master and self-managing cross-functional teams, followed by a scenario activity, quiz and video on Agile product ownership.
4. Adaptive Backlogs, DevOps Practices and Scaled Agile
The session showed how an agile backlog can be adapted as new information emerges, using prioritised user stories and changing investigation scenarios to illustrate this process. It emphasised the importance of direct, timely communication for agile teams, particularly where teams are distributed. Agile software development practices included automated testing, continuous integration and delivery, code standards, collective code ownership, technical-debt reduction, and responsible use of AI-assisted programming. The class then introduced scaled agile working through Scaled Agile Framework (SAFe), including Agile Release Trains, programme increments, programme increment (PI) planning, cross-team dependencies, and the roles of product manager, Release Train Engineer and system architect. It also considered how agile delivery can be connected with wider business strategy and product value.
An account of teaching delivered in this course. Content and sequencing may vary between cohorts.
Consolidation et application en contexte professionnel
Les séances d’accompagnement aident à consolider les concepts difficiles, tandis que l’expérience professionnelle valide la capacité à appliquer le programme dans un environnement pertinent.
60h
Support Sessions
Reviewing course topics, answering questions, re-explaining harder concepts and preparing for examinations.
4 to 6 months30 ECTS
Integrated Professional Experience
Internship, employment or contracting experience validated through DSTI’s standard evaluation procedures.
05 — Certifications professionnelles
Des certifications pour la crédibilité en data science.
Les étudiants MSc Data doivent valider la certification Neo4j. Une seconde certification approuvée est fortement recommandée et donne droit à la distinction « with Honours » à l’obtention du diplôme.
Règle MSc Data
Neo4j est obligatoire. Les étudiants Data Science sont également préparés aux certifications AWS et SAS.
Pour Data Science & AI, DSTI met en avant les certifications préparées à travers Amazon AWS cloud computing et SAS Base Programming. D’autres certifications reconnues peuvent être acceptées uniquement après validation de leur niveau et de leur pertinence pour le projet professionnel de l’étudiant par le corps enseignant et la Direction des Études.
ObligatoireCertification Neo4j pour tous les étudiants MSc Data.
Distinction with HonoursUne seconde certification approuvée donne droit à la distinction « with Honours » à l’obtention du diplôme.
Alternatives encadréesLes certifications alternatives sont acceptées uniquement après validation par le corps enseignant et la Direction des Études.
Cette liste n’est pas une liste libre. Chaque certification alternative doit être pertinente au regard du parcours d’études et des objectifs professionnels de l’étudiant, et reste soumise à la validation du corps enseignant et de la Direction des Études.
Un seul programme DSTI, plusieurs façons de rejoindre la classe.
DSTI a été construite autour d’un enseignement connecté. Les étudiants peuvent suivre les cours sur campus, en Live Streamed, ou par le parcours online lorsque ce mode correspond à leur situation.
La data science devient réelle lorsque les modèles sont utilisés de façon responsable.
Le programme inclut une expérience professionnelle intégrée. Le parcours dépend du lieu où l’étudiant est basé et de ce qui a du sens professionnellement.
Parcours principal
Réalisez un stage ou une alternance pertinents, là où votre projet de modélisation et d’IA a du sens.
DSTI peut accompagner une expérience professionnelle en France ou à l’étranger (en stage seulement), sous réserve de validation académique et des règles du programme. La mission doit être cohérente avec les objectifs d’apprentissage.
Stage local
Votre pays ou marché professionnel
Pour de nombreux étudiants Live Streamed ou internationaux, la meilleure option est un stage pertinent sur leur marché local.
Alternative structurée
Option CRCC Asia
Lorsque c’est pertinent, DSTI peut orienter les étudiants vers une option de stage international structurée avec CRCC Asia.
Les étudiants sont accompagnés sur le CV, les profils publics, les candidatures et le positionnement professionnel.
Premières étapes en modélisation
Analyser, modéliser et valider
Les premiers rôles typiques incluent Junior Data Scientist, Machine Learning Analyst, Applied Data Scientist ou AI / ML Intern, selon le niveau en mathématiques, en code et le portfolio projet de l’étudiant.
Progression professionnelle
Passer des modèles à la valeur déployée
Avec l’expérience, les diplômés peuvent évoluer vers Data Scientist, Machine Learning Engineer, MLOps Engineer ou Applied AI Specialist. Le déploiement responsable et la valeur mesurable comptent davantage que l’inflation des intitulés.
08 — Admissions
Admission sélective pour un parcours MSc orienté modélisation.
Le MSc in Data Science & Artificial Intelligence exige une préparation mathématique, un niveau d’anglais suffisant et la capacité de progresser dans des enseignements techniques et statistiques exigeants.
Éligibilité
Bachelor ou équivalent
Les candidats doivent détenir un Bachelor reconnu en 3 ou 4 ans, ou équivalent, dans un domaine où les mathématiques appliquées ont été étudiées, comme les mathématiques, la physique, l’ingénierie, l’informatique ou l’économie.
Examen d’entrée
Utilisé lorsque nécessaire
Les candidats peuvent être invités à passer l’examen d’entrée en ligne de DSTI en mathématiques et IT, notamment lorsque les Admissions ou la Direction des Études ont besoin d’éléments complémentaires.
English (& Français)
B2 minimum
Les cours sont enseignés en anglais. IELTS 6.0, Duolingo 110 ou une preuve équivalente peuvent être demandés. En alternance, un test de français du même niveau est aussi nécessaire, pour votre employabilité.
Exigences informatiques
Ordinateur portable Windows PC
Les étudiants doivent disposer d’un ordinateur portable Windows PC avec au moins 16 Go de RAM, capable de faire fonctionner la dernière version de Windows.
Entrée directe en Année 2 +
Les candidats qui ont terminé, ou terminent, soit une première année d’un programme de niveau Master dans le même domaine, soit un Bachelor en quatre ans dans le même domaine, peuvent demander une entrée directe en Année 2. La Direction des Études décide de l’admission après une évaluation académique spécifique.
Examens communs requis : Applied Mathematics ; Foundations of Statistical Analysis — Part 1 ; Data Wrangling with SQL. Examen(s) complémentaire(s) du programme : Continuous Optimisation ; Artificial Neural Networks.
Continuous Optimisation
Artificial Neural Networks
Les examens se passent en ligne sur DSTI Learn, avec surveillance par computer vision et Safe Exam Browser, dans les 30 jours suivant la candidature.
Des frais supplémentaires d’examen de 50 € sont demandés et crédités sur les frais de scolarité en cas d’admission. La Direction des Études examine les candidats atteignant la note minimale de réussite DSTI de 60 %.
Étudiants internationaux & Live Streamed : 22 janvier 2027
Étudiants UE : 12 mars 2027
Induction : 25 mars 2027
Début des cours : 26 mars 2027
Data Science & AI est-il le bon parcours pour vous ?
Si vous hésitez entre Data Analytics with AI, Data Engineering for AI et Data Science & AI, la question clé est votre centre de gravité : décision et mise en œuvre, plateformes et pipelines, ou modélisation et systèmes d’IA.