A Pythonic Future

For Science Education

Kathryn (Katy) Huff

PyHPC, Austin, TX

November 15, 2015

Who is Katy Huff?

Physics, University of Chicago Nuclear Engineering and Engineering Physics, University of Wisconsin - Madison Nuclear Engineering, University of California, Berkeley
cyclus pyrk pyne FHR Logo BIDS Logo Scipy THW Software Carpentry book

Science Curriculum Needs To Be Refactored


  • builds and organizes knowledge
  • tests explanations about the universe
  • systematically,
  • objectively,
  • transparently,
  • and reproducibly.

Otherwise it's not science.



  • improve efficiency,
  • reduce human error,
  • automate the mundane,
  • simplify the complex,
  • and accelerate research.

But scientists don't use them effectively.



  • transfer knowledge,
  • communicate concepts,
  • convey how to think,
  • prepare learners for their futures.

But computers have changed everything.

Then and Now

Illiac III

Pop Quiz


The Hacker Within is Helping

Peer-led organization for scientific computing best practices.

Nuclear Engineering and Engineering Physics, University of Wisconsin - Madison Nuclear Engineering, University of California, Berkeley melbourne Michigan State Yale swinburne UIUC THW


  • democratic anarchy
  • maximize permissions
  • charismatic leadership
  • occasional beer
excellent team


  • peer teaching and learning
  • interdisciplinary normalizes mixed skill levels
  • relevant topics
  • appeals to the desire to show off
  • direct peer-to-peer skill sharing
SC Bootcamp 2
SC Bootcamp 1
Python Bootcamp

Software Carpentry is Helping

Software Carpentry

Software Carpentry Foundation

  • NumFOCUS umbrella
  • Elected Steering Committee
  • Representative, Expert Advisory Council

We make researchers in science, engineering, and medicine more productive by teaching them basic lab skills for scientific computing.


Software Carpentry Workshops

  • Two days of hands-on learning
  • Scientists teaching scientists
  • Instructors are volunteers
  • Materials are all open access
  • bash --> automate tasks
  • python --> build modular code
  • git --> track and share work
  • SQL --> manage data
  • nose --> program defensively

But Why Do They Do It?

  • community
  • travel
  • teaching experience
  • teaching = learning
  • sensed need
  • etc.
building a better teacher How Learning Works
instructors vs workshops
workshop sizes
steering committee
steering committee


The Only Sustainable Solution

Will Infuse Traditional Curriculum with Computing

Ideally, using python.

Why Python?

Python is now the most popular teaching language
P. GUO, "Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities," (2014).


  • open source for collaboration
  • example-driven for contextual computation
  • project-focused with incremental assignments
  • using proven pedagogy backed by science
  • and using modern tools like nbgrader

NBGrader: Jess Hamrick

Data Science 8


Cathryn Carson, David Culler, etc. databears.berkeley.edu

Lorena Barba

Lorena Barba

New Resources

it was anthony's idea

(Anthony talked me into it.)

Getting Started

  • Chapter 1 - Introduction to the Command Line
  • Chapter 2 - Programming Blast Off with Python
  • Chapter 3 - Essential Containers
  • Chapter 4 - Flow Control and Logic
  • Chapter 5 - Operating with Functions
  • Chapter 6 - Classes and Objects

Getting It Done

  • Chapter 7 - Analysis and Visualization
  • Chapter 8 - Regular Expressions
  • Chapter 9 - NumPy: Thinking in Arrays
  • Chapter 10 - Storing Data: Files and HDF5
  • Chapter 11 - Important Data Structures in Physics
  • Chapter 12 - Performing in Parallel
  • Chapter 13 - Deploying Software

Getting It Right

  • Chapter 14 - Building Software Pipelines
  • Chapter 15 - Local Version Control
  • Chapter 16 - Remote Version Control
  • Chapter 17 - Debugging
  • Chapter 18 - Testing

Getting It Out There

  • Chapter 19 - Documentation
  • Chapter 20 - Publication
  • Chapter 21 - Collaboration
  • Chapter 22 - Licenses, Ownership, and Copyright
  • Chapter 23 - Further Musings

Effective Computation Course

  • Open source IPython Notebooks
  • Project-Driven Course Structure
  • Example-Driven In Class Work
  • BYO-Science Template
  • Alpha-testing, Tiffany Timbers, Simon Fraser
  • Beta release soon



Software Carpentry THW

This book was heavily inspired by the work of Software Carpentry and The Hacker Within. We are thrilled to see Effective Computation in Physics come to press and spread the joys of computation further into the physical sciences. In case you were wondering, the cuddly creature on the cover is a bobtail squid.


  • Anthony M. Scopatz
  • Paul P.H. Wilson
  • Gregory V. Wilson
  • Lorena Barba
  • Tiffany Timbers

BIDS Logo FHR Logo



Katy Huff

Creative Commons License
A Pythonic Future for Science Education by Kathryn Huff is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at http://katyhuff.github.io/2015-11-15-pyhpc.