Course Code: juliaintro
Duration: 14 hours
Prerequisites:

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.

Overview:

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.
Course Outline:

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
Sites Published:

United Arab Emirates - Introduction to Julia

Qatar - Introduction to Julia

Egypt - Introduction to Julia

Saudi Arabia - Introduction to Julia

South Africa - Introduction to Julia

Brasil - Introdução ao Julia

Canada - Introduction to Julia

中国 - Introduction to Julia

香港 - Introduction to Julia

澳門 - Introduction to Julia

台灣 - Introduction to Julia

USA - 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

Malta - Introduction to Julia

Belgique - Introduction to Julia

France - Introduction to Julia

日本 - 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

India - 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

Oman - Introduction to Julia

Slovakia - Introduction to Julia

Kenya - Introduction to Julia

Nigeria - Introduction to Julia

Botswana - Introduction to Julia

Slovenia - Introduction to Julia

Croatia - Introduction to Julia

Serbia - Introduction to Julia

Bhutan - Introduction to Julia

Nepal - Introduction to Julia

Uzbekistan - Introduction to Julia