GCSE Computer Science/AQA GCSE Computer Science 8520

This section aims to fit in with the AQA GCSE Computer Science 8520 syllabus but is not endorsed by AQA. It should be useful as a revision guide or to find alternative explanations to the ones in your textbook.

If any part of this book is unclear or even wrong then please post a comment on the discussion page or simply fix it yourself! In particular, please say if the book assumes any knowledge or skills which not all GCSE Computer Science students have.

Syllabus Content
3.1 Fundamentals of algorithms
 * 3.1.1 Representing algorithms
 * 3.1.2 Efficiency of algorithms
 * 3.1.3 Searching algorithms
 * 3.1.4 Sorting algorithms

3.2 Programming
 * 3.2.1 Data types
 * 3.2.2 Programming concepts
 * 3.2.3 Arithmetic operations in a programming language
 * 3.2.4 Relational operations in a programming language
 * 3.2.5 Boolean operations in a programming language
 * 3.2.6 Data structures
 * 3.2.7 Input/output and file handling
 * 3.2.8 String handling operations in a programming language
 * 3.2.9 Random number generation in a programming language
 * 3.2.10 Subroutines (procedures and functions)
 * 3.2.11 Structured programming
 * 3.2.12 Robust and secure programming
 * 3.2.13 Classification of programming languages

3.3 Fundamentals of data representation
 * 3.3.1 Number bases
 * 3.3.2 Converting between number bases
 * 3.3.3 Units of information
 * 3.3.4 Binary arithmetic
 * 3.3.5 Character encoding
 * 3.3.6 Representing images
 * 3.3.7 Representing sound
 * 3.3.8 Data compression

3.4 Computer systems
 * 3.4.1 Hardware and software
 * 3.4.2 Boolean logic
 * 3.4.3 Software classification
 * 3.4.4 Systems architecture

3.5 Fundamentals of computer networks

3.6 Fundamentals of cyber security
 * 3.6.1 Cyber security threats
 * 3.6.1.1 Social engineering
 * 3.6.1.2 Malicious code
 * 3.6.2 Methods to detect and prevent cyber security threats

3.7 Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy

3.8 Aspects of software development