COMPGC03 - Architecture and Hardware

This database contains the 2017-18 versions of syllabuses. Syllabuses from the 2016-17 session are available here.

Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).

Taught ByKevin Bryson (100%)
  • To 'demystify' computers.
  • To show how the basic components of the computer can be built from simple electronic components such as transistors and logic gates.
  • To understand how these basic components operate together to carry out sequences of instructions using a real processor architecture (MIPS32) as an example.
  • To understand performance measures and some of the key design approaches that make modern computers so efficient.
Learning Outcomes

To be able to:

  • Work effectively with different computer data representations (binary, hex, floating point, machine instructions, etc.).
  • Describe how basic logical and arithmetic operations are implemented and performed using simple electronic components.
  • Understand how a computer is constructed from these basic electronic components and how these operate together to execute machine code programs.
  • Write simple MIPS assembly language programs.
  • Understand how high-level languages are translated to assembly and then machine code instructions executed by the CPU using a real MIPS32 processor as a case study.
  • Develop an appreciation for how memory and I/O is handled and managed by the computer.


Top-down high level overview of a computer: the main components of microcontrollers, embedded computers, portable PCs and desktops.

Fundamentals of hardware: basic overview of the physics of electric circuits and semiconductors. Transistors and logic gates./p>

Data representation: binary, octal, hexadecimal, fixed-size arithmetic, 2s-complement, big-endian, little-endian, fixed point, floating point, character strings.

Boolean algebra: the abstract language that allows us to represent and construct more complex electronic components from simple logic gates.

Constructing larger electronic components from logic gates: adders, subtractors, logic units, ALUs, registers, CPU data pipelines, memory, Input/Output interfaces.

Processor: how the CPU executes machine code instructions of a program. (Going from high-level constructs, to assembly language, to machine code that gets executed.)

MIPS: we investigate a real architecture, the structure of its instructions, and how to program at machine level.

I/O: various methods through which CPU communicates with the external world.

Memory and Disk: understanding basic concepts about primary and secondary storage, and learning their performance measures.

Memory Management: how CPU actually uses memory during computer operation.

Method of Instruction

Lectures and web-based exercises.


The course has the following assessment components:

  • Coursework Section using an electronic system with immediate feedback (1 piece, 10%)
  • Written Examination (2.5 hours, 90%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined.


Reading list available via the UCL Library catalogue.