The curriculum at Diller Digital is designed to help scientists, engineers, and analysts of all kinds learn coding skills that will improve the power, quality, and scope of their work using the scientific computing tools available in the open source Python ecosystem. You don't just learn syntax and function names, though — we teach you how to think about solving problems in data analysis; we teach structured approaches to problem solving, and we lay a foundation for future self-learning.

It all begins with
Python Foundations for Scientists & Engineers, where you learn not only the syntax and grammar of Python but also the thinking behind the language. Students with some prior exposure to Python often come to class wondering why the designers of the language made certain choices and leave with a comfortable grasp of what we call the "Zen of Python" that helps them understand new things they encounter moving forward.
Python Foundations also lays a foundation in
NumPy, the "heart" of the Python Scientific computing ecosystem. Understanding the data types and vectorized functions offered by NumPy is critical to mastering most of the other core libraries like SciPy, Pandas, XArray, Scikit-Learn, StatsModels, TensforFlow, PyTorch, etc.

A natural progression from
Python Foundations is our
Data Analysis with Pandas for Scientists & Engineers class, that introduces a structured workflow for creating
analysis-ready data sets. The hard work of data analysis is often actually found in
preparing the data. The course picks up where
Python Foundations leaves off by teaching the tools useful for finding, importing, cleaning, organizing, exploring data sets as well as point you to some of the analysis methods available. Pandas as an extension of NumPy is the centerpiece of this course, and introductions to the related libraries XArray and AwkwardArray are also provided. Completing this course will give you a profound appreciation for the curated datasets available in Scikit-Learn and used in our
Machine Learning and
Deep Learning courses.
Learning
Data Analysis sets you up for
Machine Learning for Scientists & Engineers, a course that lays a foundation in the classical machine learning disciplines of
regression and classification analyses as well as establishing a framework for navigating the vocabulary and capabilities of Machine Learning and Artificial Intelligence. In this course you'll learn to build regression and classification models using Scikit-Learn, with a strong emphasis on
feature engineering to improve the predictive power of your models. The course features a practical example from materials engineering, and over the course of several days, we build various predictive models and rank them against each other. Although
Data Analysis with Pandas is not a prerequisite (some people jump straight from
Python Foundations to
Machine Learning), that course pairs well with this one.

A natural progression from
Machine Learning is our
Deep Learning for Scientists & Engineers, which focuses on the building and training of
neural networks using the popular TensorFlow library. "Deep" networks are neural networks made up of multiple
layers of connections and aggregations in a way that loosely resembles neural connections in the human brain. You'll learn the details of the different kinds of layers and how to select and combine them into a model, how to train, refine, and evaluate the model. Finally, we'll set up and train a
Generative Adversarial Model of the same general kind that is used to produce "AI-generated content" as commonly referred to in the popular media. Although the
Machine Learning course is not a prerequisite, taking it before this one will provide you with helpful background material.

Finally, many students find after a few months of coding, they want to improve their
craftsmanship skills, that is, the skills that help them to write code that is
maintainable,
performant, and
reliable. In addition, they are eager to learn skills for collaborative coding, like version control and code review. For them, there is
Software Engineering for Scientists & Engineers. While "software engineering" covers a broad array topics, we focus on those things that are important in R&D and other environments where software is not the primary product. This is one of our most popular and highly-rated classes and can fit into the curriculum at any time, but makes the most sense to take at least 3-6 months after
Python Foundations.