Introduction to Computer Systems
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.
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
- 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
The material will be taught through traditional lectures, backed up by unassessed formative exercises and assessed courseworks designed to reinforce the material as it is taught.
The Piazza Q&A web service will be used as an open online discussion forum for the module.
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.
Module leadersProfessor Wayne Luk
Dr Maria Valera-Espina