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 3 & Control 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.org. Julia Basics 1 rougly covers the sections until Scope of Variables. Julia Basics 2 continues from there until the Modules section.
Homeworks
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, fredrikb@control.lth.se 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 |
Victor | |
Gabriel | Model predictive control (MPC) |
Manfred | |
Jonas |