Source: https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-10-binary-search

[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) › Binary Search

# Binary Search

Computer Science: OCR GCSE, topic 2.1.10

## Binary Search

Binary search is a type of algorithm known as a divide-and-conquer algorithm.

### The concept

![The concept](https://image-v2.cdn.app.senecalearning.com/2018-05/e96d7e91-613b-4825-9b91-60c33f326c6c/shutterstock_169575122.jpg)

- If you try to find a certain page in a book, it's unlikely that you check every page on the way.
- You are more likely to split the book in two, then see if the page you need is before or after the split, and repeat.
- This is the concept behind the binary search.
- Data must be in a specific order. Example: lowest to highest, A->Z

### In English

![In English](https://image-v2.cdn.app.senecalearning.com/2018-07/95d17dd9-261f-4238-9065-f411ea8c7210/code-Data-Computer-Wifi-Internet.jpg)

- Find a certain value within a range of values. Find the middle of the dataset.
- If the middle value is greater than the target then:
 - Repeat on the first half of dataset. You can discard the second half of the dataset as you know all of these values are greater than the value you are trying to find.
- If the middle value is lesser than the target then:
 - Repeat on the second half of dataset. This is the second half of the dataset after 50% was already removed when the first middle was found.
- If the middle value is the target:
 - We found it!
- Stop repeating once the size of our dataset is zero.

### In pseudocode

![In pseudocode](https://image-v2.cdn.app.senecalearning.com/2018-07/723e35a4-c48b-4ab7-a0a2-dc9ff48e0c3f/2.1.4%20Binary%20Search%20Pseudocode.png)

### Example

![Example](https://image-v2.cdn.app.senecalearning.com/2025-12/7a24e0d1-787b-4baa-a8aa-41bf680fb9af/9917b8dd-e0ff-47d0-a529-c25f385f85c4.png)

- Task: Find the target value 23 in the sorted list:
 - [5, 8, 12, 15, 19, 23, 27, 32]
- Step 1: Find the middle of the dataset
 - List length = 8. Middle index = 8 / 2 = 4. Middle value = 19.
- Step 2: Compare with target
 - 19 < 23. Target must be in the second half. Discard first half.
 - New list: [23, 27, 32]
- Step 3: Find the middle of the new dataset
 - New list length = 3. Middle index = 3 / 2 = 1. Middle value = 27
- Step 4: Compare with target
 - 27 > 23. Target must be in the first half of the new list. Discard second half.
 - New list: [23]
- Step 5: Find the middle again
 - Middle value = 23
- Step 6: Compare with target
 - 23 == 23
 - Target found!

### Pros and cons of binary search

![Pros and cons of binary search](https://image-v2.cdn.app.senecalearning.com/courseImages/physics/4.3.5%20-%20Digital%20Circuits/binary-min.jpg)

- Pros:
 - Faster than linear search on a large dataset.
- Cons:
 - Dataset must be sorted before starting.

## Test yourself on Binary Search

- Binary search is an example of what type of algorithm?
- What is the main advantage of binary search?

[Practise this topic for free](https://app.senecalearning.com/classroom/course/a1ce4570-6e27-11e8-af4b-35cf52f905c2/section/9669e81c-1e25-4351-a468-b7eb809d00d0/session)

- Previous topic: [2.1.9 Search Algorithms](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-9-search-algorithms.md)
- Next topic: [2.1.11 Linear Search](https://senecalearning.com/en-gb/revision-notes/gcse/computer-science/ocr/2-1-11-linear-search.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)
