Some familiarity with programming is desirable, but not essential. The aim of the course is to teach you the basics of the Julia programming language in a self-contained fashion.
This course is oriented towards data analysts as well as research scientists. Julia is a rapidly emerging programming language with a strong focus on numerical accuracy, scientific computing and statistics. It has gained most of its reputation due to its speed of execution in conjunction with its ease of programming. What is less emphasized, although it is true, is that
- Julia has a wealth of built-in and external tools for distributed and parallel computing,
- it facilitates the construction of user-defined data structures,
- it makes it easy to do metaprogramming, therefore to also define your ownl DSLs,
- it allows interacting with several other programming languages such as C, Python and R,
- it provides a multiple-dispatch programming paradigm, which in many ways helps you organize your code and makes you a better programmer and software engineer.
Introduction to Julia
- What niche is filled by Julia
- How can Julia help you with data analysis
- What you can expect to get out of this course
- Getting started with Julia's REPL
- Alternative environments for Julia development: Juno, IJulia and Sublime-IJulia
- The Julia ecosystem: documentation and package search
- Getting more help: Julia forums and Julia community
Strings: Hello World
- Introduction to Julia REPL and batch execution via "Hello World"
- Julia String Types
Scalar Types
- What is a variable? Why do we use a name and a type for it?
- Integers
- Floating point numbers
- Complex numbers
- Rational numbers
Arrays
- Vectors
- Matrices
- Multi-dimensional arrays
- Heterogeneous arrays (cell arrays)
- Comprehensions
Other Elementary Types
- Tuples
- Ranges
- Dictionaries
- Symbols
Building Your Own Types
- Abstract types
- Composite types
- Parametric composite types
Functions
- How to define a function in Julia
- Julia functions as methods operating on types
- Multiple dispatch
- How multiple dispatch differs from traditional object-oriented programming
- Parametric functions
- Functions changing their input
- Anonymous functions
- Optional function arguments
- Required function arguments
Constructors
- Inner constructors
- Outer constructors
Control Flow
- Compound expressions and scoping
- Conditional evaluation
- Loops
- Exception Handling
- Tasks
Code Organization
- Modules
- Packages
Metaprogramming
- Symbols
- Expressions
- Quoting
- Internal representation
- Parsing
- Evaluation
- Interpolation
Reading and Writing Data
- Filesystem
- Data I/O
- Lower Level Data I/O
- Dataframes
Distributions and Statistics
- Defining distributions
- Interface for evaluating and sampling from distributions
- Mean, variance and covariance
- Hypothesis testing
- Generalized linear models: a linear regression example
Plotting
- Plotting packages: Gadfly, Winston, Gaston, PyPlot, Plotly, Vega
- Introduction to Gadfly
- Interact and Gadfly
Parallel Computing
- Introduction to Julia's message passing implementation
- Remote calling and fetching
- Parallel map (pmap)
- Parallel for
- Scheduling via tasks
- Distributed arrays
United Arab Emirates - Introduction to Julia
Saudi Arabia - Introduction to Julia
South Africa - Introduction to Julia
Canada - Introduction to Julia
Österreich - Introduction to Julia
Schweiz - Introduction to Julia
Deutschland - Introduction to Julia
Czech Republic - Introduction to Julia
Denmark - Introduction to Julia
Estonia - Introduction to Julia
Finland - Introduction to Julia
Greece - Introduction to Julia
Magyarország - Introduction to Julia
Ireland - Introduction to Julia
Luxembourg - Introduction to Julia
Latvia - Introduction to Julia
España - Introducción para Julia (lenguaje de programación)
Italia - Introduction to Julia
Lithuania - Introduction to Julia
Nederland - Introduction to Julia
Norway - Introduction to Julia
Portugal - Introdução ao Julia
România - Introduction to Julia
Sverige - Introduction to Julia
Türkiye - Introduction to Julia
Belgique - Introduction to Julia
France - Introduction to Julia
Australia - Introduction to Julia
Malaysia - Introduction to Julia
New Zealand - Introduction to Julia
Philippines - Introduction to Julia
Singapore - Introduction to Julia
Thailand - Introduction to Julia
Vietnam - Introduction to Julia
Argentina - Introducción para Julia (lenguaje de programación)
Chile - Introducción para Julia (lenguaje de programación)
Costa Rica - Introducción para Julia (lenguaje de programación)
Ecuador - Introducción para Julia (lenguaje de programación)
Guatemala - Introducción para Julia (lenguaje de programación)
Colombia - Introducción para Julia (lenguaje de programación)
México - Introducción para Julia (lenguaje de programación)
Panama - Introducción para Julia (lenguaje de programación)
Peru - Introducción para Julia (lenguaje de programación)
Uruguay - Introducción para Julia (lenguaje de programación)
Venezuela - Introducción para Julia (lenguaje de programación)
Polska - Introduction to Julia
United Kingdom - Introduction to Julia
South Korea - Introduction to Julia
Pakistan - Introduction to Julia
Sri Lanka - Introduction to Julia
Bulgaria - Introduction to Julia
Bolivia - Introducción para Julia (lenguaje de programación)
Indonesia - Introduction to Julia
Kazakhstan - Introduction to Julia
Moldova - Introduction to Julia
Morocco - Introduction to Julia
Tunisia - Introduction to Julia
Kuwait - Introduction to Julia
Slovakia - Introduction to Julia
Nigeria - Introduction to Julia
Botswana - Introduction to Julia
Slovenia - Introduction to Julia
Croatia - Introduction to Julia
Serbia - Introduction to Julia