Advanced Projects
Prerequisites: Level 3 — Advanced
Build these using performance techniques, metaprogramming, parallelism, and the scientific ecosystem from Level 3.
1. N-Body Simulation
Simulate planets or particles under gravity with a type-stable, allocation-
free inner loop. Benchmark it with BenchmarkTools, speed it up with
StaticArrays and threads, and animate the result with Makie.
2. Epidemic Model
Model an SIR epidemic as a system of differential equations with DifferentialEquations.jl, fit its parameters to data with an optimizer, and plot the fitted curves against the observations.
3. Neural Network From Scratch — Then With Flux
Implement a small multilayer perceptron by hand (matrix multiplies, activation functions, gradient descent), train it on a simple dataset, then rebuild it with Flux.jl and compare code size, speed, and accuracy.
4. A Domain-Specific Language
Write macros that turn a compact notation — for example, chemical reactions or unit-annotated formulas — into ordinary Julia code, with tests, error messages that point to the user's code, and documentation.