Skip to main content

Unit information: Computer Programming and Algorithms 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 Computer Programming and Algorithms
Unit code SEMT10002
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Dr. Philamore
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 world runs on algorithms – they recommend what movies you might like to watch, they recommend what advertisements to display on websites you visit that are specific to your interests, and they keep track of information that would otherwise be difficult to find or combine. Being able to think algorithmically is a core skill for the 21st century engineer. Computer programming enables you to translate your algorithms into rigorous instructions that machines can understand and execute. Programming also enables you to calculate, predict, plan and design engineering products and processes in an iterative fashion, trying out ideas by modifying code until you arrive at a suitable solution.

How does this unit fit into your programme of study

This is an introductory unit that does not require previous programming experience. The skills acquired in this unit form a foundation for mathematical and data modelling, where real-world problems are solved with the help of computer programs that you write. Specialist units in artificial intelligence, data-science, computational mechanics, and scientific computing all make use of computer programming and will further enhance your computing skills.

Your learning on this unit

An overview of content

On this unit, you will learn:

  • The fundamentals of programming (e.g., data types, controlling the flow of a computer program, modularising code with functions)
  • How to read, write, process and visualize data
  • How to write code that is not only correct, but also understood by others
  • How to think about and implement basic algorithms (e.g. for searching or sorting)
  • How to translate a mathematical model or algorithm into a computer program

You will learn using Python, which has the following benefits:

  • Free and open source
  • Versatile - both a scripting and a programming language:
    • scripting : run in a host application for debugging and viewing output (e.g. a mathematical model)
    • programming : controls a computer or machine (e.g. a microcontroller on a robot)
  • Increasingly used in industry and academia
  • A large and diverse community of users and developers

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

When students have completed this unit, they will have foundational skills in designing, writing, and debugging computer programs and an understanding of fundamental terminology for computer programming and algorithms. This will enable students to go on to learn more advanced skills around algorithm design and programming and to apply good programming practice in all their work.


Learning outcomes

At the end of this course, students will be able to:

  1. Describe the basic principles, concepts and terminology used in computer programming.
  2. Apply the fundamental tools of computer programming to write simple computer programs.
  3. Translate high-level "problem statements" into simple algorithms and implement these algorithms as a computer program.

How you will learn

Learning will occur through application of programming and algorithmic principles; we believe the best way to learn to code is to write code (ILO 2, 3). This learning will be supported by activities that require you to read, understand, reflect, extend, and correct code written by yourself and others. These activities will support your ability to design effective computer programs and communicate how and why you have chosen to write a piece of code (ILO 1, 3).

You will be required to pre-watch/pre-read provided study material about fundamental programming and algorithms. You will attend weekly lab sessions where you will work through an exercise sheet to get hands-on experience of writing computer code. These sessions will alternate between introducing fundamental programming concepts and applying these concepts together to solve simple problems.

Every two weeks you will also attend a seminar where we will discuss and engage in group work on high-level concepts of programming and algorithms.

How you will be assessed

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

Regular lab exercises (asking you to practise and demonstrate programming fundamentals by completing short and focused programming tasks) will be released in most weeks. You will be expected to engage with the lab exercises on an ongoing basis, throughout the unit, and submit them for automatic individual-level marking and feedback.

Consolidation exercises (longer activities in which you bring together multiple different programming fundamentals to solve a problem) will be released in the weeks where you are not assigned lab exercises. You will submit the code you produce for these activities and class-level feedback provided. The consolidation activities will prepare you for Summative Assessment 2; the questions will be similar in scope and style, and the feedback will familiarise you with the marking process.

Tasks which count towards your unit mark (summative)

There are two summative assessments:

Summative Assessment 1: You will submit a code portfolio (20% of final grade) which will comprise a subset of the weekly lab exercises. This is to test your ability to apply the fundamental building blocks of programming (ILO 2).

Summative Assessment 2: You will submit a coursework assignment (80% of final grade) comprising a modelling exercise and report. The assessment of this coursework assignment will be supported by a viva in which you will discuss your work. This is to test your ability to produce a complete program and explain how it works (ILO 1 and 3). You must pass this assessment in order to pass the unit overall.

When assessment does not go to plan

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


If you pass one of the summative assessments, then your mark for this can be carried forward towards your final mark and you will only have to be reassessed on the assessment that you did not pass. Note that Summative Assessment 2 is a must pass component of the unit, and so you will need to be reassessed for this if you do not pass it (including a new coursework submission and viva), even if your overall grade for the unit would correspond to a passing mark.

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

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