Bootcamp, Winter 2021     Agenda     Registration     About

Henry Schreiner

Instructor bio


This session will cover tips, tricks, tools, and techniques to make more effective and productive use of Python in research computing. It will cover aspects of Python in more detail than is typical in introductory treatments, with emphases on best practices for making one’s code more “Pythonic”, on avoiding common pitfalls when using Python in research computing, and on understanding available tools within the base Python language and the broader Python ecosystem. An assortment of topics will be covered, including Python’s underlying object model, what decorators are and how they work, and useful modules and tools.

The target audience is current users of Python who know basics but would like to be more effective and professional in their Python code development. This session will be heavily hands-on.

Learning objectives

Participants will come away with a stronger foundation of how Python works “under the hood” and of some best practices for Python programming, both in and out of scientific contexts.

Knowledge prerequisites

Participants should have a fair amount of Python use under their belts, even if their Python knowledge is not “deep”. In other words, attendees should be comfortable with basics of Python syntax and constructs (e.g. how loops and if/else statements work, how to define functions, what lists/tuples/dictionaries are, how slices work, etc). This session is not appropriate for those without prior Python experience or prior programming experience.

Hardware/software prerequisites

Overarching requirements for all PICSciE virtual workshops are listed on the advance setup guide for PICSciE virtual workshops. In addition, for the hands-on portions of this session, participants should install the Anaconda Python 3 distribution – which includes Jupyter notebooks – on their laptops in advance. Instructions can be found on the PICSciE virtual workshops requirements page.

Alternately, participants without Python 3 installed on their laptops who prefer to run Jupyter Notebooks remotely on one of Princeton’s systems can do so the “myadroit” web interface to the Adroit cluster. To access myadroit, you should first register for an account on Adroit, as described in the advance setup guide for PICSciE virtual workshops. Then, connect to “myadroit” and start a Jupyter session, as described here.

Session format

Presentation, demo, and hands-on

Session Materials

All presentation materials are in this Github repo.

Session Recording

A recording of the session is here (requires active Princeton NetID to view).