Candidates should be able to:

1.1.1 Number representation

  • show understanding of the basis of different number systems and use the binary, denary and hexadecimal number system 
  • convert a number from one number system to another 
  • express a positive or negative integer in two’s complement form 
  • show understanding of, and be able to represent, character data in its internal binary form depending on the character set used (Candidates will not be expected to memorise any particular character codes but must be familiar with ASCII and Unicode.) 
  • express a denary number in Binary Coded Decimal (BCD) and vice versa 
  • describe practical applications where BCD is used

1.1.2 Images 

  • show understanding of how data for a bitmapped image is encoded 
  • use the terminology associated with bitmaps: pixel, file header, image resolution, screen resolution 
  • perform calculations estimating the file size for bitmapped images of different resolutions 
  • show understanding of how data for a vector graphic is represented and encoded 
  • use the terminology associated with vector graphics: drawing object, property and drawing list 
  • show understanding of how typical features found in bitmapped and vector graphics software are used in practice 
  • justify where bitmapped graphics and/or vector graphics are appropriate for a given task

1.1.3 Sound 

  • show understanding of how sound is represented and encoded 
  • use the associated terminology: sampling, sampling rate, sampling resolution 
  • show understanding of how file sizes depend on sampling rate and sampling resolution 
  • show understanding of how typical features found in sound editing software are used in practice

1.1.4 Video 

  • Show understanding of the characteristics of video streams:

 – the frame rate (frames/second)

 – interlaced and progressive encoding

 – video interframe compression algorithms and spatial and temporal redundancy

 – multimedia container formats 

1.1.5 Compression techniques 

  • show understanding of how digital data can be compressed, using either ‘lossless’ (including runlength encoding – RLE) or ‘lossy’ techniques

1.2.1 Networks 

  • explain the client-server model of networked computers 
  • give examples of applications which use the client-server model 
  • describe what is meant by the World Wide Web (WWW) and the Internet 
  • explain how hardware is used to support the Internet: networks, routers, gateways, servers 
  • explain how communication systems are used to support the Internet: The Public Switched Telephone Network (PSTN), dedicated lines, cell phone network 
  • explain the benefits and drawbacks of using copper cable, fibre-optic cabling, radio waves, microwaves, satellites 
  • show understanding of bit streaming (both real-time and on-demand) 
  • show understanding of the importance of bit rates/broadband speed on bit streaming

1.2.2 IP addressing 

  • explain the format of an IP address and how an IP address is associated with a device on a network 
  • explain the difference between a public IP address and a private IP address and the implication for security 
  • explain how a Uniform Resource Locator (URL) is used to locate a resource on the World Wide Web (WWW) and the role of the Domain Name Service

1.2.3 Client- and server-side scripting 

  • describe the sequence of events executed by the client computer and web server when a web page consisting only of HTML tags is requested and displayed by a browser 

 – Client-side 

       ○ recognise and identify the purpose of some simple JavaScript code ○ describe the sequence of events executed by the client computer and web server when a web page with embedded client-side code is requested and displayed by a browser  ○ show understanding of the typical use of client-side code in the design of an application

 – Server-side 

       ○ recognise and identify the purpose of some simple PHP code 

       ○ describe the sequence of events executed by the client computer and web server when a web page with embedded server-side code is requested and displayed by a browser 

        ○ show understanding that an appropriately designed web application for accessing database data makes use of server-side scripting 

Candidates should be able to:

1.3.1 Input, output and storage devices 

  • identify hardware devices used for input, output, secondary storage 
  • show understanding of the basic internal operation of the following specific types of device:

 – keyboard – speakers

 – trackerball mouse – hard disk

 – optical mouse – solid state (fl ash) memory

 – scanner – optical discs

 – inkjet printer – microphone

 – laser printer – touchscreen

 – 3D printer 

  • show understanding of the need for secondary (including removable) storage

1.3.2 Main memory 

  • show understanding of the need for primary storage

 – explain the differences between RAM and ROM memory

 – explain the differences between Static RAM (SRAM) and Dynamic RAM (DRAM)

1.3.3 Logic gates and logic circuits 

  • use the following logic gate symbols:

                 NOT               AND               OR               NAND               NOR                XOR 

  • understand and define the functions of NOT, AND, OR, NAND, NOR and XOR (EOR) gates including the binary output produced from all the possible binary inputs (all gates, except the NOT gate, will have two inputs only) 
  • construct the truth table for each of the logic gates above 
  • construct a logic circuit from either:

 – a problem statement

 – a logic expression 

  • construct a truth table from either:

 – a logic circuit

 – a logic expression 

  • show understanding that some circuits can be constructed with fewer gates to produce the same outputs 

Candidates should be able to:

