Course Overview

What this Julia course covers, how to use it, prerequisites.

A self-contained, hands-on course covering the Julia language: syntax, the type system, multiple dispatch, arrays and linear algebra, performance engineering, metaprogramming, parallel and GPU computing, interoperability, data science, scientific machine learning, package development, and deployment. Every chapter has runnable examples and exercises. Examples target Julia 1.10 (LTS) / 1.11+.

Course Map

Part I — Foundations Introduction to Julia Installation & Tooling The REPL & Your First Program Variables, Unicode & Basic Types Numbers & Arithmetic Strings & Characters

Collections: Tuples, Named Tuples, Dicts, Sets, Ranges Part II — Core Language & Standard Library Broadcasting & Vectorization The Type System Composite Types & Constructors Methods & Multiple Dispatch

Interfaces: Iteration, Indexing, AbstractArray Modules, Packages & Environments Missing Values, Nothing & Optional Data I/O, Files & Networking Dates, Times & Randomness Testing & Documentation Part III — Advanced Julia

Profiling, Benchmarking & Optimization Techniques Metaprogramming: Expressions & Macros

Generated Functions & Advanced Dispatch Patterns (Traits) Tasks, Channels & Asynchronous Programming Interoperability: C, Fortran, Python, R

Automatic Differentiation & Optimization Differential Equations & Scientific Computing Machine Learning: Flux, Lux, MLJ Compilation, Latency & Deployment Part IV — Ecosystem & Real-World Julia

Data Science: DataFrames, CSV, Statistics Visualization: Plots.jl, Makie, and More

Notebooks & Reproducibility: Pluto, Jupyter, Quarto Web, Databases & Other Domains Best Practices & Style

Appendices: Cheat Sheet, Keywords, Operators, Resources, Study Plan