- Student Records
Programme & Unit Catalogues

Department of Physics, Unit Catalogue 2007/08


PH20018 Programming skills

Credits: 6
Level: Intermediate
Semester: 2
Assessment: CW 40%, EX 60%
Requisites:
Before taking this unit you must take PH10007 and take PH10008
Aims: The aims of this unit are to introduce and develop structured programming skills in a high-level language as a tool for the numerical solution of physical problems. A further aim is to develop the student's awareness of the sources of error in numerical calculations and the means of reducing them.
Learning Outcomes:
After taking this unit the student should be able to:
* carry out the structured design of a computer program using flowcharts or pseudocode;
* give examples of the introduction of rounding errors due to numerical techniques and methods of minimising such problems;
* write computer programs in a high level structured language including arithmetic expressions, loops, branching instructions and arrays;
* describe methods for testing and debugging programs and apply these techniques to the student's own computer programs;
* outline the advantages of using subprograms and write computer programs in a high level structured language using external subprograms;
* use numerical techniques to solve physical problems.
Skills:
Written Communication T/F A, Numeracy T/F A, Information Technology T/F A, Problem Solving T/F A.
Content:
Introduction to numerical analysis: Use of computers in numerical analysis.
Basic vocabulary of computers: Compilation, linking. Variable types. Generic control structures; loops and conditionals. Input and output. Arrays. Floating point round-off and truncation errors. Maximum integer size.
Syntax of the C language: Intrinsic functions of C. Operators and precedences.
Introduction to UNIX: Drives, files and directories in UNIX systems. Essential UNIX commands and editing.
Applications: Root finding. Function evaluation via series expansion and look-up tables. Matrix diagonalisation, normal mode problems.
Structured programming: Subprograms, modules, libraries, pointers, structures in C, inheritances, complex numbers.
Applications: Transfer matrix and/or shooting methods.