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.