Julia Training
Julia Training discusses the basics of the Julia programming language with a strong focus on numerical accuracy, scientific computing and statistics. Julia programs are organized around the multiple dispatch; by defining functions and overloading them for different argument types, which can also be user-defined.
Julia Training Curriculum
Introduction to Julia
What niche is filled by Julia
How can Julia help you with data analysis
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 co variance
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.