Scientific Programming requires the highest performance but we also want to write very high level code to enable rapid prototyping and avoid error prone, low level implementations.
The Julia programming language is designed with exactly those requirements of scientific computing in mind. In this course we will show you how to make use of the tools and advantages that jit-compiled Julia provides over dynamic, high-level languages like Python or lower level languages like C++.
Before joining the course, consider reading the following two blog posts to figure out if Julia is a language in which you want to invest your time.
What will you learn?
First and foremost you will learn how to think julia - meaning how write fast, extensible, reusable, and easy-to-read code using things like optional typing, multiple dispatch, and functional programming concepts. The later part of the course will teach you how to use more advanced concepts like language introspection, metaprogramming, and symbolic computing. Amonst others you will implement your own automatic differentiation (the backbone of modern machine learning) package based on these advanced techniques that can transform intermediate representations of Julia code.
The Julia programming language is designed with exactly those requirements of scientific computing in mind. In this course we will show you how to make use of the tools and advantages that jit-compiled Julia provides over dynamic, high-level languages like Python or lower level languages like C++.
Before joining the course, consider reading the following two blog posts to figure out if Julia is a language in which you want to invest your time.
- What is great about Julia.
- What is bad about Julia.
What will you learn?
First and foremost you will learn how to think julia - meaning how write fast, extensible, reusable, and easy-to-read code using things like optional typing, multiple dispatch, and functional programming concepts. The later part of the course will teach you how to use more advanced concepts like language introspection, metaprogramming, and symbolic computing. Amonst others you will implement your own automatic differentiation (the backbone of modern machine learning) package based on these advanced techniques that can transform intermediate representations of Julia code.