Denna sida på svenska This page in English

Julia Course 2019

Graduate Course 2015, 5 ECTS credits

Course responsible: Mattias Fält, Fredrik Bagge Carlson, Kristian Soltesz,


The course is a seminar series aimed at learning to use the Julia language for scientific computations. Each seminar is followed by a homework exercise. There is an optional individual mini project at the end of the course.

Questions about Julia and the course can be asked here

Seminar times

Thursdays 10:15-12:00 in the Automatic Control Seminar Room (M2112:B).

Seminar Program


March 14Introduction: About Julia, Stdlib, PlottingMattias, Fredrik
March 21Julia Machinery: Types, Multiple dispatch, Type Stability, Coding practicesMattias
March 28Performance: Profiling, Memory layout, De-Matlabification, In-place calculationsFredrik
April 4Developing: Package development, Debugger, Revise, Style guide, Packages, TestingMattias
April 11Control Tools: ControlSystems.jl, DifferentialEquations.jl, Modia?Fredrik
April 18 Optimization and Learning: Automatic differentiation, JuMP.jl, Optim.jl, ProximalOperators.jl, Convex.jl, Flux.jlMattias/Fredrik
April 25  Distributed ComputingFredrik
May 2Other topics: LanConnections.jl, LabProcesses.jl, your suggestionsMattias


Course repository

This repo contains presentations, code examples and homeworks.


Homework 1: Take one of your own favorite scripts and convert it to Julia.

Homework 2:

 * Warmup: do the exercises from the lecture here

 * Create a type TrackingFloat that behaves like a Float, but also keeps track of the largest value (in absolute value) that was ever used in an operation to create this TrackingFloat. See detailed instructions on the course repo: here

Homework 3:

Optimize a particle filter implementation. See instructions at here

Homework 4:

Create your own package, see instructions in presentation here

Homework 5:

Do something control related, see instructions here

Homework 6: