  This work is a rigorous development of a complete and general-purpose deep
learning framework from the ground up. The fundamental components of deep
learning - automatic differentiation and gradient methods of optimizing
multivariable scalar functions - are developed from elementary calculus and
implemented in a sensible object-oriented approach using only Python and the
Numpy library. Demonstrations of solved problems using the framework, named
ArrayFlow, include a computer vision classification task, solving for the shape
of a catenary, and a 2nd order differential equation.
