CO1016 Computer Systems

CO1016 Computer Systems

Credits: 20 Convenor: Dr. R. Crole Semester: 1

Assessment: Coursework: 30% Three hour exam in January: 70%
Lectures: 36 Problem Classes: 12
Tutorials: none Private Study: 90
Labs: none Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Subject Knowledge


This module teaches the basic principles and technical details of the structure and operation of a modern computer.

Learning Outcomes

Students should be able to: describe the memory-I/O model and top-level hardware; solve problems in computer arithmetic; give an account of, and solve problems, in propositional logic and digital circuit theory and practise; give a summary of, and solve simple problems, in the MIPS assembly and machine language, including addressing methods; summarise the technical details of an elementary processor.


Class sessions together with course notes, recommended textbook, worksheets, printed solutions, and some additional hand-outs and web support.


Marked coursework, one class test, traditional written examination.

Subject Skills


To teach students scientific writing and problem solving skills.

Learning Outcomes

Students will be able to: write short, clear, note based, summaries of technical knowledge; solve abstract and concrete problems (both routine seen, and simple unseen), including numerical data.


Class sessions together with worksheets.


Marked coursework, one class test, traditional written examination.

Explanation of Pre-requisites

No specific knowledge is required, but a very rudimentary understanding of logic and discrete mathematics will be helpful.

Course Description

While modern computers are complex devices, there are a small number of key components from which the majority of computers are composed. This module will provide a broad picture of a modern computer, covering key hardware and software components. The course will teach details of computer arithmetic, processors and memory. The design of simple circuits is explained, together with the details of many of the basic hardware circuits found in a modern computer. The course also explains how computers perform simple arithmetic, covering the theory and also the actual circuits. The circuit details of a very small processor are explained, based upon all of the previous material, and the programming language that the processor executes is covered in some detail.


Examples throughout the course will be based on the MIPS Instruction Set Architecture.

The top level view of a modern computer: memory, processors, I/O, the fetch, decode, execute cycle. Memory layouts and the Endian systems. The memory hierachy and simple details of cache memory.

The binary number system, elementary logic, and truthtables. Binary arithmetic: basic definitions, algorithms for computing arithmetic operations. 2s-complement integers. Overflow and correctness conditions.

Basic digital electronics: gates for implementing (Boolean models of) simple logical propositions, and the composition of gates to make more complex circuits. Multiplexors, decoders, and related circuits. Clocks. Implementation of atomic Arithmetic Logic Units (ALUs) via digital circuits. Construction of a 32-bit ALU. Simple memory circuits, including caches. Register files.

The MIPS instruction set and simple MIPS programs. A subset of the MIPS language treated in detail at the assembly and machine levels. Semantics, machine fields, branch calculations, and assembly/machine translations.

Construction of a simple datapath via composition of atomic ALUs. Description of MIPS control program. The interaction of the datapath and control to make a processor. Computing performance: the performance equation and Amdahl's law.

Reading list


Hennessy and Patterson, Computer Organization and Design, Morgan Kaufmann, 1998.

Tanenbaum, Structured Computer Organization, Prentice Hall, 1998 (fourth edition).

Stallings, Computer Organization and Architecture, Prentice Hall, 2000 (fifth edition).


Carpinelli, Computer Systems: Organization and Architecture, Pearson (Addison Wesley),2001.

Clements, The Principles of Computer Hardware, Oxford University Press, 2000 (third edition).

Englander, The Architecture of Computer Hardware and Systems Software, Wiley, 2000.

Hayes, Computer Architecture and Organization, 3rd edition, McGraw Hill, 2000.

Hamacher, Vranesic and Zaky, Computer Organization, 4th edition, McGraw Hill, 1996.

MacCabe, Computer Systems, Irwin, 1993.

Mano, Computer System Architecture, 3rd edition, Prentice Hall, 1993.

Williams, Computer Systems Architecture, Pearson (Addison Wesley), 2001.

Willis, Computer Architecture and Communications, 2nd edition, McGraw Hill, 1994.


Course notes, web page, study guide, worksheets, handouts, lecture rooms with two OHPs, past examination papers.

Module Evaluation

Course questionnaires, course review.

[University Home] [Faculty of Science] [MCS Home] [CS Home] CS Home Page [University Index A-Z] [University Search] [University Help]

Author: N. Rahman, tel: +44 (0)116 252 2593
Last updated: 2004-01-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.