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.

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 and 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 and 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.  Some unsupervised machine learning strategies will also be covered.

This course builds a solid foundation of the basics of machine learning, using problems drawn from science and engineering data sets.

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.

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 and Engineers provides students with a practical introduction to deep learning using Keras and TensorFlow.

This course focuses on the fundamental model architecture used in deep learning: the neural Network.

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.

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