Hands-on Julia for scientific computing
This will be a tutorial workshop on the Julia language, consisting mainly of hands-on exercises, designed to take participants who are experienced scientific programmers, but who have no knowledge of Julia, to a stage where they are beginning to feel comfortable with Julia and are able to write fairly idiomatic Julia code.
The emphasis will be on those features that differ from other well-known languages used for scientific computing (e.g. Fortran, C, C++, Python, R, and MATLAB).
The current stable version of Julia is the 0.3 line (0.3.7 is the current latest release). There are several important changes in 0.4, which will be in the process of being finalised when the workshop takes place; we will try to highlight the differences.
Why should I learn Julia?
How can I use Julia?
- REPL (terminal), IJulia (notebook), Juno (IDE), editors
- JuliaBox (and SageMathCloud?)
Numbers and types
Vectors, matrices and arrays
Conditionals and loops
Some curious syntax features
- Short-circuit evaluation
- Basic plotting (PyPlot and Gadfly)
- Interactive widgets in IJulia
To type or not to type
How functions work in Julia: methods and multiple dispatch
- Why this is at the core of the Julia experience
- Julia's take on object-oriented programming
- Conversion and promotion
- Multiple dispatch again
Structuring our Julia code
- Scripts and command-line arguments
- include, import and using
- Stand-alone Julia executable (0.4)
- Error handling
Towards good (=C) performance
- No globals, please
- Type stability
- How to check allocation
Some Julia internals
- Code that writes code
From 0.3 to 0.4
- Developing a Julia package and contributing to Julia itself
- Write some code in Julia! Use pair programming
- Where do I go from here?