Program

Course content:

  • Introduction unit: (a) motivations, highlights of the main Julia characteristics; (b) guidance in setting up a Julia development environment and a crash course on git, (c) modules, packages, environments and the wider topic of reproducible results; (d) introduction to the topic of Machine Learning (scope, examples, clarification of the terminology)

  • 1ˢᵗ thematic unit JULIA1: (a) a gentle but rather deep introduction to the Julia programming language (syntax, provided data structures, custom types, control flows and functions); (b) advanced topics (meta-programming, code optimisation, interface with C/Python/R code, hints to parallel computation);

  • 2ⁿᵈ thematic unit JULIA2: (a) data wrangling with the DataFrame package for in-memory tabular data, including the split-apply-combine strategy; (b) the Distributions package for making probabilistic models, (c) the LsqFit package for fitting any generic curve with data, (d) the Plots package for visualisation, (e) the JuMP algebraic modelling language for implementing and solving complex constrained optimisation models (à la GAMS);

  • 3ʳᵈ thematic unit ML1: (a) intuitions of machine learning concepts (supervised learning, cross-validation and regularisation); (b) implementation of the perceptron linear classifier;

  • 4ᵗʰ thematic unit NN: (a) neural network models: how they work, what they are good for and how to train them; (b) specific neural network architectures: convolutional neural networks and recurrent neural networks; (c) implementation of neural network workflos using Julia packages.

Course organisation:

  • 9 runnable Julia files in public GitHub repository and 7 MarkDown files with embedded Julia code;
  • 15 hours of videos, 15 interactive quizzes with 52 questions and 7 guided exercises;
  • Discussion forum embedded at the bottom of each page

List of available videos:

The following videos (14h:52':22'') are available. All except the introduction follow very close the pages in this site.

Videos are hosted on YouTube.

Tip

Note that the links below will bring you directly to YouTube. Click here to start the course on this site (with the YouTube videos embedded in the page) or use the menu to jump to the desired content.

00 KOM: Kick-off meeting (2h:34:46)

Note that this introduction has been partially recorded before the rest of the course has been implemented, so that the organisation of the course, and the way it is delivered, are not exactly as described in the videos below.

Take-home tip: in your projects, implement the introduction and the conclusions as the last elements ;-)

The slides used in the videos below are available here.

01 JULIA1: Basic Julia programming (5h:52:33)

02 JULIA2: Scientific Julia programming (2h:39:34)

03 ML1: Introduction to Machine Learning (1h:29:43)

03 NN: Neural Networks (2h:15:36)