Bachelor of Science (BSc)

BSc Computer Science with Industrial Experience

Graduate the most targeted university by top graduate employers, having already gained invaluable experience in industry (THE Graduate Market, 2023).
  • Duration: 4 years
  • Year of entry: 2025
  • UCAS course code: G405 / Institution code: M20
  • Key features:
  • Industrial experience
  • Scholarships available
  • Accredited course

Full entry requirementsHow to apply

Fees and funding

Fees

Tuition fees for home students commencing their studies in September 2025 will be £9,535 per annum (subject to Parliamentary approval). Tuition fees for international students will be £36,000 per annum. For general information please see the undergraduate finance pages.

Policy on additional costs

All students should normally be able to complete their programme of study without incurring additional study costs over and above the tuition fee for that programme. Any unavoidable additional compulsory costs totalling more than 1% of the annual home undergraduate fee per annum, regardless of whether the programme in question is undergraduate or postgraduate taught, will be made clear to you at the point of application. Further information can be found in the University's Policy on additional costs incurred by students on undergraduate and postgraduate taught programmes (PDF document, 91KB).

Scholarships/sponsorships

The University of Manchester is committed to attracting and supporting the very best students. We have a focus on nurturing talent and ability and we want to make sure that you have the opportunity to study here, regardless of your financial circumstances.

For information about scholarships and bursaries please visit our  undergraduate student finance pages .

Course unit details:
Fundamentals of Computer Architecture

Course unit fact file
Unit code COMP15111
Credit rating 10
Unit level Level 1
Teaching period(s) Semester 1
Available as a free choice unit? Yes

Overview

The module introduces Fundamental concepts involved in Computer Architecture, which is the study and design of Computer Systems. Among others, the module discusses architecture terminology (how do we talk about computer systems), models (how do we think about computer systems), topologies (how are computers structured), how programs are executed by the hardware, and how data (whether numbers, text, colours, or polygons) are represented in hardware using only binary digits.

Understanding the Fundamentals of Computer Architecture is essential for being able to reason about what exactly happens when we run a program. This is important not just for hardware designers and low level (Operating System, embedded) software developers, but for everyone that wants to create high performing, but still correct, software. As such, it is an increasingly important skill in Computer Science roles in business and finance. More generally, demystifying Computer Systems gives students a strong competitive advantage relative to developers that have no concept of what their code does, whether these developers are human ones or AI models.

To be more specific, the course will help students:

  • Understand the basic Von Neumann/Imperative computational model.
     
  • Understand the binary nature of digital computers, and how bit patterns can be used to represent such things as characters, numbers, and instructions.
     
  • Understand the essentials of the RISC-V instruction set and its registers.
     
  • Be able to understand the basics of assembly language programs.
     
  • Understand the correspondence between imperative code & data and assembly language.
     
  • Reason about the roles and interplay of the standard components of System Software (Compiler, Assembler, Library, Linker, Loader, Interpreter and Operating System), including how they are influenced by the design decision of the underlying computer hardware.

Key and Cognitive skills: The module will expand the student's vocabulary with respect to the technical terminology of Computer Architecture, while also providing the cognitive foundation for understanding the design and operation of Computer Systems. Over the course of this module, the students will become able to reason about how programs are executed, how data is stored, and how to make programs faster.

The student will be empowered to learn through multi-format lectures and Self-study-learning techniques. New concepts are introduced through pre-recorded Lectures, then these concepts are re-examined in a more practical context in Live Lectures. Each pre-recorded lecture comes with a set of associated formative (unmarked) questions that helps students get immediate feedback about their understanding of the material. Additionally, students can take part in an interactive quiz in the live lecture to gauge how well they are doing relative to

the rest of the cohort. Question sets that test wider parts of the taught material are released every two weeks. Finally, the lectures are supported by a set of Lab assignments that expand and solidify the student’s knowledge through a “learning by doing” approach.

Aims

This unit aims to introduce computer instruction sets and the binary representation of information, by exploring the relationship between high-level language programs and the basic structure and operation of digital computers, including the process that implements this relationship. Python and the RISC-V processor are used as exemplars. Practical experience is gained in the laboratory through exercises which progressively expose features of the RISC-V instruction set. The course-unit aims to serve as an essential foundation for further studies in the single honours Computer Science degree programme.

 

Learning outcomes

  • Propose and evaluate methods of representing different classes of data in a digital computer.
     
  • Analyse the suitability of different computer architectures for data processing.
     
  • Write simple programs in assembly language. Implement different code structures in assembly language: conditional branch, while, if, table jump.
     
  • Construct different data structures within a program and write code to access them, e.g. strings, arrays, and stacks.
     
  • Create reusable assembly language code using methods.
     

 

Syllabus

  • Introduction: Processors, simple RISC-V programs, binary representations, fetch-execute cycle, registers.
     
  • RISC-V code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts.
     
  • System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters.

 

Teaching and learning methods

  • Pre-recorded Lectures: 11 sets in total, 1 per week
     
  • Live Lectures: 11 in total, 1 per week
     
  • Laboratories: 4 labs in total, 1 per fortnight
     
  • Example Exercises: 4 in total, 1 per fortnight
     
  • Canvas Quizzes: A set of questions with each pre-recorded lecture
     
  • Mentimeter Quizzes: 1 in each Live Lecture

Employability skills

Project management
Oral communication
Problem solving
Research
Written communication

Assessment methods

Method Weight
Written exam 70%
Practical skills assessment 30%

Feedback methods

Considering that different students respond and process feedback in different ways, this module implements several different approaches for giving feedback.

Students receive personalised feedback (one-to-one) mainly in the context of the lab exercises. Students can directly ask the instructors or the Teaching Assistants (typically post-graduate researchers in Computer Architecture) any question about the lab exercises and receive immediate high-quality feedback. If the teaching staff have time, they might also be able to provide feedback on any student question, even if it is not related to the lab. On top of that, the student will receive detailed written individual feedback for every submitted lab coursework. Another way for students to receive personalised feedback is by asking questions during the Live Lecture. To lower the barrier for asking questions, the Live Lectures allow anonymous questions submitted through Mentimeter. A final way is by asking questions in the module’s Discussion Board. The lecturers aim to answer questions within one working day, but typically within a few hours.

Additionally, the unit offers several opportunities for group feedback (one-to-many). Canvas quizzes allow students to get immediate feedback on their understanding of the material, including detailed answers explaining the correct answers. Live Mentimeter quizzes provide similar feedback opportunities with the added benefit that the lecturer can elaborate more if the students request that. For each set of Example and Lab Exercises, we release detailed group feedback explaining what the correct answers were and what common mistakes we found in student submissions. We compile similarly detailed group feedback for the exam, which we release soon after we have completed marking. To help students prepare for the exam and get early feedback about their expected exam performance, we also give them a mock exam quiz which follows a similar structure and question difficulty as the actual exam.

Recommended reading

The COMP15111 reading list can be found on the Library's Reading Lists website

 

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 11
Practical classes & workshops 16
Independent study hours
Independent study 71

Teaching staff

Staff member Role
Luca Peres Unit coordinator
Pavlos Petoumenos Unit coordinator

Additional notes

For Independent study hours:

  • Pre-recorded Lectures: 11 hours
     
  • Other: 60 hours

Return to course details