Course Descriptions

Diller Digital is a Licensed Provider of Enthought Academy Scientific Python Curriculum

 Python Foundations Data Analysis Software Engineering Machine Learning Deep Learning
 Python Foundations Logo

Python Foundations for Scientists & Engineers

Course Overview

Based on the Enthought Academy course of the same name, Python Foundations for Scientists and Engineers provides people with prior coding experience with the foundational knowledge needed to use Python and key scientific Python libraries for data processing, analysis, and Visualization.

This course uses a combination of lecture, live coding, and hands-on exercises to teach you basic skills and give you a chance to cement them with practice. If you program in another language, this class will help you transition to using Python.

If you already know some Python, but are mostly self-taught, this course will help fill in the gaps in your knowledge.

Prerequisites

Experience with Python is helpful (but not required). However, prior programming experience in some other language (e.g., C/C++, FORTRAN, Java, MATLAB, R, etc.) is expected. In particular, participants need to be comfortable with general programming concepts like variables, loops, and functions.

Lectures

  • Introduction – Python, IPython, Jupyter
  • Base Data Types – Integers, Floats, Complex, Booleans, Strings
  • Container Data Types – Lists, Tuples, Sets, Dictionaries
  • Control Statements & Files – If, While, For
  • Functions & Modules – Def, Import
  • Object-Oriented Python – Classes, Attributes, Methods
  • Matplotlib – Line, Scatter, Images, Histograms
  • NumPy – Arrays, Calculations, Indexing
  • Pandas I – Series, DataFrames
  • Pandas II – Visualization, Missing Data, Computations

Packages

matplotlib, numpy, pandas

Data Analysis with Pandas for Scientists & Engineers

Course Overview

Based on the Enthought Academy course of the same name, Data Analysis with Pandas for Scientists and Engineers is designed in two parts. The first part presents a typical data analysis workflow with the foundational ideas behind each step. Here students will be presented with major concepts and given short exercises to practice those ideas with NumPy, Pandas, and XArray.

The second part of the course is a practicum in which the workflow is used in conjunction with Pandas to work through a small data analysis project from beginning to end. Here, each session will remind students of the main workflow, teach how Pandas approaches that specific step, and then allow the students to put what they have learned into practice. In the end, the students will have built an end-to-end data analysis workbook that can be used as a basic template for other data analysis projects.

Many students pair this course with Machine Learning for Scientists & Engineers and/or Deep Learning for Scientists and Engineers to master the workflow of preparing machine learning-ready data sets.

Prerequisites

This course requires basic proficiency with Python and the scientific Python stack. Some practical experience with Jupyter Notebooks,  NumPy (ndarrays), Pandas (DataFrames), and scientific visualization in Python using Matplotlib are essential to working with the code and  concepts presented in this course.

If you have taken Enthought’s Python Foundations for Scientists and Engineers, you have the requisite background knowledge for this course.

Lectures

  • Data Analysis Workflow – Introduction, Examples of Use Cases
  • Data Sources – Finding & Storing Data, Scraping Web, Databases, Formats
  • Preparing Data – Tidy Data, Missing Data and its Management, Filling Gaps
  • Exploring Data – Summary Statistics, Visualization
  • Analysis & Modeling – Analysis & Modeling Use Cases
  • Pandas Practicum in 5 Parts 
    1. Connecting to Various Data Sources
    2. Reshape, Pivot, Join, Merge
    3. Dates & Times, Text Data, Categorical Data
    4. Multi-Level Indexing, Computations, Chaining
    5. Automation, Building Analysis Notebooks

Packages

numpy, pandas, xarray

 

Software Engineering for Scientists & Engineers

Course Overview

Based on the Enthought Academy course of the same name, Software Engineering for Scientists and Engineers is a short course on the art of writing maintainable software, taught in Python, with a focus on science and engineering workflows.

Software that is not written with maintenance in mind can be a source of pain for years or decades.  This course will teach you best practices, recommend good habits, and get you thinking about how to make quality software that can be used, referenced, and kept in working order long after the original author(s) have moved on.

Prerequisites

This course requires basic proficiency with Python and the scientific Python stack. Some practical experience with standard Python, NumPy (ndarrays), and Pandas (DataFrames) are essential to working with the code and concepts presented in this course. All the examples and exercises use Python code and Python tools, even though many of the principles are useful for all languages.

If you have taken Python Foundations for Scientists & Engineers, you have the requisite background knowledge for this course.

