Scientific Programming in Julia
Offered By: Independent
Course Description
Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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.
Syllabus
- Introduction
- The power of type systems & multiple dispatch
- Design patterns
- Package development, unit tests & CI
- Performance benchmarking
- Language introspection
- Macros
- Automatic differentiation
Taught by
Tomáš Pevný and Vašek Šmídl
Related Courses
Adding Electronics to Rapid PrototypesArizona State University via Coursera Digital Product Management
Boston University via edX Diseño de producto digital con Lean y UX
Domestika Introduction to Design Thinking
Microsoft via edX Deploy a Serverless API React Application with TypeScript
egghead.io