4.6 Fundamentals of computer systems

4.6.1 Hardware and software Relationship between hardware and software


Additional information

Understand the relationship between hardware and software and be able to define the terms:

  • hardware
  • software. Classification of software


Additional information

Explain what is meant by:

  • system software
  • application software.

Understand the need for, and attributes of, different types of software. System software


Additional information

Understand the need for, and functions of the following system software:

  • operating systems (OSs)
  • utility programs
  • libraries
  • translators (compiler, assembler, interpreter). Role of an operating system (OS)


Additional information

Understand that a role of the operating system is to hide the complexities of the hardware.


Know that the OS handles resource management, managing hardware to allocate processors, memories and I/O devices among competing processes.


4.6.2 Classification of programming languages Classification of programming languages


Additional information

Show awareness of the development of types of programming languages and their classification into low-and high-level languages.


Know that low-level languages are considered to be:

  • machine-code
  • assembly language.

Know that high-level languages include imperative high-level language.


Describe machine-code language and assembly language.


Understand the advantages and disadvantages of machine-code and assembly language programming compared with high-level language programming.


Explain the term ‘imperative high-level language’ and its relationship to low-level languages.


4.6.3 Types of program translator Types of program translator


Additional information

Understand the role of each of the following:

  • assembler
  • compiler
  • interpreter.

Explain the differences between compilation and interpretation. Describe situations in which each would be appropriate.


Explain why an intermediate language such as bytecode is produced as the final output by some compilers and how it is subsequently used.


Understand the difference between source code and object (executable) code.


4.6.4 Logic gates Logic gates


Additional information

Construct truth tables for the following logic gates:

  • NOT
  • AND
  • OR
  • XOR
  • NAND
  • NOR.

Students should know and be able to use ANSI/IEEE standard 91-1984 Distinctive shape logic gate symbols for these logic gates.

Be familiar with drawing and interpreting logic gate circuit diagrams involving one or more of the above gates.


Complete a truth table for a given logic gate circuit.


Write a Boolean expression for a given logic gate circuit.


Draw an equivalent logic gate circuit for a given Boolean expression.


Recognise and trace the logic of the circuits of a half-adder and a full-adder.


Construct the circuit for a half-adder.


Be familiar with the use of the edge-triggered D-type flip-flop as a memory unit.

Knowledge of internal operation of this flip-flop is not required.

4.6.5 Boolean algebra Using Boolean algebra


Additional information

Be familiar with the use of Boolean identities and De Morgan’s laws to manipulate and simplify Boolean expressions.