Julia Course


Graduate Course 2015, 5 ECTS credits

Course responsible: 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 individual mini project at the end of the course.

Seminar times

Fridays 13:15-15:00 in the Automatic Control Seminar Room (M2112:B). Last seminar is planned for October 2.

Seminar Program


Date Topic Speakers
August 21 Julia Basics 1 Kristian
August 28 Julia Basics 2 Mattias & Marcus
September 4 Linear Algebra 3Control Toolbox Fatemeh & Martin K
September 11 Performance & Graphics Fredrik B & Josefin
September 18 Parallelization & Convex Optimization Yang & Victor


Bonus seminars (without associated mandatory homework):

Date Topic Speakers
October 16 ODE solvers Statistics in JUlia
Gabriel & Carl
TBA TBA & TBA Manfred & Jonas


The Julia Basics 1-2 seminars are based on documentation from docs.julialang.orgJulia Basics 1 rougly covers the sections until Scope of Variables. Julia Basics 2 continues from there until the Modules section.


It is strongly encouraged that you collaborate with the homeworks. There is a Piazza forum set up for the course, with on-going discussions around the homework problems. Please contribute!

  • Homework 5: Part 1. Generate n processes (n is the number of cores on your computer) to simulate the answer of the following question: There are 9,784,445 people in Sweden. Everyone is going to roll 2 fair dice. How many people will get 12 totally?
  • Homework 5: Part 2. Get familiar with JuMP and Convex.jl - two optimization languages in Julia.
  • Homework 4: Optimize the particle filter simulation! Homework Instruction found in the file. Don't hesitate to ask any questions you might have, The file contains some unicode characters that might not display well in the browser. Right click on the link and choose to save as
  • Homework 3: The main part of the homework is found in this pdf file. Post your solution on Piazza at latest Fri Sep 14. An optional addition to this is to download the Julia Control package. There are some (known) issues with this package. If you find/solve any problem with it, please post on Piazza. 
  • Homework 2: Implement a linked list type: 1) Should consist of nodes, dened as a specic type (e.g type Node). 2) All nodes in the same list should contain the same type of value. 3) Should be able to iterate over the list (e.g for node in

    list...). 4) Should be able to call functions to add node at beginning and end of list. To be completed before the September 4 seminar. Discuss on Piazza!

  • Homework 1: Solve any 1-3 problems from project euler, using Julia. Print and bring the problem text and solution for one of your chosen problems to the Seminar August 28, and be prepared to discuss it with a friend.


Mini project

All participants are expected to complete a mini project, using Julia. It is encouraged to program something which will be useful in your research! The code of the project (with runnable example) and a short report (max 2 pages) is to be mailed to Kristian before November 1. There is also a gathering on Oct 14 (Wed) 13:15 in the Automatic Control Seminar room (M2112:B) where each participant gives a 5-10 min presentation about their project. The upper time limit is strict, and with a 15 min break we should be done by 15:30.


Name Project
Mattias Control system toolbox
Carl  Option pricing toolbox
Marcus Unscented Kalman filter (UKF)
Fatemeh Generating NURBS mesh in 3D
Martin K Indoor positioning using WiFi
Fredrik B  System identification toolbox
Josefin Automatic PID tuning
Yang Real-time system scheduling
Gabriel Model predictive control (MPC)