Introduction to Julia

Introduction to Julia#

Overview#

Welcome to the Introduction to Julia course! This course has been created to give you an idea about Julia’s particular language features; it assumes that you are already comfortable with the basics of programming, allowing for more interesting topics to be discussed outside the basics.

Course Objectives#

  • Understand Julia’s design philosophy and interact fluently with its REPL, including both the package and help modes.

  • Define and manipulate basic data types and variables, and apply control-flow constructs (if, for, while) to express algorithmic logic.

  • Encapsulate functionality in Julia functions, leveraging multiple dispatch to write clean, type-specific methods.

  • Work with arrays and matrices, perform element-wise and linear algebra operations, and harness Julia’s native array abstractions for efficient numerical computing.

  • Read from and write to external data sources using Julia’s I/O facilities, and parse or format data in common file formats.

  • Create informative visualisations of data and simulation output with Plots.jl (and other graphics packages).

  • Manage project dependencies and packages using Julia’s built-in package manager (Pkg), and organise your code into multi-file, reproducible projects.

  • Diagnose and eliminate performance bottlenecks by profiling your code.

  • Apply your skills to a capstone project, implementing and optimizing Conway’s Game of Life from first principles, and extending it with custom rules, GUIs, or advanced visualizations.

Pre-requisite Knowledge#

This course assumes prior programming experience and a comfort with fundamental programming concepts (variables, if statements, for/while loops, functions, errors), as gained from programming in another language. The course is not designed as a course for learning your first programming language.

Attendees of the workshop should already haved installed and been able to run an example of a Julia code snippet. The guidance for doing this is available via the Intro to Julia Workshop Information Page.