Topological Data Analysis for Machine Learning I: Algebraic Topology