# GCSE Computer Science

This is a book about GCSE Computer Science. The aim is it should be useful as a revision guide or to find alternative explanations to the ones in your textbook.
This book is not the work of a single author. We welcome both students and teachers to improve this book by adding and making changes. Explaining to someone else is one of the best ways to learn.
This book does not teach any specific programming language per se, but rather uses pseudocode and flowcharts to introduce programmng. There are plenty of other wikibooks available which deal adequately with each of the programming languages you might choose to use in studying GCSE Computer Science.

## Contents by topic
### Computer Data Representation

* Binary systems (AQA 3.3, CIE 1.1.1, Ed 3.1, OCR 2.6)
* Hexadecimal (AQA 3.3, CIE 1.1.2, Ed 3.1, OCR 2.6)
* Data storage (AQA 3.3, CIE 1.1.3, Ed 3.2-3, OCR 2.6)

### Computer Hardware

* Logic Gates (AQA 3.4.2, CIE 1.3.1)
* Computer Architecture (AQA 3.4.4, CIE 1.3.2, Ed 4.2.1/3, OCR 1.1)
* Computer Memory (AQA 3.4.4, CIE 1.3.5, Ed 4.2.2, OCR 1.2)
* Computer Storage (AQA 3.4.4, CIE 1.3.5, Ed 4.2.5-6, OCR 1.3)
* Computer Input devices and Sensors (CIE 1.3.3)
* Computer Output devices (CIE 1.3.4)

### Computer Software

* Computer Operating systems (AQA 3.4.3, CIE 1.3.6, Ed 4.4.1, OCR 1.7)
* Computer Languages and Their Translators (AQA 3.2.13, CIE 1.3.7, Ed 4.5.1-2, OCR 2.5)

### Algorithms

* Algorithms and Problem Solving (CIE 2.1.1)
   * abstraction and decomposition (AQA 3.1.1, Ed 1.2, OCR 2.1)
* Flowcharts (AQA 3.1.1, CIE 2.1.2,Ed 1.1.1, OCR 2.1)
   * The 3 Basic Constructs: sequence, selection and iteration (AQA 3.2.2, Ed 1.1.2, OCR 2.2)
* Search Algorithms
   * linear search, binary search(AQA 3.1.3, Ed 1.1.8, OCR 2.1)
* Sort Algorithms
   * bubble sort, merge sort (AQA 3.1.4, Ed 1.1.8, OCR 2.1)
   * insertion sort (OCR 2.1)
* Testing and Improving Algorithms (CIE 2.1.1, Ed 1.1.9, OCR 2.1)
   * trace tables (AQA 3.1.1, CIE 2.1.1, Ed 1.1.5)

### Programming

* Pseudocode (AQA 3.2, CIE 2.1.2, Ed 1.1.1-2, OCR 2.1)
* Constants, Variables and Data Types (AQA 3.2.1-2, CIE 2.2.1, Ed 2.3, OCR 2.2)
* Operators (AQA 3.2.3-5, Ed 2.5, OCR 2.2)
* String Handling (AQA 3.2.3-5, Ed 2.3.3, OCR 2.2)
* Random numbers (AQA 3.2.8)
* Input/output and file handling (AQA 3.2.7, Ed 2.4, OCR 2.2)
* Subprograms, Subroutines and Functions (AQA 3.2.10-11, CIE 2.2.1, Ed 2.6, OCR 2.2)
* Data Structures, Records and Databases (AQA 3.2.6, CIE 2.2.2 & 2.3, Ed 2.3.2, OCR 2.2)
* Robust Programs (AQA 3.2.12, CIE 2.2.1, Ed 2.4.2, OCR 2.3)
* GCSE Computer Science/Sequencing (AQA, CIE, Ed, OCR)

### Computer Communications

* Data transmission (CIE 1.2.3)
* Using the Internet and other Networks (CIE 1.2.3)
* Computer Networks (AQA 3.5, Ed 5,OCR 1.4-5)
* Computer Security (AQA 3.6, CIE 1.4, Ed 5.1/3, OCR 1.6)
   * Internet Security (CIE 1.2.2, Ed 5.2)
   * Encryption (Ed 3.4)
* Computer Ethics (AQA 3.7, CIE 1.5, Ed 6.1, OCR 1.8)

## Content by Current Courses

You may access the content above of a particular courses by selecting course below (if you are not sure which is your course ask your teacher). These apart from the course introduction below these do not introduce new content but rather connect to the relevant parts of the above content:
* AQA GCSE Computer Science 8520
   * OxfordAQA International GCSE Computer Science 9210 content larely the same as AQA GCSE Computer Science 8520 but assessment differs
* CIE IGCSE Computer Science 0478
   * CIE IGCSE(9-1) Computer Science 0984 content same as CIE IGCSE Computer Science 0478 but assessment differs
* Edexcel GCSE(9-1) Computer Science 1CP1
   * Pearson Edexcel International GCSE in Computer Science 4CP0 content same as 1CP1 but assessment differs
* OCR GCSE(9-1) Computer Science J276

## Legacy Courses

The courses below are not longer taught, but may be of interest some.
* AQA GCSE Computer Science 4512 last examination in 2017
* OCR GCSE Computing J275 introduced in 2010 and last examination in 2017

## How to read the book

You will meet several coloured boxes, here are their meanings:
* Specification link
* What the specification says you must learn for each chapter
* Examples
* Example questions and how to solve them
* Questions
* Questions to test yourself, click below
* Answer:
* to check if you were right
* Extension
* Topics that aren't examined but you might be interested in
There will be a lot of concepts that you need to be familiar with, definitions are highlighted like so: