# Syllabus alignment

## Unit 1 - Programming

2.2.1

• declare and use variables and constants
• understand and use basic data types: Integer, Real, Char, String and Boolean
• understand and use the concepts of sequence, selection, repetition, totalling and counting
• use predefined procedures/functions

2.2.2

• declare and use one-dimensional arrays, for example: A[1:n]
• show understanding of the use of one-dimensional arrays, including the use of a variable as an index in an array
• read or write values in an array using a FOR … TO … NEXT loop

## Unit 2 - Algorithms

2.1.1 Problem solving & design

• show understanding that every computer system is made up of sub-systems, which in turn are made up of further sub-systems
• use top-down design, structure diagrams, flowcharts, pseudocode, library routines and sub-routines
• work out the purpose of a given algorithm
• explain standard methods of solution
• suggest and apply suitable test data
• understand the need for validation and verification checks to be made on input data (validation could include range checks, length checks, type checks and check digits)
• use trace tables to find the value of variables at each step in an algorithm
• identify errors in given algorithms and suggest ways of removing these errors
• produce an algorithm for a given problem (either in the form of pseudocode or flowchart)
• comment on the effectiveness of a given solution

2.1.2 Pseudocode & flowcharts

• understand and use pseudocode for assignment, using ←
• understand and use pseudocode, using the following conditional statements:
• IF … THEN … ELSE … ENDIF
• CASE … OF … OTHERWISE … ENDCASE
• understand and use pseudocode, using the following loop structures:
• FOR … TO … NEXT
• REPEAT … UNTIL
• WHILE … DO … ENDWHILE
• understand and use pseudocode, using the following commands and statements: INPUT and OUTPUT (e.g. READ and PRINT)
• totalling (e.g. Sum ← Sum + Number)
• counting (e.g. Count ← Count + 1)
• understand and use standard flowchart symbols to represent the above statements, commands and structures

(Candidates are advised to try out solutions to a variety of different problems on a computer using a language of their choice; no particular programming language will be assumed in this syllabus.)

1.5 Ethics

• show understanding of computer ethics, including copyright issues and plagiarism
• distinguish between free software, freeware and shareware
• show understanding of the ethical issues raised by the spread of electronic communication and computer systems, including hacking, cracking and production of malware

## Unit 3 - Data and logic

1.1.1 Binary systems

• recognise the use of binary numbers in computer systems
• convert positive denary integers into binary and positive binary integers into denary (a maximum of 16 bits will be used)
• show understanding of the concept of a byte and how the byte is used to measure memory size
• use binary in computer registers for a given application (such as in robotics, digital instruments and counting systems)

• represent positive numbers in hexadecimal notation
• show understanding of the reasons for choosing hexadecimal notation to represent numbers
• convert positive hexadecimal integers to and from denary (a maximum of four hexadecimal digits will be required)
• convert positive hexadecimal integers to and from binary (a maximum of 16 bit binary numbers will be required)
• represent numbers stored in registers and main memory as hexadecimal
• identify current uses of hexadecimal numbers in computing, such as defining colours in Hypertext Markup Language (HTML), Media Access Control (MAC) addresses, assembly languages and machine code, debugging

1.3.1 Logic gates

• use logic gates to create electronic circuits
• 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 2 inputs only)
• draw truth tables and recognise a logic gate from its truth table
• recognise and use the standard symbols used to represent logic gates: NOT AND OR NAND
• produce truth tables for given logic circuits:
• produce a logic circuit to solve a given problem or to implement a given written logic statement

## Unit 4 - Hardware and software

1.1.3 Candidates should be able to:

• show understanding that sound (music), pictures, video, text and numbers are stored in different formats
• identify and describe methods of error detection and correction, such as parity checks, check digits, checksums and Automatic Repeat reQuests (ARQ)
• show understanding of the concept of Musical Instrument Digital Interface (MIDI) files, JPEG files, MP3 and MP4 files
• show understanding of the principles of data compression (lossless and lossy) applied to music/video, photos and text files

1.3.2 Candidates should be able to:

• show understanding of the basic Von Neumann model for a computer system and the stored program concept (program instructions and data are stored in main memory and instructions are fetched and executed one after another)
• describe the stages of the fetch-execute cycle, including the use of registers and buses

1.3.3 Candidates should be able to:

• describe the principles of operation (how each device works) of these input devices: 2D and 3D scanners, barcode readers, Quick Response (QR) code readers, digital cameras, keyboards, mice, touch screens, interactive whiteboards, microphones
• describe how these principles are applied to real-life scenarios, for example: scanning of passports at airports, barcode readers at supermarket checkouts, and touch screens on mobile devices
• describe how a range of sensors can be used to input data into a computer system, including light, temperature, magnetic field, gas, pressure, moisture, humidity, pH and motion
• describe how these sensors are used in real-life scenarios, for example: street lights, security devices, pollution control, games, and household and industrial applications

1.3.4 Candidates should be able to:

• describe the principles of operation of the following output devices: inkjet, laser and 3D printers; 2D and 3D cutters; speakers and headphones; actuators; flat-panel display screens, such as Liquid Crystal Display (LCD) and Light-Emitting Diodes (LED) display; LCD projectors and Digital Light Projectors (DLP)
• describe how these principles are applied to real-life scenarios, for example: printing single items on demand or in large volumes; use of small screens on mobile devices

1.3.5 Candidates should be able to:

• show understanding of the difference between: primary, secondary and off-line storage and provide examples of each, such as: primary: Read Only Memory (ROM) and Random Access Memory (RAM) secondary: hard disk drive (HDD) and Solid State Drive (SSD); off-line: Digital Versatile Disc (DVD), Compact Disc (CD), Blu-ray disc, USB flash memory and removable HDD
• describe the principles of operation of a range of types of storage device and media including magnetic, optical and solid state
• describe how these principles are applied to currently available storage solutions, such as SSDs, HDDs, USB flash memory, DVDs, CDs and Blu-ray discs
• calculate the storage requirement of a file

1.3.6 Candidates should be able to:

• describe the purpose of an operating system (Candidates will be required to understand the purpose and function of an operating system and why it is needed. They will not be required to understand how operating systems work.)
• show understanding of the need for interrupts

1.3.7 Candidates should be able to:

• show understanding of the need for both high-level and low-level languages
• show understanding of the need for compilers when translating programs written in a high-level language
• show understanding of the use of interpreters with high-level language programs
• show understanding of the need for assemblers when translating programs written in assembly language

## Unit 5 - Databases

Candidates should be able to:

• define a single-table database from given data storage requirements
• choose and specify suitable data types
• choose a suitable primary key for a database table
• perform a query-by-example from given search criteria

## Unit 6 - Networks

1.2.1 Candidates should be able to:

• show understanding of what is meant by transmission of data
• distinguish between serial and parallel data transmission
• distinguish between simplex, duplex and half-duplex data transmission
• show understanding of the reasons for choosing serial or parallel data transmission
• show understanding of the need to check for errors
• explain how parity bits are used for error detection
• show understanding of the use of serial and parallel data transmission, in Universal Serial Bus (USB) and Integrated Circuit (IC)

1.2.2 Candidates should be able to (links to 1.4):

• show understanding of the security aspects of using the Internet and understand what methods are available to help minimise the risks
• show understanding of the Internet risks associated with malware, including viruses, spyware and hacking
• explain how anti-virus and other protection software helps to protect the user from security risks

1.2.3 Candidates should be able to:

• show understanding of the role of the browser
• show understanding of the role of an Internet Service Provider (ISP)
• show understanding of what is meant by hypertext transfer protocol (http and https) and HTML
• distinguish between HTML structure and presentation
• show understanding of the concepts of MAC address, Internet Protocol (IP) address, Uniform Resource Locator (URL) and cookies

1.4 Candidates should be able to:

• 1.4.1a show understanding of the need to keep data safe from accidental damage, including corruption and human errors
• 1.4.1b show understanding of the need to keep data safe from malicious actions, including unauthorised viewing, deleting, copying and corruption
• 1.4.2 show understanding of how data are kept safe when stored and transmitted, including:
• use of passwords, both entered at a keyboard and biometric
• use of firewalls, both software and hardware, including proxy servers
• use of security protocols such as Secure Socket Layer (SSL) and Transport Layer Security (TLS)
• use of symmetric encryption (plain text, cypher text and use of a key) showing understanding that increasing the length of a key increases the strength of the encryption
• 1.4.3 show understanding of the need to keep online systems safe from attacks including denial of service attacks, phishing, pharming
• 1.4.4 describe how the knowledge from 1.4.1, 1.4.2 and 1.4.3 can be applied to real-life scenarios including, for example, online banking, shopping

1.5 Candidates should be able to:

• show understanding of computer ethics, including copyright issues and plagiarism
• distinguish between free software, freeware and shareware
• show understanding of the ethical issues raised by the spread of electronic communication and computer systems, including hacking, cracking and production of malware

## Unit 7 - Pre-release material

Practical review with an emphasis on programming and algorithm design