Programme/Approved Electives for 2024/25
None
Available as a Free Standing Elective
No
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.
Aims
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
Description of Module Assessment
1: Open Book Assessment weighted 100%Online open-book exam