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 https://gitter.im/controljuliacourse/community
Seminar times
Thursdays 10:15-12:00 in the Automatic Control Seminar Room (M2112:B).
Seminar Program
Date | Topic | Speakers |
March 14 | Introduction: About Julia, Stdlib, Plotting | Mattias, Fredrik |
March 21 | Julia Machinery: Types, Multiple dispatch, Type Stability, Coding practices | Mattias |
March 28 | Performance: Profiling, Memory layout, De-Matlabification, In-place calculations | Fredrik |
April 4 | Developing: Package development, Debugger, Revise, Style guide, Packages, Testing | Mattias |
April 11 | Control Tools: ControlSystems.jl, DifferentialEquations.jl, Modia? | Fredrik |
April 18 | Optimization and Learning: Automatic differentiation, JuMP.jl, Optim.jl, ProximalOperators.jl, Convex.jl, Flux.jl | Mattias/Fredrik |
April 25 | Distributed Computing | Fredrik |
May 2 | Other topics: LanConnections.jl, LabProcesses.jl, your suggestions | Mattias |
Course repository
This repo contains presentations, code examples and homeworks.
https://github.com/mfalt/juliacourse
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 herehttps://github.com/mfalt/juliacourse/tree/master/lecture5
Homework 6: