An introduction to the theoretical development of machine learning algorithms and the implementation of these algorithms. The end goal is to able to build algorithms that will iteratively learn from data and automate analytical model building.