Skip to main content

Unit information: Algorithms and Programming in C(++) and R in 2022/23

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Algorithms and Programming in C(++) and R
Unit code MATH10017
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Dr. Song Liu
Open unit status Not open
Units you must take before you take this one (pre-requisite units)


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


Units you may not take alongside this one


School/department School of Mathematics
Faculty Faculty of Science

Unit Information

Lecturer: Song Liu

Aims of the unit:

  • The main aim of this unit is to help the student recognize and appreciate the computer as a data process device. It teaches students programming skills (C++ and R) for conducting basic data modelling and processing. It lays the foundations of good programming practice, including code debugging, testing and documentation.
  • By comparing high-level and low-level programming, this unit highlights the pros and cons of both programming styles in data science projects and how to optimize the code to get the best from both worlds.
  • This unit introduces students to the importance of data structures and data processing algorithms. An introduction to computational complexity enables students to analyse and select optimal data structures and algorithms

Your learning on this unit

At the end of the unit, the students should:

  • Understand the essential components and workflow of a computer and the features of C(++) and R language.
  • Be able to program, debug, document and test basic algorithms in C(++) and R, with appropriate coding paradigms.
  • Be able to decide between a low level and a high level programming language when faced with an algorithmic task.
  • Be able to code a basic data science project using C(++) and R by invoking existing statistics/data science libraries.
  • Have an awareness of computational complexity, robustness and efficiency and perform simple optimizations guided by these principles.
  • Convert programs into documented, reusable software packages.

How you will learn

Lectures, computer labs and homeworks. Computer labs will include significant e-learning content, enriched by tutor interaction.

How you will be assessed

1-1/2 hour examination (50%) and computer practical assignments (50% two for each teaching block, 4 in total).


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. MATH10017).

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 Faculty workload statement relating to this unit for more information.

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. If you have self-certificated your absence from an assessment, you will normally be required to complete it the next time it runs (this is usually in the next assessment period).
The Board of Examiners will take into account any extenuating circumstances and operates within the Regulations and Code of Practice for Taught Programmes.