# Prerequisite topics for machine learning

## Algorithm design and analysis

1. time and space complexity, asymptotic notation (e.g., big-$$O$$, big-$$\Omega$$)
2. complexity analysis of iterative and recursive processes
3. efficient data processing in Python

## Calculus

1. limits of sequences and functions
2. derivatives and integrals of common univariate functions
3. gradients and Hessians of common multivariate functions
4. Taylor expansions and approximations
5. classification of stationary points (e.g., minima, maxima) for common multivariate functions

## Linear algebra

1. Euclidean vector spaces
2. linear maps and fundamental subspaces
3. linear operators and orthogonal projections
4. eigenvectors and eigenvalues

## Probability and statistics

1. discrete probability distributions and random variables
2. probability densities and continuous random variables
3. conditional probability, Bayes rule
4. expectation, conditional expectation, variance
5. binomial and normal distributions
6. law of large numbers, central limit theorem
7. parametric statistical models, maximum likelihood estimation

It is also helpful, but not strictly necessary, to know about the following:

1. Poisson and normal approximations
2. confidence intervals