Lehrinhalte
In the first half of the course, students learn fundamentals of the Julia programming language as well as packages in the wider Julia Machine Learning ecosystem:
- Performant array processing and linear algebra (LinearAlgebra.jl)
- Working with tabular data and preprocessing features (DataFrames.jl)
- Creating visualizations and plots (Plots.jl, StatsPlots.jl)
- Classical Machine Learning algorithms (MLJ.jl)
- Mathematical fundamentals of automatic differentiation
- Differences in implementations of automatic differentiation in Julia (ChainRules.jl, Zygote.jl, Enzyme.jl, ForwardDiff.jl, FiniteDifferences.jl)
- Training Deep Learning models (Flux.jl, MLDatasets.jl)
- Common development workflows for package development and scientific experiments (PkgTemplates.jl, DrWatson.jl)
- Best practices for Julia development, profiling, and debugging (Debugger.jl, Infiltrator.jl, ProfileView.jl, Cthulhu.jl)
In the second half, student work in groups on a small programming project of their choice, learning how to:
- Structure and develop a package
- Write package tests
- Write and host package documentation