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.
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.
- Course introduction (6:03)
- Julia overview (36:25)
- Hands on (42:09)
- Pkgs, modules and environments (20:56)
- ML Terminology (21:19)
- A first ML Example (7:00)
- ML application areas (14:24)
- Further ML Examples (6:34)
01 JULIA1: Basic Julia programming (5h:52:33)
- Basic syntax elements (46:45)
- Types and objects (26:38)
- Predefined types (1h:39:50)
- Control flow and functions (44:47)
- Part A - Variables scope (9:47)
- Part B - Loops and conditional statements (9:2)
- Part C - Functions (25:57)
- Custom Types (40:02)
- Further Topics (1:34:30)
02 JULIA2: Scientific Julia programming (2h:39:34)
- Data Wrangling (1h:31:15)
- Further topics (1h:08:19)
03 ML1: Introduction to Machine Learning (1h:29:43)
- Main concepts in Machine Learning(44:45)
- The Perceptron algorithm for linear classification (44:58)
- Part A - A first version (13:22)
- Part B - A better version (10:28)
- Part C - Cross-validation implementation (21:7)
03 NN: Neural Networks (2h:15:36)
- Introduction to Neural Networks (1h:25:17)
- Neural Network workflows in Julia (50:18)