1.4.1 CPU architecture 

  • show understanding of the basic Von Neumann model for a computer system and the stored program concept 
  • show understanding of the roles carried out by registers, including the difference between general purpose and special purpose registers: Program Counter, Memory Data Register, Memory Address Register, Index Register, Current Instruction Register and Status Register 
  • show understanding of the roles carried out by the Arithmetic and Logic Unit (ALU), Control Unit and system clock 
  • show understanding of how data are transferred between various components of the computer system using the address bus, data bus and control bus 
  • show understanding of how the bus width and clock speed are factors that contribute to the performance of the computer system 
  • show understanding of the need for ports, for example Universal Serial Bus (USB), to provide the connection to peripheral devices

1.4.2 The fetch-execute cycle 

  • describe the stages of the fetch-execute cycle 
  • show understanding of ‘register transfer’ notation 
  • describe how interrupts are handled

1.4.3 The processor’s instruction set 

  • show understanding that the set of instructions are grouped into instructions for:

 – data movement (register to main memory and vice versa)

 – input and output of data

 – arithmetic operations

 – unconditional and conditional jump instructions

 – compare instructions 

 – modes of addressing: immediate, direct, indirect, indexed, relative (No particular instruction set will be expected but candidates should be familiar with the type of instructions given in the table on page 20.)

1.4.4 Assembly language 

  • show understanding of the relationship between assembly language and machine code, including symbolic and absolute addressing, directives and macros 
  • describe the different stages of the assembly process for a ‘two-pass’ assembler for a given simple assembly language program 
  • trace a given simple assembly language program

Candidates should be able to:

1.5.1 Operating system 

  • describe why a computer system requires an operating system 
  • explain the key management tasks carried out by the operating system

1.5.2 Utility programs 

  • show an understanding of the need for typical utility software used by a PC computer system:

 – disk formatter

 – virus checker

 – defragmenter software

 – disk contents analysis/disk repair software

 –file compression

 – backup software

1.5.3 Library programs 

  • show an understanding that software under development is often constructed using existing code from program libraries 
  • describe the benefits to the developer of software constructed using library files, including Dynamic Link Library (DLL) files 
  • draw on experience of the writing of programs which include library routines

1.5.4 Language translators 

  • show an understanding of the need for:

 – assembler software for the translation of an assembly language program

 – a compiler for the translation of a high-level language program

 – an interpreter for execution of a high-level language program 

  • explain the benefits and drawbacks of using either a compiler or interpreter 
  • show awareness that high-level language programs may be partially compiled and partially interpreted, such as Java

Candidates should be able to:

1.6.1 Data security 

explain the difference between the terms security, privacy and integrity of data 

show appreciation of the need for both the security of data and the security of the computer system 

describe security measures designed to protect computer systems, ranging from the stand-alone PC to a network of computers, including:

 – user accounts 

 –firewalls

 – general authentication techniques, including the use of passwords and digital signatures 

describe security measures designed to protect the security of data, including:

 – data backup

 – a disk-mirroring strategy

 – encryption

 – access rights to data (authorisation) 

show awareness of what kind of errors can occur and what can be done about them

1.6.2 Data integrity 

describe error detection and correction measures designed to protect the integrity of data, including:

 – data validation

 – data verification for data entry 

 – data verification during data transfer, including  

       ○ parity check 

       ○ checksum check

Candidates should be able to:

1.7.1 Ethics and the computing professional 

  • show a basic understanding of ethics 
  • explain how ethics may impact on the job role of the computing professional 
  • show understanding of the eight principles listed in the ACM/IEEE Software Engineering Code of Ethics 
  • demonstrate the relevance of these principles to some typical software developer workplace scenarios 
  • show understanding of the need for a professional code of conduct for a computer system developer

1.7.2 Ownership of software and data 

  • show understanding of the concept of ownership and copyright 
  • describe the need for legislation to protect ownership, usage and copyright 
  • discuss measures to restrict access to data made available through the Internet and World Wide Web 
  • show understanding of the implications of different types of software licensing: Free Software Foundation, the Open Source Initiative, shareware and commercial software

Candidates should be able to:

1.8.1 Database Management Systems (DBMS) 

  • show understanding of the limitations of using a file-based approach for the storage and retrieval of data 
  • describe the features of a relational database which address the limitations of a file-based approach 
  • show understanding of the features provided by a DBMS to address the issues of:

 – data management, including maintaining a data dictionary

 – data modelling

 – logical schema

 – data integrity

 – data security, including backup procedures and the use of access rights to individuals/groups of users 

  • show understanding of how software tools found within a DBMS are used in practice:

 – developer interface

 – query processor 

  • show awareness that high-level languages provide accessing facilities for data stored in a database