Intermediate Projects
Prerequisites: Level 2 — Intermediate
Build these using types, multiple dispatch, matrices, linear algebra, files, modules, and packages from Level 2.
1. Shapes and Dispatch
Define an abstract Shape type with Circle, Rectangle, and Triangle
subtypes. Write area, perimeter, and a Base.show method for each,
then add an overlaps(a, b) function with methods for different pairs of
shapes — multiple dispatch in action.
2. Matrix Toolkit
Solve systems of linear equations with \, fit a straight line to noisy
data with least squares, and compute eigenvalues of a small Markov
transition matrix to find its steady state.
3. CSV Report Generator
Read a CSV file of sales (by hand with split, then with CSV.jl and
DataFrames.jl), group by region and month, compute totals and averages,
handle missing values, and write a summary file and a bar chart.
4. A Small Package
Turn one of the projects above into a package with its own module,
Project.toml, exported functions, docstrings, and a test/runtests.jl
that runs with ] test.