Python First, Computational Chemistry Later#
Course Approach#
One of the goals of this course is for you to explore concepts and techniques used in computational chemistry research by writing your own Python code to solve various problems. To achieve this, we will follow a structured approach:
Weeks 1–2: Python Fundamentals
Arithmetic operations
Variables and data types
Basic data structures (lists, tuples, dictionaries)
Control structures (loops, if/else)
Functions and Modules
Week 3: Introduction to Scientific Python
Working with arrays (using NumPy)
Plotting data (using Matplotlib)
Markdown
Weeks 4-9: Applied Computational Chemistry with Python
Potential energy surfaces, geometry optimisation, and function minimisation
Model fitting
Molecular Dynamics simulations
Monte Carlo methods
Working with vectors and matrices
Eigenvalues and eigenvectors in computational chemistry
Weeks 10-11: Consolidation and Coursework
Unassigned sessions for completing exercises, consolidating your learning, or working towards your coursework submission.
Why This Approach?#
This course is built around the idea of learning through doing. One of the best ways to build an understanding of a particular computational method or a particular approach to solving a problem is to write your own code that implements this method or solution. To do this, you will need just enough Python to be able to solve model computational chemistry problems.
Learning Objectives#
By the end of this course, you will be able to:
Deconstruct complex problems into a sequence of algorithmic steps.
Write and debug Python programs.
Apply Python to solve basic computational chemistry problems.
Understand and implement fundamental algorithms and methods in computational chemistry.