Accessibility statement

Systems & Devices 1: Introduction to Computing Systems - COM00011C

« Back to module search

  • Department: Computer Science
  • Module co-ordinator: Dr. Mike Freeman
  • Credit value: 20 credits
  • Credit level: C
  • Academic year of delivery: 2022-23

Module summary

Introduction to Computing Systems

Module will run

Occurrence Teaching period
A Spring Term 2022-23 to Summer Term 2022-23

Module aims

Students taking this module will gain foundations in the key architectural components of a computer system, how a high level program is executed upon that system, and how a computer system is constructed in hardware.

Students will be introduced to how a computer system is constructed, and how a program implemented in a high level programming language (for example C) executes on that system. Students will be introduced to the basics of computer architecture, operating systems and program language construction, providing a basis for further study in later years. Students will be introduced to a bottom-up approach, motivated by real examples, taught as both lectures and laboratory practicals.Students will be able to describe and apply their programming skills on real devices and computer systems that are used in many real applications today.

Module learning outcomes


Identify the purpose of key computer hardware components such as processors, memories and busses.


Describe different data types commonly found in binary systems (e.g. signed vs. unsigned integers)


Apply different operations to binary to convert and transform binary strings, perform arithmetic, and perform logical operations.


Express logical expressions as basic gates, transistors and combinatoric logic circuits


Describe the function and limitations of a variety of logical building blocks in the context of processor architectures


Describe the von Neumann Model paradigm of computer architecture, including the fetch execute cycle of instruction processing.


Explain how operations executed in a processor can be used to implement to higher level sequential, conditional and iterative programming language constructs


Explain the use of assemblers, compilers and linkers to create executable code for a processor.


Build a simple system comprised of a CPU, memory and input/output.


Use a toolchain (compiling and linking code) to develop software for a simple system built in the module


Relate the fundamentals of computer architecture to real world systems through exploration of relevant case studies.


Identify potential security problems associated with architecture design.


Task Length % of module mark Group
SYS1 Assessment
N/A 100 A
SYS1 Assessment
N/A 100 B

Special assessment rules



Task Length % of module mark Group
SYS1 Assessment
N/A 100 A
SYS1 Assessment
N/A 100 B

Module feedback

Feedback is provided through work in practical sessions, and after the final assessment as per normal University guidelines.

Indicative reading

*** J.Hennessy, D.Patterson Computer Architecture: A Quantitative Approach (2nd Edition) Morgan Kaufmannn 1990

*** W.Stallings Computer Organization and Architecture: Design For Performance (8th Edition) Pearson 2010

The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.