Instructor Notes

General Notes


It’s all right not to get through the whole lesson.
This lesson is designed for people who have never programmed before, but any given class may include people with a wide range of prior experience. We have therefore included enough material to fill a full day if need be, but expect that many offerings will only get as far as the introduction to Pandas.
Don’t tell people to Google things.
One of the goals of this less is to help novices build a workable mental model of how programming works. Until they have that model, they will not know what to search for or how to recognize a helpful answer. Telling them to Google can also give the impression that we think their problem is trivial. (That said, if learners have done enough programming before to be past these issues, having them search for solutions online can help them solidify their understanding.) It’s also worth quoting Trevor King’s comment about online search: “If you find anything, other folks were confused enough to bother with a blog or Stack Overflow post, so it’s probably not trivial.”

Notes on individual episodes


Operators, Functions and Methods
Let learners run the cells that produce errors on purpose and read the error message together. This makes later errors less intimidating.
Introduction to pandas
The data is downloaded from GitHub during the lesson. If the network in the room is unreliable, download openapc.csv beforehand and share it with the learners.
Retrieving Metadata from an API
In current versions of the DataCite JSON schema, publisher is a dictionary ({'name': 'Zenodo'}), not a string. Older copies of the notebook use doi_dataset["publisher"] directly, which raises a TypeError. DOIs of journal articles are usually registered with Crossref and return a 404 error from the DataCite API.