Source: https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-13-bubble-sort

[Revision notes](https://senecalearning.com/en-gb/revision-notes.md) › [GCSE](https://senecalearning.com/en-gb/revision-notes/gcse.md) › [Computer Science](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science.md) › [OCR](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr.md) › Bubble Sort

# Bubble Sort

Computer Science: OCR GCSE, topic 2.1.13

## Bubble Sort

Bubble sort is a naive sorting algorithm.

### The concept

![The concept](https://image-v2.cdn.app.senecalearning.com/2018-08/cc26cbec-d53a-4455-a2de-8d66a7768d69/playing-cards-2886284_1280.png)

- Imagine that you have a set of cards face up on the desk.
- If the first two cards are in the wrong order, you swap them.
- Then do the same for the second and third cards, and continue in this pattern until the end of the pack. This is known as a pass.
- The highest value will 'bubble' up to the top of the pack each pass.
- By repeating this enough times, the pack will get sorted.

### In English

![In English](https://image-v2.cdn.app.senecalearning.com/2018-08/86328769-ce4e-4cc7-8977-cb02a232c7fe/playing-cards-deck-.png)

- Compare the first two items of the dataset:
 - Swap these items if they aren't in the right order.
- Continue for the rest of the cards in the deck.
- Repeat the whole process, until a pass with no swaps happens.

### In pseudocode

![In pseudocode](https://image-v2.cdn.app.senecalearning.com/2018-07/27014a9a-7c20-4466-b74b-e7b9fa2acd44/2.1.5%20Bubble%20Sort%20Pseudocode.png)

### Example

![Example](https://image-v2.cdn.app.senecalearning.com/2018-08/92a755f2-ccb4-41e2-b054-b05fc5e244a8/soap-bubbles-3517247_1920.jpg)

- We will sort this list in ascending order:
 - [7, 3, 9, 2, 5]
 - A bubble sort pass compares each pair of adjacent items and swaps them if they are in the wrong order.
- Step 1
 - Compare 7 and 3
 - 7 > 3 &rightarrow; swap
 - [3, 7, 9, 2, 5]
- Step 2
 - Compare 7 and 9
 - 7 < 9 &rightarrow; no swap
 - [3, 7, 9, 2, 5]
- Step 3
 - Compare 9 and 2
 - 9 > 2 &rightarrow; swap
 - [3, 7, 2, 9, 5]
- Step 4
 - Compare 9 and 5
 - 9 > 5 &rightarrow; swap
 - [3, 7, 2, 5, 9]
- At the end of the first pass, the largest value (9) has “bubbled up” to the final position. Bubble sort always places the highest unsorted value at the end after each pass.

### Pros and cons of bubble sort

![Pros and cons of bubble sort](https://image-v2.cdn.app.senecalearning.com/2019-05/18db7257-a020-4f61-81ab-037f894914a3/opposite-thumb-.jpg)

- Pros:
 - More memory efficient than the merge sort, as it does not need to use an extra space during the algorithm. All swaps happen 'in place'.
 - The algorithm is easy to implement
- Cons:
 - Often slower than the insertion sort on a dataset of the same size. On average, more comparisons are required.

## Test yourself on Bubble Sort

- What is the main disadvantage of bubble sort?
- Bubble Sort in English

[Practise this topic for free](https://app.senecalearning.com/classroom/course/a1ce4570-6e27-11e8-af4b-35cf52f905c2/section/db8dd1e9-c749-417c-8c38-1910bc7a5977/session)

- Previous topic: [2.1.12 Overview of Sort Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-12-overview-of-sort-algorithms.md)
- Next topic: [2.1.14 Merge Sort](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-14-merge-sort.md)

## Computer Science: OCR GCSE contents

### 1 Computer Systems
- 1.1 Systems Architecture
  - [1.1.1 Fetch-Execute Cycle](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-1-fetch-execute-cycle.md)
  - [1.1.2 Common CPU Components & Their Function](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-2-common-cpu-components-and-their-function.md)
  - [1.1.3 Von Neumann Architecture](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-3-von-neumann-architecture.md)
  - [1.1.4 Factors Affecting CPU Performance](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-4-factors-affecting-cpu-performance.md)
  - [1.1.5 Embedded Systems](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-5-embedded-systems.md)
  - [1.1.6 Exam-Style Questions - Von Neumann Architecture](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-6-exam-style-questions-von-neumann-architecture.md)
  - [1.1.7 Diagnostic Misconceptions - Embedded vs General](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-1-7-diagnostic-misconceptions-embedded-vs-general.md)
- 1.2 Memory & Storage
  - [1.2.1 Types of Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-1-types-of-memory.md)
  - [1.2.2 Flash Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-2-flash-memory.md)
  - [1.2.3 Properties of Flash Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-3-properties-of-flash-memory.md)
  - [1.2.4 Running Out of Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-4-running-out-of-memory.md)
  - [1.2.5 Virtual Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-5-virtual-memory.md)
  - [1.2.6 Units of Capacity](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-6-units-of-capacity.md)
  - [1.2.7 Calculating Capacity Requirements](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-7-calculating-capacity-requirements.md)
  - [1.2.8 Solid State Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-8-solid-state-storage.md)
  - [1.2.9 Properties of Solid State Media](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-9-properties-of-solid-state-media.md)
  - [1.2.10 Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-10-magnetic-storage.md)
  - [1.2.11 Properties of Magnetic Media](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-11-properties-of-magnetic-media.md)
  - [1.2.12 Examples of Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-12-examples-of-magnetic-storage.md)
  - [1.2.13 Optical Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-13-optical-storage.md)
  - [1.2.14 Properties of Optical Media](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-14-properties-of-optical-media.md)
  - [1.2.15 Examples of Optical Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-15-examples-of-optical-storage.md)
  - [1.2.16 Types of Optical Disk](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-16-types-of-optical-disk.md)
  - [1.2.17 Number Bases](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-17-number-bases.md)
  - [1.2.18 Converting Number Bases](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-18-converting-number-bases.md)
  - [1.2.19 Hexadecimal](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-19-hexadecimal.md)
  - [1.2.20 Using Hexadecimal](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-20-using-hexadecimal.md)
  - [1.2.21 Converting Denary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-21-converting-denary-and-hexadecimal.md)
  - [1.2.22 Binary Addition](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-22-binary-addition.md)
  - [1.2.23 Binary Shifts](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-23-binary-shifts.md)
  - [1.2.24 Representing Text](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-24-representing-text.md)
  - [1.2.25 ASCII & Unicode](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-25-ascii-and-unicode.md)
  - [1.2.26 Representing Images](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-26-representing-images.md)
  - [1.2.27 Converting Binary & Images](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-27-converting-binary-and-images.md)
  - [1.2.28 Representing Sound](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-28-representing-sound.md)
  - [1.2.29 Data Compression](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-29-data-compression.md)
  - [1.2.30 Grade 9 - Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-30-grade-9-storage.md)
  - [1.2.31 Exam-Style Questions - Primary Memory](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-31-exam-style-questions-primary-memory.md)
  - [1.2.32 Exam-Style Questions - Storage](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-32-exam-style-questions-storage.md)
  - [1.2.33 Exam-Style Questions - Data Conversions](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-33-exam-style-questions-data-conversions.md)
  - [1.2.34 Diagnostic Misconceptions - RAM vs ROM](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-34-diagnostic-misconceptions-ram-vs-rom.md)
  - [1.2.35 Diagnostic Misconceptions - Bits, Nibbles & Bytes](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-35-diagnostic-misconceptions-bits-nibbles-and-bytes.md)
  - [1.2.36 Diagnostic Misconceptions - Bits Required to Store](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-36-diagnostic-misconceptions-bits-required-to-store.md)
  - [1.2.37 End of Topic Test - Computer Systems](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-37-end-of-topic-test-computer-systems.md)
  - [1.2.38 End of Topic Test - Representation](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-2-38-end-of-topic-test-representation.md)
- 1.3 Computer Networks, Connections & Protocols
  - [1.3.1 Benefit of Networks](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-1-benefit-of-networks.md)
  - [1.3.2 Types of Networks](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-2-types-of-networks.md)
  - [1.3.3 Network Performance](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-3-network-performance.md)
  - [1.3.4 Networks: How Do Packets Get Routed?](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-4-networks-how-do-packets-get-routed.md)
  - [1.3.5 Client-Server Model](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-5-client-server-model.md)
  - [1.3.6 Pros & Cons of Client-Server Model](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-6-pros-and-cons-of-client-server-model.md)
  - [1.3.7 Peer-to-Peer Model](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-7-peer-to-peer-model.md)
  - [1.3.8 Pros & Cons of Peer-to-Peer Model](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-8-pros-and-cons-of-peer-to-peer-model.md)
  - [1.3.9 Network Hardware](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-9-network-hardware.md)
  - [1.3.10 Transmission Media](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-10-transmission-media.md)
  - [1.3.11 What is the Internet?](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-11-what-is-the-internet.md)
  - [1.3.12 URLs](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-12-urls.md)
  - [1.3.13 DNS & Web Hosting](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-13-dns-and-web-hosting.md)
  - [1.3.14 The Cloud](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-14-the-cloud.md)
  - [1.3.15 Pros & Cons of the Cloud](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-15-pros-and-cons-of-the-cloud.md)
  - [1.3.16 Star & Mesh Network Topologies](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-16-star-and-mesh-network-topologies.md)
  - [1.3.17 WiFi](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-17-wifi.md)
  - [1.3.18 WiFi Frequency & Channels](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-18-wifi-frequency-and-channels.md)
  - [1.3.19 WiFi Encryption](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-19-wifi-encryption.md)
  - [1.3.20 IP Addresses](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-20-ip-addresses.md)
  - [1.3.21 MAC Addresses](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-21-mac-addresses.md)
  - [1.3.22 Network Protocols](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-22-network-protocols.md)
  - [1.3.23 Transmission Protocols](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-23-transmission-protocols.md)
  - [1.3.24 Application Protocols](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-24-application-protocols.md)
  - [1.3.25 Layers](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-25-layers.md)
  - [1.3.26 Advantages of Layering](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-26-advantages-of-layering.md)
  - [1.3.27 Exam-Style Questions - Networking Models](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-27-exam-style-questions-networking-models.md)
  - [1.3.28 Exam-Style Questions - Network Protocols](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-28-exam-style-questions-network-protocols.md)
  - [1.3.29 Diagnostic Misconceptions - LAN vs WAN](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-3-29-diagnostic-misconceptions-lan-vs-wan.md)
- 1.4 Network Security
  - [1.4.1 Forms of Attack](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-1-forms-of-attack.md)
  - [1.4.2 Penetration Testing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-2-penetration-testing.md)
  - [1.4.3 Malware](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-3-malware.md)
  - [1.4.4 How Malware Spreads](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-4-how-malware-spreads.md)
  - [1.4.5 Social Engineering](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-5-social-engineering.md)
  - [1.4.6 Phishing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-6-phishing.md)
  - [1.4.7 Cracking Passwords](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-7-cracking-passwords.md)
  - [1.4.8 Denial of Service Attacks](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-8-denial-of-service-attacks.md)
  - [1.4.9 Data Interception](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-9-data-interception.md)
  - [1.4.10 Methods of Data Interception](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-10-methods-of-data-interception.md)
  - [1.4.11 SQL Injection](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-11-sql-injection.md)
  - [1.4.12 Network Administration](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-12-network-administration.md)
  - [1.4.13 Network Forensics](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-13-network-forensics.md)
  - [1.4.14 Protecting Against Malware](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-14-protecting-against-malware.md)
  - [1.4.15 Firewalls](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-15-firewalls.md)
  - [1.4.16 User Access Levels](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-16-user-access-levels.md)
  - [1.4.17 Passwords](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-17-passwords.md)
  - [1.4.18 Encryption](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-18-encryption.md)
  - [1.4.19 End of Topic Test - Networks](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-4-19-end-of-topic-test-networks.md)
- 1.5 Systems Software
  - [1.5.1 System Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-1-system-software.md)
  - [1.5.2 Utility Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-2-utility-software.md)
  - [1.5.3 Operating Systems](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-3-operating-systems.md)
  - [1.5.4 User Interfaces](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-4-user-interfaces.md)
  - [1.5.5 Memory & Process Management](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-5-memory-and-process-management.md)
  - [1.5.6 File Management](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-6-file-management.md)
  - [1.5.7 Device Management](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-7-device-management.md)
  - [1.5.8 User Management](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-8-user-management.md)
  - [1.5.9 Encryption Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-9-encryption-software.md)
  - [1.5.10 Defragmentation Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-10-defragmentation-software.md)
  - [1.5.11 Data Compression Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-11-data-compression-software.md)
  - [1.5.12 Backup Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-5-12-backup-software.md)
- 1.6 Ethical, Legal, Cultural & Environmental Concern
  - [1.6.1 Open Source Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-1-open-source-software.md)
  - [1.6.2 Proprietary Software](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-2-proprietary-software.md)
  - [1.6.3 Licensing Issues](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-3-licensing-issues.md)
  - [1.6.4 Ethical Issues - The Digital Divide](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-4-ethical-issues-the-digital-divide.md)
  - [1.6.5 Ethical Issues - Net Neutrality](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-5-ethical-issues-net-neutrality.md)
  - [1.6.6 Ethical Issues - Working Conditions](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-6-ethical-issues-working-conditions.md)
  - [1.6.7 Ethical Issues - Censorship](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-7-ethical-issues-censorship.md)
  - [1.6.8 Exam-Style Questions - Ethical Issues](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-8-exam-style-questions-ethical-issues.md)
  - [1.6.9 Data Protection Act 1998](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-9-data-protection-act-1998.md)
  - [1.6.10 Computer Misuse Act (1990)](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-10-computer-misuse-act-1990.md)
  - [1.6.11 Copyright Designs & Patents Act (1988)](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-11-copyright-designs-and-patents-act-1988.md)
  - [1.6.12 Creative Commons Licensing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-12-creative-commons-licensing.md)
  - [1.6.13 Freedom of Information Act (2000)](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-13-freedom-of-information-act-2000.md)
  - [1.6.14 Cultural Issues](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-14-cultural-issues.md)
  - [1.6.15 Environmental Issues](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-15-environmental-issues.md)
  - [1.6.16 Online Activity Tracking & The Internet of Things](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-16-online-activity-tracking-and-the-internet-of-things.md)
  - [1.6.17 Stakeholders](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-17-stakeholders.md)
  - [1.6.18 Other Impacts of Digital Technology on Society](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-18-other-impacts-of-digital-technology-on-society.md)
  - [1.6.19 End of Topic Test - Software & Issues](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-19-end-of-topic-test-software-and-issues.md)
  - [1.6.20 Diagnostic Misconceptions - Open Source](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/1-6-20-diagnostic-misconceptions-open-source.md)

### 2 Computational Thinking, Algorithms & Programming
- 2.1 Algorithms
  - [2.1.1 Computational Thinking - Abstraction](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-1-computational-thinking-abstraction.md)
  - [2.1.2 Computational Thinking - Decomposition](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-2-computational-thinking-decomposition.md)
  - [2.1.3 Algorithmic Thinking](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-3-algorithmic-thinking.md)
  - [2.1.4 Pseudocode](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-4-pseudocode.md)
  - [2.1.5 Flowchart Diagrams](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-5-flowchart-diagrams.md)
  - [2.1.6 Interpreting Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-6-interpreting-algorithms.md)
  - [2.1.7 Correcting Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-7-correcting-algorithms.md)
  - [2.1.8 Completing Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-8-completing-algorithms.md)
  - [2.1.9 Search Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-9-search-algorithms.md)
  - [2.1.10 Binary Search](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-10-binary-search.md)
  - [2.1.11 Linear Search](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-11-linear-search.md)
  - [2.1.12 Overview of Sort Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-12-overview-of-sort-algorithms.md)
  - [2.1.13 Bubble Sort](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-13-bubble-sort.md)
  - [2.1.14 Merge Sort](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-14-merge-sort.md)
  - [2.1.15 Insertion Sort](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-15-insertion-sort.md)
  - [2.1.16 Exam-Style Questions - Sorting Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-16-exam-style-questions-sorting-algorithms.md)
- 2.2 Programming Fundamentals
  - [2.2.1 Variable Declaration & Assignment](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-1-variable-declaration-and-assignment.md)
  - [2.2.2 Input & Output](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-2-input-and-output.md)
  - [2.2.3 Program Flow - Sequence](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-3-program-flow-sequence.md)
  - [2.2.4 Program Flow - Selection](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-4-program-flow-selection.md)
  - [2.2.5 Program Flow - Iteration](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-5-program-flow-iteration.md)
  - [2.2.6 Arithmetic Operators](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-6-arithmetic-operators.md)
  - [2.2.7 Relational Operators](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-7-relational-operators.md)
  - [2.2.8 Boolean Operators](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-8-boolean-operators.md)
  - [2.2.9 Data Types](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-9-data-types.md)
  - [2.2.10 Casting](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-10-casting.md)
  - [2.2.11 Arrays](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-11-arrays.md)
  - [2.2.12 Strings](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-12-strings.md)
  - [2.2.13 File Handling](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-13-file-handling.md)
  - [2.2.14 Structuring Data - Records](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-14-structuring-data-records.md)
  - [2.2.15 Structured Query Language](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-15-structured-query-language.md)
  - [2.2.16 Random Number Generation](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-16-random-number-generation.md)
  - [2.2.17 End of Topic Test - Programming](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-17-end-of-topic-test-programming.md)
  - [2.2.18 Exam-Style Questions - Translation](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-18-exam-style-questions-translation.md)
  - [2.2.19 Diagnostic Misconceptions - Comparison Operators](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-19-diagnostic-misconceptions-comparison-operators.md)
  - [2.2.20 Diagnostic Misconceptions - = & ==](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-20-diagnostic-misconceptions-=-and-==.md)
  - [2.2.21 Diagnostic Misconceptions - Types of Data](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-21-diagnostic-misconceptions-types-of-data.md)
  - [2.2.22 Diagnostic Misconceptions - Last Line of Code](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-22-diagnostic-misconceptions-last-line-of-code.md)
  - [2.2.23 Diagnostic Misconceptions - Array Index](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-2-23-diagnostic-misconceptions-array-index.md)
- 2.3 Producing Robust Programs
  - [2.3.1 Defensive Design](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-1-defensive-design.md)
  - [2.3.2 Validation & Sanitisation](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-2-validation-and-sanitisation.md)
  - [2.3.3 Authentication & Contingencies](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-3-authentication-and-contingencies.md)
  - [2.3.4 Maintainability](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-4-maintainability.md)
  - [2.3.5 Purpose of Testing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-5-purpose-of-testing.md)
  - [2.3.6 Types of Testing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-6-types-of-testing.md)
  - [2.3.7 Test Plans](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-7-test-plans.md)
  - [2.3.8 Types of Errors](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-8-types-of-errors.md)
  - [2.3.9 End of Topic Test - Programming](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-9-end-of-topic-test-programming.md)
  - [2.3.10 Exam-Style Questions - Testing](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-3-10-exam-style-questions-testing.md)
- 2.4 Boolean Logic
  - [2.4.1 Binary Systems](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-4-1-binary-systems.md)
  - [2.4.2 Logic Circuits](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-4-2-logic-circuits.md)
  - [2.4.3 Boolean Logic](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-4-3-boolean-logic.md)
  - [2.4.4 Boolean Operators](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-4-4-boolean-operators.md)
  - [2.4.5 Grade 9 - Logic](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-4-5-grade-9-logic.md)
- 2.5 Programming Languages & IDEs
  - [2.5.1 High-Level vs Low-Level Languages](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-5-1-high-level-vs-low-level-languages.md)
  - [2.5.2 Translation - Compliers & Interpreter](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-5-2-translation-compliers-and-interpreter.md)
  - [2.5.3 Translation - Assemblers](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-5-3-translation-assemblers.md)
  - [2.5.4 Integrated Development Environments](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-5-4-integrated-development-environments.md)
  - [2.5.5 Exam-Style Questions - Translation](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-5-5-exam-style-questions-translation.md)
