Page 1 of 1

# Module Code - Title:

PH4005 - INTRODUCTION TO COMPUTATIONAL PHYSICS

2022/3

2

4

0

0

4

6

N

# Rationale and Purpose of the Module:

Physicists at undergraduate level regularly deal with systems that have analytical solutions. However, in many instances analytical solutions are not possible and so these systems require numerical solution. In addition, physicists frequently encounter large data-sets that require analysis that is unfeasible to analyse manually and is beyond the capabilities of a spreadsheet. A physicist should be able to identify these difficulties and implement the appropriate computational methods as necessary. This module allows students: - to develop programming skills appropriate to physics. - to recognise and solve problems from physics that require numerical techniques rather than analytical approaches. - to develop skills in the application of numerical techniques to physical problems and data analysis. - to enhance competency in the creation of electronically prepared scientific reports and the associated presentation of data.

# Syllabus:

[Introduction to computation in physics:] The necessity of numerical techniques in physics; How computers store and manipulate data; storage of numbers and roundoff error; comparison of common programming languages used in physics. [Introduction to Programming:] Basic syntax and structures in a programming language; functions; file reading/writing; data visualisation. [Software for writing physics reports:] Mathematical typesetting; Labels and references; citations; including figures and captions. [Basic numerical techniques:] Root solving; matrix manipulations; curve fitting and interpolation; numerical integration and differentiation. [Advanced numerical techniques:] Solving ordinary differential equations; solving for eigenvectors and eigenvalues; the fast Fourier transform.

# Learning Outcomes:

## Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module, students should be able to: - Identify the numerical techniques required to solve problems in the physical sciences. - Implement these numerical techniques and solve these problems. - Manipulate data for analysis. - Document the usage of the produced code. - Create scientifically appropriate visualisations of data. - Compile a report of their investigations.

## Affective (Attitudes and Values)

- Recognise the limitations of analytical approaches to some problems in the physical sciences. - Value the methodical documentation of code and experimental work.

N/A

# How the Module will be Taught and what will be the Learning Experiences of the Students:

Students will learn through lecture and weekly project work in the computer laboratory. - Knowledgeable: Syntax of language; application of numerical algorithms; Use of software for report writing in physics. - Creative and proactive: Solving physical problems. - Articulate: Report writing and code documentation

# Prime Texts:

Alfio Quarteroni, Fausto Saleri, and Paola Gervasio (2010) Scientific Computing with MATLAB and Octave, Third edition , Springer

# Other Relevant Texts:

Ross L. Spencer and Michael Ware (2015) Introduction to Matlab ,
William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007) Numerical Recipes: the art of scientific computing , Cambridge University Press

# Programme(s) in which this Module is Offered:

BSAPPHUFA - Applied Physics