Get in Touch

Course Outline

Introduction to Julia

  • What niche does Julia fill?
  • How can Julia support your data analysis work?
  • What you can expect to gain from 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
  • Finding additional help: Julia forums and the broader Julia community

Strings: Hello World

  • Introduction to the Julia REPL and batch execution using "Hello World"
  • Julia String Types

Scalar Types

  • What is a variable? Why do we assign it a name and a type?
  • 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 that modify 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 Organisation

  • 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
  • Generalised 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

Requirements

Some familiarity with programming is beneficial but not essential. The goal of this course is to teach you the fundamentals of the Julia programming language in a self-contained manner.

 14 Hours

Number of participants


Price per participant

Testimonials (1)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories