Skip to main content

Unit information: Computational Physics and Data Science in 2024/25

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name Computational Physics and Data Science
Unit code PHYS20035
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Dr. Hanna
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

PHYS10013 OR PHYS10014 OR SCIF10002

Units you must take alongside this one (co-requisite units)

N/A

Units you may not take alongside this one

SCIF20002

School/department School of Physics
Faculty Faculty of Science

Unit Information

Why is this unit important?

Computing is an essential skill in all aspects of our society; however in quantitative science it is an indispensable aid to the work which we do. This unit will advance your skills in computational physics, applying appropriate numerical techniques to solving problems in physics, and giving you experience in good programming practice, software testing and version control. Increasingly, there are physics experiments generating vast quantities of data and it is vital that you have the knowledge to manage such data sets. The practice of Data Science is central to the modern economy, and through application to appropriate physical data sets you will learn the principles of handling data, model fitting and analysis of trends and regression which will prepare you for future courses on machine learning.

How does this unit fit into your programme of study

This unit follows on from your first year Practical Physics unit; you have been introduced to the use of the Python programming language already, and in this intermediate unit we will develop your skill further and apply it to the interrogation of appropriate data sets, and to the building of physical models.

Your learning on this unit

An overview of content

In this unit you will use the coding principles encountered in the first year of your course and build on these to develop your understanding of numerical techniques in a physical context. The approaches covered will be:

  • Programming using an integrated development environment;
  • Structured and clean coding techniques;
  • Strategies for debugging code;
  • Software testing and version control;
  • Getting the most out of Python modules;

All of which will be applied to:

  • Numerical approaches for solving physical problems governed by sets of differential equations.

You will also be introduced to the guiding principles of data science and the insights which can be gained through the management and analysis of large data sets. Such insights can only be gained through the application of the following techniques:

  • Data cleaning and visualisation;
  • Correlation and regression;
  • Multiple linear regression;
  • Principal component analysis.

How will students, personally, be different as a result of the unit

A more advanced understanding of a coding language such as Python will allow you to more readily adapt to using other languages, and you will start to apply “computational thinking” to write code no matter the language needed. Through introduction of more systematic coding and debugging techniques you will write code which is easier to understand, debug and maintain. This more advanced thinking will allow you to adapt to using advanced tools to analyse larger data sets, using correlation and regression techniques for discovering trends and principal component analysis to identify the significant variables in a system. This will lead you towards the understanding necessary to start realising the potential for machine learning in your future studies.

Learning outcomes

By the end of this unit, you will be able to:

  • Write clearly structured and maintainable computer code using an integrated development environment;
  • Use and apply more advanced programming tools for debugging code and version control;
  • Maintain code in an appropriate manner, with comments and guidance for other users;
  • Develop and apply mathematical algorithms in Python to solve physical problems;
  • Take datasets from diverse sources, cleaning and reading the data into a consistent structure within your programs and presenting the data in a scientifically appropriate manner;
  • Apply multiple linear regression to complex datasets to establish trends in behaviour;
  • Use principal component analysis to reduce the dimensionality of complex datasets and identify clusters of closely related data points.

How you will learn

You will learn the techniques through a combination of:

  • Synchronous lectures and demonstrations
  • Asynchronous online materials, including narrated presentations and worked examples
  • Synchronous drop-in sessions and/or office hours
  • Asynchronous directed individual formative exercises (Jupyter notebooks)
  • Guided structured reading

You will also be introduced to the appropriate use of online knowledge bases for the purposes of developing and refining your code.

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative)

Through the duration of the course you will be able to attempt the problems in the Jupyter notebooks and gain verbal feedback on them during the drop-in sessions. This feedback, when used appropriately, will help you to develop your responses for the summative exercises. Additionally, appropriate use of feedback received on summative tasks will help you in future tasks.

Task which count towards your unit mark (summative)

The unit is assessed 100% by coursework. This will take the form of four summative exercises (20% each), and fortnightly short tests (20% overall) to ensure you develop fluency with the python coding. Feedback from these short tests will contribute to the main summative exercises.

Summative exercises (80%) (ILO 2,3,4,5,6,7)
Short online tests (20%) (ILO 1, 3, 7)

When assessment does not go to plan

In the event of failing to pass the unit, you will have the opportunity to complete a single summative assignment as supplementary coursework during the Summer.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. PHYS20035).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.

Feedback