This project aimed to write perceptron and neural network classes from scratch, and then use them on classic toy problems such as linear/non-linear function approximation and digit recognition using the MNIST dataset.