Introduction to Computer Systems

Module aims

In this module you will have the opportunity to develop a fundamental understanding of the organisation and operation of a computer system. The emphasis of the module is on understanding how high-level language programs are represented and executed at an architectural level.

Learning outcomes

Upon successful completion of this module you will be able to:

  • describe the basic organisation of a computer
  • explain different representations used for instructions, numbers and text
  • show how machine code instructions are executed by a computer
  • compare different implementations of a computer's control unit
  • explain program behaviour by reading the binary representation of machine code
  • translate high-level program fragments into assembler code
  • explain the effect that memory hierarchy has on a program's execution time
  • estimate the performance of a program on a given computer

Module syllabus

  • Basic organisation of a computer
  • Representations for instructions, numbers and text
  • Translation of high-level programs into instructions
  • Instruction execution
  • Implementation choices of the control unit
  • CISC and RISC Instruction Set Architecture
  • Assembler programming
  • Memory organisation and concepts of spatial and temporal locality
  • Performance estimation and Amdahl’s Law

Assessments

There will be two assessed courseworks which together contribute 15% of the mark for the module.
There will be a final written exam, which counts for the remaining 85% of the marks.   

There will be written feedback on the assessed coursework exercises and in-class and/ or email feedback explaining common pitfalls and suggestions for improvement.                

Reading list

Supplementary

Module leaders

Dr Bernhard Kainz
Professor Bjoern Schuller

Suggested reading