Scientific Programming for Chemists is an introduction to coding with Python for those with little or no prior experience in computer programming.

Concepts will be introduced in classes and weekly (in term 1) formative problems used to to solidify concepts and provide further familiarity. This course provides an introduction to computer programming with a particular focus towards tasks that are essential for parsing, processing and presentation of chemical data. Self-study via Internet / Moodle training will be supported problem class support. “Help desk” office hours will be provided by several staff throughout to support code development.

The overall aim is to equip students with the fundamental knowledge and the confidence required to tackle a variety of programming tasks, as well as the ability to adapt to future needs and changes in technology. You will be specifically be asked to address scientific data handling.

Topics covered include: Basic programming concepts, file handling, algorithm development and coding, debugging, testing and documentation.

You will develop an application of your own which will be assessed for its correctness, programming style, testing and documentation.

The application will draw on your chemical knowledge developed over the first two years of your degree, addressing issues of chemical calculations, data processing and analysis, particularly those encountered in physical chemistry.

Learning Outcomes

On successful completion of the module, a student will be able to:

Understand why Python is a useful programming language for developers
	Have an understanding of how to develop an algorithm and be able to translate that algorithm into working code
	Design and program Python applications using a large sub-set of the language effectively
	Be able to document a code
	Be able to develop a testing regime for a code
	To be able to address advanced chemical data handling and processing
Assessments

Two in-class tests (20%) to ensure progress in the fundamentals of coding.

A coding project (80%) setting out a chemical problem, its (coded) solution, its testing and documentation. The project will require the student to fully document their project – from establishment of problem and solution, the development of code structure, the code itself, a suitable test suite and documentation.