Dynamical systems are an incredibly broad class of systems that pervades every field of science, as well as every aspect of daily life. Not only are they pervasive, but they often exhibit complex behavior resulting from microscopically simple interactions. Examples of such systems are the weather, our brains, animal population, and even home prices – to name but a few. As such, predictions of these systems pose a towering yet necessary challenge, and this work aims at making at dent in this effort. To the extent that models are available, they are useful in that constraints are automatically satisfied, and a mechanistic understanding of the system naturally follows. Part one of this work addresses this case by leveraging our knowledge of the physical model. However, it is often the case that the model is not known, so an effective surrogate model is desired. Part two proceeds in this vein, where the availability of large amounts of data is utilized in constructing surrogate models. Though the theory of dynamical systems still applies to the constructed surrogate model, this approach disregards the physics of the underlying system and has a machine learning flavor.