A tutorial on how to build a neural network from scratch in Python, using NumPy for computations. We go over how to define a neuron, process batches of data, create a multi-layer neural network, and add activation and loss functions. We also have an in-depth explanation of the process of backpropagation, where we go over partial derivatives, gradients, and the chain rule. Then we use them to apply them to our code. Finally, we go over optimization and use the popular Adam optimizer, to optimize our model. Also created a python file, that can be be used for projects