IGCSE Computer Science

Class of 2021 (G10) Theory (Mon p.2):
T1 T2 T3 T4 T5 T6 T7 T8    Exams
Class of 2021 (G10) Practical (Fri p.1):
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10

Class of 2022 (G09) Theory (Wed p.3):
T1 T2 T3 T4 T5 T6 T7 T8    Exams
Class of 2022 (G09) Practical (Fri p.2):
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10


The binary and hexadecimal number systems, their uses and how to convert numbers between different base systems.

Serial and parallel transmission of data, error checking after transmission, web browsers and internet service providers, and HTTP and HTML.

Logic gates, truth tables, logic circuits, and the use of Boolean algebra.

Operating systems, interrupts and buffers, computer architecture and the von Neumann computer model, and the fetch-execute cycle.

The range of input and output devices, and their applications.
File formats e.g. MIDI, MP3 and JPEG, file compression techniques, primary, secondary and off-line storage, and magnetic, optical and solid-state media.
High-level and low-level programming languages, translators, compilers, interpreters and assemblers.
Keeping data safe from accidental or malicious damage and from unauthorised users, use of passwords, firewalls, proxy servers, SSL/TLS and encryption, risks posed by phishing and pharming, security safeguards when carrying out online transactions, and computer ethics.
Using a simple IDE to support your programming, using interactive mode and script mode in Python, and how to program and save a text-based application in script mode.
The difference between the programming concepts sequence, selection and iteration, the role of flowcharts and pseudocode when designing programs, the main symbols used in flowcharts, and the preferred format of pseudocode.
How to declare and use variables and constants, using the data types Integer, Real, Char, String and Boolean, the use of basic mathematical operators to process input values, and how to design and represent simple programs using flowcharts and pseudocode.
How selection is used to allow a program to follow different execution paths, how it is shown in flowcharts and pseudocode, comparing IF...THEN...ELSE...ENDIF statements, IF...THEN...ELSEIF...ELSE...ENDIF statements, nested IF statements, and CASE...OR...OTHERWISE...ENDCASE statements, how to use logical operators when programming selection.
The need for iteration, designing and representing iteration using flowcharts and pseudocode, writing code that repeats instructions a predetermined number of times or based on user input, using counters with repeated code, and the advantages and disadvantages of FOR, WHILE and REPEAT UNTIL loops.
Defining arrays using flowcharts and pseudocode, declaring and using arrays, reading from and writing values to arrays, using a number of arrays to organise data, using Python’s list data type as arrays when implementing algorithms.
How subroutines are used in programming, how values are passed to and received from subroutines, and how to design, program and use functions and procedures.

Systems are made of subsystems and these of further subsystems. Applying top-down design and structure diagrams to simplify complex systems, combining sequence, selection and iteration to design and produce effective and efficient solutions to complex tasks. The importance of defining a problem, showing what is going to be computed and how it is going to be computed, and the tools and techniques that are used to design a software solution to the problem. A review of the uses of and the conventions for pseudocode and flowcharts. The importance of testing systems, identifying logical, syntax and runtime errors, how to dry run algorithms using trace tables, identifying appropriate valid, invalid and boundary data when testing systems.

Working through the pre-release tasks for Paper 2, combining top-down design and standard methods of solution to produce efficient algorithms, combining testing and validation to produce effective algorithms, producing efficient and effective flowcharts, pseudocode and Python scripts.
What databases are used for, database structure and practical uses.