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

Science

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

Otherwise it's not science.

Computers

should...

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

But scientists don't use them effectively.

Education

must...

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

But computers have changed everything.

Then and Now

Illiac III
TITAN

Pop Quiz

pollev.com/katyhuff

The Hacker Within is Helping

Peer-led organization for scientific computing best practices.

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

Community

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

Peer-Driven

  • 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
hunter
scbc

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.

workshop

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
workshops

But Why Do They Do It?

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

HPCCarpentry?

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).

How?

  • 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

databears

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

Lorena Barba

Lorena Barba

New Resources

book
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

github.com/physics-codes/seminar

Acknowledgements

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.

Acknowledgements

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

BIDS Logo FHR Logo

Links!

THE END

Katy Huff

katyhuff.github.io/2015-11-15-pyhpc
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.