Numerical Programming in C

Module code: PA3247

The Physics Skills Electives are designed to help you improve your skills and enhance your career options in industry, education, research and/or business. In this skills elective you will learn the basics of programming in C, with a particular view toward numerical methods, computational models and running computational experiments. C is a very widely used computer language that has been common in academia and industry for over 30 years. C is one of the few high level languages that allows the programmer access to any level of the computer down to machine code. Its main advantage is its speed, nearly as fast as assembler language, making it ideal for large computational problems in science. It is also a good gateway to learning, for example, C++ and C#.

During the course of this module you will have the chance to write software to investigate physical problems while learning about common numerical issues in convergence, stability and accuracy. Along the way you will also build up a toolbox of software covering, for example, root finding and optimisation, integrating ODEs, and solving PDEs, which may be useful to you in the future.

Topics covered

  • Basic C programming
  • Numerical methods 
  • Computational models and experiments
  • Accuracy, convergence and stability of numerical methods
  • Oral and written communication
  • Professional development

Learning

  • 30 hours of practical classes and workshops
  • 120 hours of guided independent study

Assessment

  • Coursework (100%)