ACSE 1: Modern Programming Methods

Module Lead: Dr. Gerard Gorman

Staff: Dr. Gerard Gorman; Dr. James Percival; Dr. Rhodri Nelson;

Course Description

The module will include covering the following topics:

  1. Software version control: This is necessary to maintain a detailed record of software as it is developed, including how to work collaboratively. While the skills are portable across many software version control systems, this module will use git with GitHub.

  2. Test driven development and continuous integration: Software development is planned around the tests that can be written to ensure correctness, while software version control is integrated with automated testing to monitor software health on a continuous basis.

  3. Students will be taught how to program in Python and how to use a range of Python modules to perform compute-intensive and data-intensive tasks.

Reading List

  • A Primer on Scientific Programing with Python, Hans Petter Langtengen

  • Algorithms, Robert Sedgewick and Kevin Wayne

  • Bits and Bugs, Thomas Huckle and Tobias Neckel