Shared Resource#

Miguel Rivera (UCL) & Andrew R. McCluskey (Bristol)


This is the second blog post about the 5th of April 2024 meeting on teaching Pythin in Chemistry.

Shared resource#

Perhaps the most active discussion at our meeting was about creating a platform for sharing resources relating to teaching Python in Chemistry. This would be an ambitious cross-institution project, catering to every teaching style outlined in the previous post. The initial proposal would be that a single entry point is created to all of the existing material, with clear guidance on how to add new resources. This material would be organised according to the target audience.

For the student#

We envisage two kinds of student-facing lessons.

Lessons section#

A series of lessons would teach Python fundamentals with no prerequisite knowledge. This is to serve as a concise starting point to quickly allow someone to run and understand code. Here, the focus is briefly about setting up the conditions to run Python, but primarily about stating the principles of the language in a way that can be seen as applicable to Chemists and can serve as a reference later on. Most of the lessons would cover syntax and basic programming procedures, as such we would take inspiration from pre-existing resources from other fields or domain-agnostic.

Example: A lesson on loops explaining the for syntax by iterating over IR absorbance data.

Activities section#

A series of self-contained activities where the student is led to accomplish a programmatic task relating to Chemistry. The goal is to present loose recipes to common tasks. Some syntax would be introduced but there would be closer attention to intoducing programming patterns and code quality.

Example: An activity that teaches you how to plot an IR spectrum and indicate the point of lowest absorbance.

For the instructor#

There would be a section dedicated to tools for instructors.

Datasets#

Obtaining input data is often a deceptively tricky step for an example code. It’s useful for demonstrations, setting exercises, and assessment. We would host a variety of datasets to be used at the instructors’ discretion. They would systematically be labelled with metadata to track their origin and significance.

Assessments#

Instructors are already showing great creativity in designing assessments for each of their contexts. Some examples are Jupyter- or VLE-based quizzes, bounded exercises, or programming projects. We propose that instructors could share their ideas for assessment along with advice for how best to run them.

For the contributor#

We felt strongly that this project should be open-source. As such, contribution guidelines should be strict and easy to follow.

The initial aim is to share existing material. However, over time, we hope to instantiate metadata for each element of existing material, including concepts of pre-requisites. From this metadata, it may be possible to design “pick-and-mix” style courses that reach across the different existing resources. We would also welcome new bespoke content, ideally organised in short self-contained pages, so as to remain modular.

We hope to formalise these guidelines as we go so as to best make use of the diverse sources of preexisting material while keeping the content easily approachable to the new reader.

IP and funding#

Since this is a project about sharing teaching resources, we enter the sticky region of intellectual property, where some universities may be opposed to their employees contributing. Wherever an employer would be of concern, we advise not to share preexisting material. A safer way of participating would be to collaborate on new resources across institutions, thus spreading out the university’s claim on the material. The contributing institution would still have their role credited very visibly and we would aim to make this a boon for the university in terms of impact and visibility, rather than a drain on resources.

For this same reason, we need to access funding independent of universities to represent the interest of the Chemistry teaching community nationally. This could pay for someone to dedicate their undivided time to the project and prevent any university from claiming ownership.

Miscellanea#

A variety of other important topics were discussed at the meeting, which could serve as conversation starters. Here is an inexhaustive list which we hope to continue reflecting and acting upon:

  • Generative AI: How can we make it our ally in teaching programming?

  • Community building: How will we stay in touch? We have started a GitHub discussion board which can serve as our HQ.

  • Teaching teachers: What sort of interventions can we propose to help introduce Python in the teaching of colleagues?

  • RSC accreditation: What place does programming have as a skill in the eyes of accreditation? Can we help to formalise this better?

  • Notebooks and code editors: What is the best environment to write and run Python for a Chemistry student?

  • Follow-up meetings: We are interested in having an annual in-person meeting (delegates from the University of York offered to arrange this event). We would also like to set up more frequent online meetings where different departments woul present their approach to teaching Python.

Conclusion#

Overall the appetite for this meeting and the quality of conversations drove home how much we had been missing a community of practice. Watch this space for more news about our projects and hopefully more posts about Python in Chemsitry!

Finally, we would like to thank everyone who joined and hope to continue the conversation with them and the wider community online.


A group photograph taken at the meeting at UCL