Python for chemists: a problem-orientated introduction to scientific programming
Keywords:programming, scientific computing, data science
Programming is an essential skill in modern science, yet it is not routinely or systematically taught as part of most undergraduate science courses. Many students pick up an outside interest in programming, but those who do not may be left behind, and lose access to an essential part of the modern scientist’s toolbox. A compulsory programming module for all first-year science students is one possible solution, but such a general education may prove remote from specific disciplinary needs. The most useful skills for non-specialists using programming in their research or work are different from those needed by specialist computer scientists, with more emphasis on data generation, processing, exploration, analysis, and visualisation.
Within the University of New South Wales School of Chemistry, we have designed a Python in Chemistry Honours module for final-year undergraduates and research students, designed to directly tackle these challenges and offer an alternative to, or complement, earlier structured programming training. There are three main learning activities supported by class discussions, workshops, and explicit incorporation of meta-cognition and communication within assessment.
- Self-paced online modules, self-selected with beginning and advanced modules to support diverse student programming backgrounds;
- Discipline-specific challenges as assignments;
- A capstone major project designed by the student usually to support their disciplinary research.