Python Foundations: 6-Week Core Course

Course Overview

This course provides an introduction to helpful tools commonly used to develop programs in Python. We begin the course by looking at the IPython prompt, an enhanced interactive and science-centric console. We then move on to a foundational understanding for programming and built-in data structures in Python.

This course also provides an introduction to performing scientific computations in Python using high-level packages like SciPy and NumPy. The topics include optimization, statistics, interpolation, integration, ODE solving, and functional curve fitting.

The 6 week program (course) covers:

  • Python Development Tools
  • Python Essentials: Data Structures
  • Python Essentials: Control Flow
  • NumPy Fundamentals
  • NumPy Toolbox for Numeric Data Processing
  • SciPy Data Analysis Algorithms

Course cost: $399. Contact us for further details.

Course Structure

Expected time commitment:
4-7 hours per week self-paced for video lectures and exercises

Course resources include:

  • Discussion board monitored by instructors who answer student questions
  • Videos
  • Lecture notes
  • Exercises


Unit 1: IPython Tools
We begin the course by looking at the IPython prompt, an enhanced interactive and science-centric console. Next we review the IPython notebook, a cell-based environment that renders scripts in a web-like interface, making it ideal for sharing and publishing analysis with peers. We present and demo these tools, fundamental for both learning and programming in the Python language, and show how they integrate with the Enthought Canopy platform. These tools will be central to your ongoing Python code development.

Unit 2: Python Data Structures
The unit begins with a twenty-minute whirlwind tour of Python's features and then settles into a more comprehensive discussion of the built-in data structures. The tour offers guidance on how and where each might be used, what trade-offs are present, and insight into Python’s design choices that will help you understand why Python works the way it does. The numeric types are covered first. Particular attention is spent on strings, lists, and dictionaries. Sets and tuples also make a showing. Generic patterns, such as indexing and slicing that work across multiple data structures, are also covered.

Unit 3: Control Flow
Looping, control flow, and exception handling build upon the data structure discussion for more complex applications. We end with coverage of code organization using functions, classes, modules, and packages.

Unit 4: Introduction to NumPy Arrays
This lecture series provides a comprehensive discussion of the array data structure, and how to model your computations using it.

Unit 5: Numerical Computing with NumPy
The discussion covers high-level design patterns, like broadcasting, that provide so much power, down to details such as memory layout for those interested in the performance and interfacing with other languages.

Unit 6: SciPy
This course provides an introduction to performing scientific computations in Python using high-level packages like SciPy and NumPy. The topics include optimization, statistics, interpolation, integration, ODE solving, and functional curve fitting.

Calendar and Syllabus

Week Release Dates Contents
1   Unit 1: IPython Tools
  • IPython Prompt
  • Developing Scripts
  • IPython Notebook
  • Knowledge checks
2   Unit 2: Python Data Structures
  • Introduction
  • Commonly Used Data Types
  • Numbers
  • Strings
  • Indexing and Slicing
  • Rationale for Zero Offset and Slicing Convention
  • String Formatting
  • Lists
  • Mutable vs. Immutable
  • Tuples
  • Dictionaries
  • Sets
  • Assignment
  • Data Structures FAQ
3   Unit 3: Control Flow
  • Introduction
  • If Statements
  • Loops
  • List Comprehension
  • Functions
  • Code Organization
  • Exceptions
  • File I/O
4   Unit 4: Introduction to NumPy Arrays
  • Introduction
  • Importing NumPy Libraries into Python
  • Visualization
  • Arrays
  • Slicing
  • Complex Arrays
  • Array Constructor Examples
  • Type Casting
  • Array Calculatino Methods
  • Sorting NumPy Arrays
  • Modifying Array Shape
  • Flattening Arrays
  • Ensuring Array Shape
  • Diagonals
  • Indexing with newaxis
  • tostring/fromstring
5   Unit 5: Numerical Computing with NumPy
  • Array Overview
  • Array Creation Functions
  • Creating Grids of Numbers
  • ogrid and mgrid
  • Matrix Objects
  • General Functions
  • Vectorizing Functions
  • Binary Operators
  • Universal Functions
  • Choose
  • Array Broadcasting
  • Text Files
  • Binary File Format
  • Structured Arrays
  • Array Fields and Nested dtypes
  • Record Arrays
  • Memory Maps
  • Reading Binary Files
6   Unit 6: SciPy
  • Introduction
  • Interpolation
  • Statistics
  • Curve Fitting
  • Minimization
  • Integration
  • Odeint()

Course Instructors

Jonathan Rocher

With experience in complex system modeling and scientific computing, Jonathan contributes to Enthought's fluid dynamics applications as well as course materials and training tools. Prior to working at Enthought, he was an instructor and research assistant in particle physics and astrophysics at the University of Texas and Brussels University. Jonathan holds a M.S. in physics and a Ph.D. in particle physics and cosmology from the University of Paris, France.

Eric Jones

Eric has a broad background in engineering and software development and leads Enthought's product engineering and software design. Prior to co-founding Enthought, Eric worked in the fields of numerical electromagnetics and genetic optimization in the Department of Electrical Engineering at Duke University. He has taught numerous courses about Python and how to use it for scientific computing. He also serves as a member of the Python Software Foundation. Eric holds M.S. and Ph.D. degrees from Duke University in electrical engineering and a B.S.E. in mechanical engineering from Baylor University.

Corran Webster

Corran obtained his B.S. from the University of New South Wales and his Ph.D. in pure mathematics from UCLA. He has held teaching positions at the University of Nevada, Las Vegas as well as Texas A & M. His academic areas of concentration included functional analysis and operator algebras. As Chief Scientist at Compudigm International, Corran worked on enterprise data visualization and redictive modeling using self-organizing maps. Corran has been programming in Python since 1995, when he was a teaching assistant in UCLA's Program in Computing courses.

Tim Diller

Tim holds a Ph.D. in mechanical engineering, specializing in thermal and fluid sciences. He has worked in the automotive industry with emissions measurement, modeling, and control in addition to vehicle dynamics modeling and simulation. He comes to us from a post-doctoral research position at the University of Texas, where he developed a numerical model and simulation of thermal transport processes in the laser sintering rapid-prototyping process at the LFF.

Python Foundations: 6-Week Online
Course Schedule

For inquiries or to register call 512.536.1057


“Just wanted to say this is awesome. I've been programming in Python the last couple of years but lately have been focusing on R and wanted to refresh on Python for some upcoming projects. All of this is so exceptionally well done.” “Wanted to drop a note and say how impressed I am with these courses. As a former instructor of online education, and a person who has taken a number of online courses, I can say these are excellent.” “I'm enjoying the training videos very much - exactly what I wanted to learn! (I'm a senior statistician and heavy R user trying to get up to speed on Python).”

Sample lecture video

See a lecture video included in this course.

View the Multi-dimensional Arrays lecture

Python Training on Demand

Download the accompanying exercise

Download exercise (zip file)