# Capstone lessons

The goal of these lessons is to see how the concepts covered in the main
lessons can be integrated. It is recommended to go through the
capstones *after* having done the lessons. Capstones are designed to be shorter,
and will present some real-life applications of the principles covered in the
main lessons.

Capstone lessons present more advanced material, which may take a bit longer to grasp. We encourage you to try them one at a time, and to come back to them over the course of a few days. We also encourage you to adapt the capstones to your own problems, and to see if they can adapted to your own data. This will be a frustrating process, to be sure, but you will learn a lot!

Some of these capstone lessons have been developed specifically for an intensive workshop organized jointly by IVADO, the bioinformatics graduate students association at Université de Montréal, and the Poisot Lab of Quantitative and Computational Ecology.

# Approximate Bayesian Computation

**Reading time:**17 minutes

**Contributors:**Timothée Poisot

**Key concepts:**arrays control flow writing functions

**Packages used:**Distributions Statistics StatsPlots

# Genetic algorithm [draft]

**Reading time:**11 minutes

**Contributors:**Timothée Poisot

**Key concepts:**data frames generic code type system

**Packages used:**CSV DataFrames Statistics StatsBase StatsPlots

# Neural network with Flux

**Reading time:**12 minutes

**Key concepts:**control flow working with files

**Packages used:**CSV DataFrames Flux Random Statistics

# Naive Bayes classifier [draft]

**Reading time:**11 minutes

**Key concepts:**control flow working with files iteration grouping and aggregation

**Packages used:**CSV DataFrames Distributions Random Statistics

# Runge-Kutta integration

**Reading time:**10 minutes

**Contributors:**Timothée Poisot

**Key concepts:**writing functions numerical precision arrays keyword arguments

**Packages used:**StatsPlots