Programme/Approved Electives for 2023/24
Available as a Free Standing Elective
This module bridges the gap between the fundamental, theoretical organisation of computer systems and high-level concepts such as programming languages. Through the study of key ideas such as the design and organisation of hardware, the role of operating systems and the computational principles of parallelism and caching we come to understand the flexibility, power and limitations of todays information technology. Students who take this module gain a deep insight into the mechanics of everyday computing as well as the constraints we encounter and the design choices we have to make when building our own software systems.
This module aims to provide an expanded view of the operation of real computer systems by introducing the core concepts of computer hardware in detail and elucidating the hierarchy of abstraction found in modern technology. The starting point for the module is architecture (e.g. processing, memory, caching, parallelism and I/O), beyond that covered in other introductory modules. This then leads into the role of operating systems (e.g. task scheduling, memory allocation and the organisation of storage) and virtualisation environments (e.g. translation of bytecode to CPU-native code by the Java Virtual Machine) as mediators between hardware and user-defined software. The overall aim is to bridge the gap in description between the fundamental organisation of computer systems and the high-level language constructs and design philosophies that are expanded upon later in the degree programme.
Intended Learning Outcomes
describe the organisation of modern computer architectures: 1distinguish, in broad terms, between extant hardware architectures and evaluate their suitability for particular problems: 1describe, apply, analyse and interpret the results of various benchmark measures of computer performance: 1summarise the various degrees of abstraction in computer systems and compare the utility of each level in different user contexts: 1explain mechanisms of memory management: 1deconstruct the role of operating systems in relation to computer architectures and user-defined software: 1
22 hours: Lectures18 hours: Practical classes and workshops110 hours: Guided independent study
1: Open Book Examination weighted 100%
Description of Module Assessment
Online open-book examThe examination will assess both theoretical understanding and problem-solving abilities developed throughout the module. The examination paper will be made available on the KLE platform as a Word document on the morning of the exam. Students will have a total of 28 hours to complete the exam. To ensure clarity, students should label each question clearly when providing their answers using Word. It is important for answers to be accurate and concise. Although a generous amount of time has been allocated for completion, it is anticipated that most students will complete the exam within approximately 2 hours.