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

Requirements

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.

  14 Hours
 

Testimonials

Related Courses

Java Advanced

  28 hours

Java Advanced - one day

  7 hours

Java Fundamentals for Android

  14 hours

Java fundamentals with Maven

  28 hours

Java Intermediate - one day

  7 hours

Java Persistence with Hibernate

  14 hours

Introduction to Programming

  35 hours

Clean Code

  14 hours

Linux Network Programming

  14 hours

Standard Java Security

  14 hours

Java and Web Application Security

  21 hours

Introduction to Julia Programming

  21 hours

Machine Learning Algorithms in Julia

  21 hours

Statistics and Probabilistic Programming in Julia

  21 hours

Unit Testing with JUnit

  21 hours