Unit information: Software Development: Programming and Algorithms in 2027/28

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 Software Development: Programming and Algorithms
Unit code EMATM0048
Credit points 20
Level of study M/7
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Pope
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

None

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

None

Units you may not take alongside this one

None

School/department School of Engineering Mathematics and Technology
Faculty Faculty of Engineering

Unit Information

Why is this unit important?

The aim of this unit is to provide students with a broad introduction to algorithm design and analysis, to essential programming skills (taught in the Python programming language), and to contemporary software development and engineering practices. These foundational skills are required so that students can understand, implement, and apply data science and computational methods in a wide range of contexts. By learning the fundamentals of programming and software development, students will be equipped both to develop their own code and to identify and use pre-existing packages to achieve given tasks. These skills will be essential in the rest of their degree and will open students up to a world of opportunities in their lives and careers to solve problems using code.

How does this unit fit into your programme of study

Software Development: Programming and Algorithms is a core unit in the Data Science MSc and related degrees for students who have no previous experience of coding. This unit will equip students with the essential programming, software development, and algorithmic analysis skills that will be prerequisite knowledge for units on artificial intelligence and data processing, and which will be necessary for successful completion of project work.

Your learning on this unit

An overview of content

Topics covered in this unit will include: 

  • Python variables and structure 
  • Conditions and loops in programming
  • Data structures
  • Functions and classes
  • Object-oriented programming
  • Algorithm complexity
  • Searching and sorting
  • Python for data analysis
  • Web scraping and data visualisation
  • Introduction to machine learning

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

Throughout this unit there is a focus on students developing their computer programming and software development skills. Students will be able to implement reliable code to solve real world problems. Students will be able to understand algorithm complexity and better able to avoid performance issues. Students will be able to use common data science libraries for cleaning and visualising data along with basic regression and classification. Finally, students will be better able to understand the data science life cycle.

Learning outcomes

On successful completion of the unit, students will be able to:

  1. Program competently in Python, using procedural, object-oriented, and/or functional techniques as appropriate.
  2. Appreciate the importance of space and time complexity of algorithms and be able to design algorithms, and analyse algorithm complexity at an elementary level using big-O notation.
  3. Effectively identify, deploy, and usefully integrate pre-existing packages of library code.
  4. Analyse and interpret data science lifecycle, and understand how to implement each step by appraising, selecting, and applying appropriate tools and techniques.

How you will learn

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities and self-directed exercises.

How you will be assessed

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

Students are provided a two-hour tutorial each week that include tasks related to the week’s topic. The tasks directly and indirectly prepare students for the summative tasks. Teaching assistants provide support during the tutorials to help students complete the tasks and provide feedback. The formative assessment further prepares students for the summative coursework. The formative assessment is provided to students approximately half-way through the unit with feedback prior to the summative assessment.

Tasks which count towards your unit mark (summative):

Coursework (100%) consisting of a set of tasks on software development and an open-ended task focused on applying the material covered in this unit to problems in engineering, mathematical modelling, data analysis, or related areas. This will assess all ILOs.

When assessment does not go to plan:

Re-assessment takes the same form as the original summative assessment.

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

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 assessment methods listed in this unit specification are designed to enable students to demonstrate the named learning outcomes (LOs). Where a disability prevents a student from undertaking a specific method of assessment, schools will make reasonable adjustments to support a student to demonstrate the LO by an alternative method or with additional resources.

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.