Module Information

Module Identifier
Module Title
Academic Year
Available all semesters
Available only to students taking the Diploma/MSc in Computer Science scheme in Singapore.

Course Delivery

Delivery Type Delivery length / details
Other Contact Hours. 34 hours of contact time plus about 65 hours of self study, practicals and assessment.


Assessment Type Assessment length / details Proportion
Semester Assessment (A2)  Course Work:  20%
Semester Exam 2 Hours   (A1)  80%
Supplementary Exam Supplementary examination will take the same form, under the terms of the Department's policy 

Learning Outcomes

On successful completion of this module, a student should be able to:

  • analyse a block diagram of a computer and explain how it works at the level of logic gates (A1);
  • analyse and develop low level programs and describe how they are executed by a CPU (A1, A2);
  • describe how a computer performs input and output operations (A1);
  • explain how abstract concepts in high-level languages, such as `function call' or `local variable', are implemented in machine code (A1);
  • judge the applicability of high and low level language programming (A1).

Brief description

There is a relationship between software design, hardware design and the performance of a system as a whole. Those who build software systems need some understanding of this relationship, at the level of principles rather than fine detail. No prior knowledge of the subject area is required; the course begins with the basic ideas of number systems, simple electrical laws, logic functions and their electrical equivalents. The course then looks at how more complex devices can be created from these primitive building blocks. Having arrived at the principal components of a microprocessor based system, we look at the way these components interact and their roles in the execution of simple programs. The laboratory work associated with the course is designed to consolidate the lecture material using PC-based training tools.


Students successfully completing this module will have a broad functional understanding of computer architecture, an awareness of the hardware software interface, an understanding of the trade-offs between hardware and software, and an understanding of the factors that affect system performance.


1. What is a computer? - 4 Lectures
Block diagram overview; CPU, memory, I/O, Bus. Memory, Digital Logic; pigeon-hole model, address and contents, bits bytes and words.

2. Buses - 2 Lectures
Address, data and control buses. Basic data transfer.

3. Inside the CPU - 3 Lectures
Simple examples of instructions. The fetch-execute cycle and the program counter. Registers. ALU. Control unit. Implementing a machine code in hardware. Digital logic.

4. A real CPU example: Motorola 68000 and 68HC11 - 4 Lectures
Some machine codes and mnemonics. Addressing modes. Assembly code.

5. Executing high-level software - 4 Lectures
Machine-code equivalents of high-level constructs. Function calls. Stack frames and local variables.

6. I/O - 5 Lectures
Reading and writing data. Interrupts. Transfering large amounts of data; DMA, block I/O.

7. Exercises - 4 Practicals
Use a CPU simulator to watch instruction execution. Assembly language comprehension (probably, but not necessarily, by writing a program).

Reading List

Recommended Text
Ronald J. Tocci and Frank J. Ambrosio (2000) Microprocessors and Microcomputers: Hardware and software. 5th Prentice Hall Primo search


This module is at CQFW Level 5