An introduction to machine learning foundations, designed as a 4-week course with 3 sessions per week. The course will be first run starting 1st September 2025.
Duration: 4 weeks
Sessions: 3 sessions per week
Start Date: 1st September 2025
- Session 1: Probability and an Introduction to Jupyter, Python and Pandas
- Session 2: Objective Functions: A Simple Example with Matrix Factorisation
- Session 3: Linear Algebra and Linear Regression
- Session 1: Linear Algebra (continued)
- Session 2: Basis Functions
- Session 1: Generalisation and Neural Networks
- Session 1: Bayesian Regression
- Session 2: Gaussian Processes
- Session 1: Latent Variable Modelling
- Probability and probability distributions
- Linear algebra and linear regression with appropriate factorisations
- Basis functions and feature engineering
- Generalisation and double descent
- Bayesian regression
- Gaussian processes
- Latent variable modelling and representation learning
All lecture materials are available in multiple formats:
- Web Lectures: View lectures online
- Slides: Download presentation slides
- Jupyter Notebooks: Interactive notebooks
- Practical Exercises: Hands-on exercises
- 01-01-probability: Probability and an Introduction to Jupyter, Python and Pandas
- 01-02-matrix-factorization: Objective Functions: A Simple Example with Matrix Factorisation
- 02-01-linear-algebra: Linear Algebra and Linear Regression
- 02-02-basis-functions: Basis Functions
- 03-01-generalisation-and-neural-networks: Generalisation and Neural Networks
- 04-01-bayesian-regression: Bayesian Regression
- 04-02-gaussian-processes: Gaussian Processes
- 05-01-latent-variable-modelling: Latent Variable Modelling
- River water level (time series)
- Weather (TAHMO, time series) - TAHMO
- DSAIL porini (images of wild animals) - DSAIL Porini
- Kieni forest (terrestrial and aerial images)
- Sensor placement problem
- UK census data
- Kenya census data - Kenya Census 2019
- Video recordings of lectures
- Dedicated web pages with lecture materials on the DSAIL website
- Paper on teaching methods and outcome
The course is designed to be delivered in a hybrid format:
- In-person lectures with interactive demonstrations
- Online materials for self-paced learning
- Practical sessions with hands-on coding exercises
- Assessment through practical assignments and final project
- Basic programming experience (Python preferred)
- Familiarity with high school mathematics (calculus, linear algebra)
- No prior machine learning experience required
- Cedric Kiplimo
- Austin Kaburia
- Fred Lawrence
- Neil Lawrence @lawrennd
- Ciira Maina
- Radzim Sendyka
mlfc/
├── _config.yml # Jekyll configuration
├── _lamd/ # LaMD files containing lecture sources
│ └── _lamd.yml # LaMD configuration (author, output formats, paths)
├── _lectures/ # Compiled Lecture html files
├── _notebooks/ # Compiled Jupyter notebooks
├── _practicals/ # Compiled Practical exercises
├── assets/ # Static assets (images, js, css)
├── index.md # Home page
├── lectures.html # Lectures index page
├── slides/ # Compiled reveal.js presentation slides
├── backlog/ # Project backlog and task tracking
├── cip/ # Code Improvement Plans
└── docs/ # Additional documentation
Lectures are compiled using the maketalk command:
cd _lamd
maketalk probability.md The _lamd/_lamd.yml file controls how your lectures are processed and where outputs are stored. Key settings include:
author: Your personal informationpostsdir,slidesdir, etc.: Output directories for different formatsposts,docx,pptx, etc.: Enable/disable different output formatsbaseurl,url: Website configuration for GitHub Pages
See the repositories at mlphysical or advds for examples of complete lecture courses using the LaMD system.
For more information about LaMD, see the LaMD documentation.