ML course

This is the companion website to my one semester course on machine learning, co-taught with Prof. Christoph Wuersch from the NTB Buchs. The course is part of the Master of Science in Engineering (MSE) program in computer science and data science, offered collaboratively by the engineering faculties of the Swiss universities of applied sciences. This website reflects the status quo as of spring term 2019. You can find the underlying didactic concept here (in German).


  1. Syllabus
  2. Resources
  3. Educational objectives
  4. Prerequisites



Topic Lecture (& videos) Lab Self study Lecturer
Preparation     P01.1-5  
Introduction V01: Introduction (a, b) P01: Discuss ML fundamentals P01.6-7 stdm
  V02: Formulating learning problems (code) (a, b) P02.1: Linear regression from scratch   stdm
Supervised learning V03: Model assessment & selection (a, b) P04.1: Analyzing cross validation P03 stdm
  V04: SVMs (a, b) P04.2: SVM in IPython   stdm
  V05: Ensembles (a, b) P04.3: Ensembles in practice P05 stdm
  V06: Bias-variance-tradeoff: crossvalidation & learning curves (a, b, c) P06.2: Applying learning curves further reading wuerc
  V07: ML system design (a, b) P07 (optional) further reading stdm
  V08: Feature engineering (a, b, c) Lab 8 further reading wuerc
  V09a: Probabilistic reasoning, Gaussian distribution and Bayes’ theorem (a, b, c) Lab 9a further reading wuerc
  V09b: Gaussian processes (a, b, c) Lab 9b (videos d, e) optional further reading wuerc
Unsupervised learning V09c: GMMs & the EM algorithm (recap V09a) (a) Lab 9c: Checkup questions   wuerc
  V10: Dimensionality reduction (a, b, c) Lab 10 optional further reading wuerc
  V11: Clustering (a, b) Lab 11 further reading wuerc
Selected chapters V12a: Learning games from selfplay (a, b) P12: Selfplay for Tic-Tac-Toe   stdm

All links lead to documents as of spring term 2019.

Additional material [optional]:


Current slides, lab descriptions, terms & conditions: see Moodle (you need a valid account as an inscribed student).

Video recordings: see YouTube playlist for spring 2019.

Audio-only recordings: see Collecture for spring 2018 recordings (you need to create a free account).


Educational objectives

  1. Students know the background and taxonomy of machine learning methods.

  2. On this basis, they formulate given problems as learning tasks and select a proper learning method.

  3. Students are able to convert a data set into a proper feature set fitting for a task at hand.

  4. They evaluate the chosen approach in a structured way using proper design of experiment.

  5. Students know how to select models, and “debug” features and learning algorithms if results do not fit expectations.

  6. Students are able to leverage on the evaluation framework to tune the parameters of a given system and optimize its performances.

  7. Students have seen examples of different data sources / problem types and are able to acquire additional expert knowledge from the scientific literature.

Machine learning (ML) emerged out of artificial intelligence and computer science as the academic discipline concerned with “giving computers the ability to learn without being explicitly programmed” (A. Samuel, 1959). Today, it is the methodological driver behind the mega-trends of big data and data science. ML experts are highly sought after in industry and academia alike.

This course builds upon basic knowledge in math, programming and analytics/statistics as is typically gained in respective undergraduate courses of diverse engineering disciplines. From there, it teaches the foundations of modern machine learning techniques in a way that focuses on practical applicability to real-world problems. The complete process of building a learning system is considered:

  • formulating the task at hand as a learning problem;

  • extracting useful features from the available data;

  • choosing and parameterizing a suitable learning algorithm.

Covered topics include cross-cutting concerns like ML system design and debugging (how to get intuition into learned models and results) as well as feature engineering; covered algorithms include (amongst others) Support Vector Machines (SVM) and ensemble methods.


Math: basic calculus / linear algebra / probability calculus (e.g., derivatives, matrix multiplication, normal distribution, Bayes’ theorem)

Statistics: basic descriptive statistics (e.g., mean, variance, co-variance, histograms, box plots)

Programming: good command of any structured programming language (e.g., Python, Matlab, R, Java, C, C++)

Analytics: basic data analysis methods (data pre-processing, decision trees, k-means clustering, linear & logistic regression)

comments powered by Disqus