PHY 546: Python for Scientific Computing

a weekly graduate seminar on techniques for scientific programming

Instructor: Michael Zingale

(Spring 2017)


Some basic programming background, be it C/C++, Fortran, matlab, mathematica, ..., (enough to understand the logic of programming, control statements, basic data structures, etc.) would be useful.

This is intended to be a 1-credit class. The primary method of evaluation is class participation.

To make the most of this class, you should have python installed on a laptop that you can bring to the seminar. On Linux machines, you can get python and the needed libraries through your package manager. For Mac and Windows, you might want to consider the free distributions provided by Enthought Canopy or Anaconda. These both install everything you need.

All of the course slides (in LibreOffice flat XML format), scripts, and IPython notebooks are availble on the course github page:

Course Information:

syllabus: syllabus.pdf

Online Resources:

The following free online books might be helpful:

Other Readings (dealing with Open science and managing code projects):

Python Resources by Disicipline:

The following list provides links to discipline-specific python software:

Course Topics:

Note: this information will be updated continuously throughout the semester, so it is best to look at the relevant topics just before the class meeting.

Introduction to python

(lectures 1–4)

The NumPy library

(lecture 5)

Python Practices

(lecture 6)

Matplotlib and others

(lecture 7)

SciPy and numerical methods

(lectures 8–9)


(lecture 10)

Pandas and the data frame

(lecture 11)

Extending python with C/Fortran & System Operations

(lecture 12)

Building python applications / Packaging

(lecture 13)


(lecture 14)

Other topics (if time)




Interfacing with Arduino Microcontrollers

h5py and HDF5


Last Modified: Saturday, 17-Jun-2017 13:26:09 EDT