Lectures

  • Why Software Engineering? – Introduction, General Applicability
  • Readable Code – PEP-8, Linting, Naming, Comments
  • Documenting Code – Docstrings, Publishing Documentation
  • Refactoring – Functions, __main__(), Classes, API
  • Profiling & Debugging – When to Optimize, cProfile, pdb
  • Monitoring Execution – Command Line, Logging, Auditing
  • Unit Testing – unittest, Test Suites, Edge Cases
  • Source Control – Git, GitHub, Issues, Pull Requests
  • Effective Code Reviews – Mentoring New Coders, Leveraging Experience
  • Development Models –Agile, Waterfall

Packages

black, click, flake8, logging, pdb, profile, sphinx, unittest

 

Machine Learning for Scientists & Engineers

Course Overview

Based on the Enthought Academy course of the same name, Machine Learning for Scientists & Engineers provides scientists and engineers with a practical introduction to classical machine learning using Scikit-learn.  

The course focuses primarily on supervised learning, starting with Regression and then moving into Classification.  A major focus of the class is effective Feature Engineering, with hands-on practice and live demos of Univariate, Bivariate, and Multivariate analysis and feature engineering.  Using concrete examples (including, literally, a multi-part guided demo using data from a study of variation in concrete strength with composition) we lay a solid foundation for building machine learning models and workflows. There are many exercises and demos, and students are encouraged to follow along with their own copies of the Jupyter Notebooks and ask questions to make sure they are comfortable with the material.  Students will complete the class, not only with knowledge of the fundamentals of Machine Learning, but also with a rich collection of annotated examples and evaluation tools to use in their own future projects.

Toward the end of the course, some unsupervised machine learning strategies will also be covered as time and interest allow.

Prerequisite

This course requires basic proficiency with Python and the scientific Python stack. Some practical experience with Jupyter Notebooks, NumPy (ndarrays), Pandas (DataFrames), and scientific visualization in Python using Matplotlib are essential to working with the code and concepts presented in this course.

If you have taken Python Foundations for Scientists & Engineers, you have the requisite background knowledge for this course.

This course pairs well with Data Analysis with Pandas for Scientists & Engineers, which focuses on the workflow to prepare machine learning-ready data sets.

Lectures

  • Introduction to AI/ML – Basic Terminology, Models
  • Introduction to scikit-learn – API, ML Workflow
  • Regression – Regression Models, Scoring
  • Feature Engineering I – Univariate & Bivariate Analysis
  • Feature Engineering II – Multivariate & Interaction Analysis
  • Feature Selection & Tuning – Regularization, Hyperparameters
  • Model Selection – GLM, SVM, Decision Trees, Ensemble
  • Classification I – Classification Models, Scoring
  • Classification II – Classification Workflow
  • Clustering – Algorithms

Packages

scikit-learn, seaborn

 

Deep Learning for Scientists & Engineers

Course Overview

Based on the Enthought Academy course of the same name, Deep Learning for Scientists & Engineers provides students with a practical introduction to deep learning using Keras and TensorFlow.

Deep Learning is a specific sub-discipline of Machine Learning that makes use of neural networks, a class of model architectures with similarities to the human brain and nervous system.  This course focuses on modeling with neural networks.

We will begin by building a solid foundation of the basics of deep learning and will gradually progress into more advanced topics like model training and evaluation.  While the course emphasizes a practical approach to deep learning, there are times where just enough theory is covered to understand the "why" behind certain modeling procedures.

Prerequisite

This course requires basic proficiency with Python and the scientific Python stack. Some practical experience with Jupyter Notebooks, NumPy (ndarrays), Pandas (DataFrames), and scientific visualization in Python using Matplotlib are essential to working with the code and concepts presented in this course.

If you have taken Python Foundations for Scientists and Engineers, you have the requisite background knowledge for this course. While not a strict requirement, it is strongly recommended to have taken Machine Learning for Scientists and Engineers (or have a working knowledge of basic machine learning principles) prior to taking this course.

This course pairs well with Data Analysis with Pandas for Scientists & Engineers, which focuses on the workflow to prepare machine learning-ready data sets.

Lectures

  • Intro to Deep Learning & Neural Networks – Artificial Intelligence (AI), Machine Learning (ML)
  • Keras & Tensorflow – Neural Network Architecture (Layers & Activation Functions)
  • Building Neural Networks – Sequential Model, Compiling & Fitting Models
  • Tuning Neural Networks – Data Partitioning, Model Learning History
  • Saving & Loading Models – Model Checkpointing, Transfer Learning
  • Training Neural Networks I – Automatic Differentiation
  • Training Neural Networks II – Custom Training Loops
  • Custom Reporting – Keras Callbacks
  • Evaluating Neural Networks I – Evaluation Metrics, Diagnostics & Remedies
  • Evaluating Neural Networks II – Model Appraisal

Packages

tensorflow