Skip to navigation | Skip to main content | Skip to footer

COMP10031: Fundamentals of Computer Architecture (2009-2010)

This is an archived syllabus from 2009-2010

Fundamentals of Computer Architecture
Level: 1
Credit rating: 10
Pre-requisites: No Pre-requisites
Co-requisites: COMP10081
Duration: 11 weeks in first semester
Lectures: 22 in total, 2 per week
Examples classes: 5 in total, 1 per fortnight
Labs: 10 hours in total, 5 2-hour sessions
Lecturers: Pete Jinks, Ian Watson
Course lecturers: Pete Jinks

Milan Mihajlovic

Ian Watson

Additional staff: view all staff
Sem 1 w1-5,7-12 Lecture 1.1 Thu 10:00 - 11:00 -
Sem 1 w1-5,7-12 Lecture 1.1 Mon 15:00 - 16:00 -
Sem 1 w2,4,7,9,11 Lab UNIX Wed 09:00 - 11:00 A,Z
Sem 1 w2,4,7,9,11 Lab UNIX Tue 10:00 - 12:00 W
Sem 1 w2,4,7,9,11 Lab UNIX Mon 11:00 - 13:00 E,Y
Sem 1 w2,4,7,9,11 Lab UNIX Tue 13:00 - 15:00 X
Sem 1 w3,5,8,10,12 Examples LF15 Tue 10:00 - 11:00 X
Sem 1 w3,5,8,10,12 Examples LF15 Thu 14:00 - 15:00 E,W
Sem 1 w3,5,8,10,12 Examples LF15 Thu 15:00 - 16:00 A,Z
Sem 1 w3,5,8,10,12 Examples IT407 Mon 16:00 - 17:00 Y
Assessment Breakdown
Exam: 75%
Coursework: 0%
Lab: 25%
Degrees for which this unit is core
  • Artificial Intelligence BSc (Hons)


COMP10031 aims to introduce computer instruction sets and the binary representation of information, by exploring the relationship between high-level language programs and the basic structure and operation of digital computers, including the process that implements this relationship. Java and the ARM processor are used as exemplars. Practical experience is gained in the laboratory through exercises which progressively expose features of the ARM instruction set. The course-unit aims to serve as an essential foundation for further studies in the single honours Computer Science degree programme.

Learning Outcomes

On successful completion of this course, a student will:

Understand the basic Von Neumann/Imperative computational model. (A)
Understand the binary nature of digital computers, and how bit patterns can be used to represent such things as characters, numbers and instructions. (A)
Understand the essentials of the ARM instruction set and its registers. (A)
Be able to understand the basics of assembly language programs. (C)
Understand the correspondence between imperative code & data and assembly language. (A)
Be aware of the role of Compiler, Assembler, Library, Linker, Loader, Interpreter and Operating System, and of some of the interactions between these and the underlying computer hardware. (A)

Assessment of Learning outcomes

Learning outcomes (1), (2) and (6) are assessed by examination. Learning outcome (4) is assessed in the laboratory. Learning outcomes (3) and (5) are assessed by examination and in the laboratory.

Contribution to Programme Learning Outcomes

A3, C5, C6


Introduction: Processors, simple ARM programs, binary representations, fetch-execute cycle, registers [4]

ARM code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts [13]

System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters, JVM [5]

Reading List

There are no books that cover the syllabus exactly. However, here are two books that give information about the ARM processor, that you may want to refer to.

Title: ARM system-on-chip architecture (2nd edition)
Author: Furber, Steve
ISBN: 0201675196
Publisher: Addison Wesley
Edition: 2nd
Year: 2000
This book is a detailed look at the ARM and its variants with a lot of information on its use in embedded systems. A definitive guide written by the man responsible for much of the first design. The book covers the basic material and then examines the lat

Title: Principles of computer hardware (4th edition)
Author: Clements, Alan
ISBN: 9780199273133
Publisher: Oxford University Press
Edition: 4th
Year: 2006
This book covers several 1st year courses and is a good introduction to Computer Architecture and peripherals. Note that the 2nd edition is not suitable as it does not cover the ARM processor.