The aim of this module is to provide an introduction to computer programming for students with little or no previous experience. The Python language will be used in the Linux environment, and students will be given a comprehensive introduction to these during the module. The emphasis is on developing the practical skills necessary to write effective programs, with worked examples taken principally from the realm of data processing and analysis.

Learning Outcomes:

After completing this module, students will be expected to be able to:

1. Demonstrate an understanding of the principles and main concepts of programming in Python.
2. Explain Python programming constructs including control structures, lists, numerical arrays, input/output, exceptions, subprograms and modules.
3. Write and analyse programs that use the features listed above.

Outline Syllabus:

* Introduction to programming
* Program development and execution 
* Computation in Python
* Input and output
* Developing subroutines and modules
* Numerical and scientific modules
* Exceptions
* Graphical output
* Programming in the large