The Julia programming language offers a solution to the so-called two-language problem for scientific programming. This means code from dynamic high level languages such as Python is easy to use and closer to mathematical notation, but the code often cannot be compiled efficiently and usually runs slower. However, more efficient and faster code from low level languages (e.g. C/C++) usually requires more expert knowledge and effort in maintaining the code. To combine usability and efficiency at the same time, Julia uses the combination of a modern dynamic type system, a just-in-time compiler and the Multiple Dispatch programming paradigm. This significantly reduces development times for executable prototypes with high execution speeds equivalent to C/C++. The course provides a broad overview of the syntax, data types and the Multiple Dispatch programming paradigm using Jupyter notebooks with examples from the field of Machine Learning and Deep Learning.
Prerequisite: Basic programming knowledge, a Laptop with Julia or Docker installed, Material on Gitlab: https://gitlab.desy.de/florian.griese/MLESummer2022. Follow the instructions on Gitlab to get the Jupyter notebook running with a Julia kernel.