I’m checking in with a post-workshop report from hosting my third solo astropy workshop at Queens University Belfast from Nov 20-21, 2019. Workshop materials are available here.
Again, the intake survey shows there’s a large untapped base of astronomers to reach. Responses from the intake survey are available as a spreadsheet here.
- 100% all participants use Python for their research, yet...
- 20% of participants have never used astropy
Like in Bern/Geneva, I tailored the curriculum to people’s requests. The attendees voted to get my lessons on object-oriented programming and releasing your own python package using the astropy package-template. I got some really detailed feedback on these extra sessions in the outgoing survey. Some quotes I’m especially proud of include:
- “...the OOP explanation was probably the most lucid and understandable intro to the subject I've ever heard/read”
- “Overall, entirety of workshop was excellent and Brett deserves a raise”
This is the third time I’ve given the object-oriented tutorial and I’m still pleasantly surprised by how positive the feedback is. It seems that people like the introduction to OO so much because they have been using objects implicitly without understanding the logic for how they are structured/designed. Seeing the an object constructed from scratch helps them understand the logic for why so many operations follow an
object.method() pattern, and elucidates the framework used by astropy and other python packages use to structure their code. I got several students telling me after the workshop that “objects make sense now” and that they’re going to create classes for their research.
Because of the success of the OO tutorial, I’m debating if it makes sense to move the OO tutorial in the lineup to immediately after the “intro to python” tutorial. I think it might be really helpful for people to get introduced to the theory and practice of object-oriented programming in Python immediately before they get taught about a whole bunch of new objects in the astropy tutorials (Quantity, SkyCoord, Time, Table, etc). In reflecting on it a bit I really like this idea, because object-oriented programming is an integral part of the Python pedagogy, but we often take it for granted. If you have thoughts about this, please comment and let me know!
One interesting thing to note about the outgoing survey is that 100% of the attendees were students, and they consistently requested more time to go through worked examples during the workshop. I took ~5 opportunities for them to work through examples in the notebooks, so their appetite for more was a bit surprising to me. I suppose the learning style of students here is more hands-on than the later-career folks who are happy with the standard, fast-paced overview.
The schedule of the workshop looked like this, and the timing worked well. We split the workshop into two three hour segments over two days, and I think that format was actually really helpful for reducing the sense of overwhelm. It’s still very dense, but it gives people a chance to digest the first half of the workshop before drinking from the firehouse for the second half on the next day.