3.6 Fundamentals of computer systems

3.6.1 Hardware and software

3.6.1.1 Relationship between hardware and software

Content

Additional information

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

  • hardware
  • software.
 

3.6.1.2 Classification of software

Content

Additional information

Explain what is meant by:

  • system software
  • application software.
 

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

 

3.6.1.3 System software

Content

Additional information

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

  • operating systems (OSs)
  • utility programs
  • libraries
  • translators (compiler, assembler, interpreter).
 

3.6.1.4 Role of an operating system (OS)

Content

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.

 

3.6.2 Classification of programming languages

3.6.2.1 Classification of programming languages

Content

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.

 

3.6.3 Types of program translator

3.6.3.1 Types of program translator

Content

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 and object (executable) code.

 

3.6.4 Logic gates

3.6.4.1 Logic gates

Content

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.

 

3.6.5 Boolean algebra

3.6.5.1 Using Boolean algebra

Content

Additional information

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