Source: https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-2-waterfall-lifecycle

[Revision notes](https://senecalearning.com/en-gb/revision-notes.md) › [A Level](https://senecalearning.com/en-gb/revision-notes/a-level.md) › [Computer Science](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science.md) › [OCR](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr.md) › Waterfall Lifecycle

# Waterfall Lifecycle

Computer Science: OCR A Level, topic 2.3.2

## The Waterfall Lifecycle

When working in software development organisations follow software development systems to ensure the project is a success. The waterfall lifecycle is one such system.

### Waterfall lifecycle

![Waterfall lifecycle](https://image-v2.cdn.app.senecalearning.com/2019-03/53170092-d122-4317-bdfd-1cddf453747c/waterfall-.jpg)

- The waterfall lifecycle has a series of stages that each have to be completed before moving to the next one. 
- Each stage is large and thorough and produces a large amount of documentation.

### Stage 1: Requirements

![Stage 1: Requirements](https://image-v2.cdn.app.senecalearning.com/2020-08/e5e642cf-5d61-48db-a644-3b5c0ec94da2/Screenshot%202020-08-18%20at%2009.46.44-min.png)

- To define requirements, the project team will work with the client to set out the requirements for the whole project.
- These will be very difficult to change after this stage is completed.

### Stage 2: Analysis

![Stage 2: Analysis](https://image-v2.cdn.app.senecalearning.com/2020-08/0d445d95-3557-42cd-99ea-380bb573ecad/Screenshot%202020-08-18%20at%2009.46.45-min.png)

- Analysis is where the project team analyses: 
 - What solutions they have ready to implement.
 - What they can use or adapt to help produce a solution.

### Stage 3: Design

![Stage 3: Design](https://image-v2.cdn.app.senecalearning.com/2020-08/922e30f6-eae8-4164-a28f-442aa16d15c9/Screenshot%202020-08-18%20at%2009.46.47-min.png)

- The design stage is where the project team produce a solution design to meet all of the users requirements.

### Stage 4: Implementation

![Stage 4: Implementation](https://image-v2.cdn.app.senecalearning.com/2020-08/1a6742c3-caab-4546-986a-a34be0703c8f/Screenshot%202020-08-18%20at%2009.46.49-min.png)

- Implementation takes place once the design is completed and signed off by the user and the project team.
- This is when the developers write the code and build the designed solution.

### Stage 5: Testing

![Stage 5: Testing](https://image-v2.cdn.app.senecalearning.com/2020-08/482496d1-c0d0-446d-b884-dc860443923c/Screenshot%202020-08-18%20at%2009.46.52-min.png)

- Testing happens after implementation.
- Testing involves checking that:
 - The system itself works.
 - The system meets the user requirements.

### Stage 6: Deployment

![Stage 6: Deployment](https://image-v2.cdn.app.senecalearning.com/2020-08/ea998d28-3704-49b5-865d-3baf274948e9/Screenshot%202020-08-18%20at%2009.46.54-min.png)

- Installation or deployment is when the system is put into place within the client's organisation.

### Stage 7: Maintenance

![Stage 7: Maintenance](https://image-v2.cdn.app.senecalearning.com/2020-08/c323980c-7828-4ab2-ac72-add429ffc4b7/Screenshot%202020-08-18%20at%2009.46.57-min.png)

- The system then moves into maintenance where they fix any bugs to the system and ensure it works as intended.

## Test yourself on Waterfall Lifecycle

- Waterfall Lifecycle
- In which step of the waterfall cycle are any bugs fixed?

[Practise this topic for free](https://app.senecalearning.com/classroom/course/0427a30a-fd38-4222-9775-2d193021a4a1/section/8005974e-d1dd-4df2-b18b-f7d806f92618/session)

- Previous topic: [2.3.1 Algorithmic Thinking](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-1-algorithmic-thinking.md)
- Next topic: [2.3.3 Waterfall Lifecycle - Strengths & Weaknesses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-3-waterfall-lifecycle-strengths-and-weaknesses.md)

## Computer Science: OCR A Level contents

### 1 Components of a Computer
- 1.1 Structure & Function of  the Processor
  - [1.1.1 Von Neumann Architecture](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-1-von-neumann-architecture.md)
  - [1.1.2 Registers](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-2-registers.md)
  - [1.1.3 Buses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-3-buses.md)
  - [1.1.4 Fetch, Decode, Execute Cycle](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-4-fetch-decode-execute-cycle.md)
  - [1.1.5 Factors Affecting CPU Performance](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-5-factors-affecting-cpu-performance.md)
  - [1.1.6 Pipelining](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-6-pipelining.md)
  - [1.1.7 CPU Architecture](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-1-7-cpu-architecture.md)
- 1.2 Types of Processors
  - [1.2.1 CISC & RISC](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-2-1-cisc-and-risc.md)
  - [1.2.2 GPUs & Their Uses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-2-2-gpus-and-their-uses.md)
  - [1.2.3 Multicore & Parallel Systems](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-2-3-multicore-and-parallel-systems.md)
- 1.3 Input, Output & Storage
  - [1.3.1 Elements of Computer Systems](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-1-elements-of-computer-systems.md)
  - [1.3.2 Types of Computer Systems](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-2-types-of-computer-systems.md)
  - [1.3.3 How Magnetic Storage Works](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-3-how-magnetic-storage-works.md)
  - [1.3.4 Properties of Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-4-properties-of-magnetic-storage.md)
  - [1.3.5 Examples of Magnetic Storage](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-5-examples-of-magnetic-storage.md)
  - [1.3.6 How Optical Storage Works](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-6-how-optical-storage-works.md)
  - [1.3.7 Properties of Optical Storage](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-7-properties-of-optical-storage.md)
  - [1.3.8 Examples of Optical Storage](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-8-examples-of-optical-storage.md)
  - [1.3.9 Types of Optical Disc](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-9-types-of-optical-disc.md)
  - [1.3.10 Random Access Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-10-random-access-memory.md)
  - [1.3.11 Read Only Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-11-read-only-memory.md)
  - [1.3.12 Uses of Flash Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-12-uses-of-flash-memory.md)
  - [1.3.13 Properties of Flash Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-13-properties-of-flash-memory.md)
  - [1.3.14 What to do When We Run Out of Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-14-what-to-do-when-we-run-out-of-memory.md)
  - [1.3.15 How Virtual Memory Works](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/1-3-15-how-virtual-memory-works.md)

### 2 Software & Software Development
- 2.1 Systems Software
  - [2.1.1 Operating Systems](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-1-operating-systems.md)
  - [2.1.2 Managing Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-2-managing-memory.md)
  - [2.1.3 Paging](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-3-paging.md)
  - [2.1.4 Segmentation](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-4-segmentation.md)
  - [2.1.5 Device Management & Drivers](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-5-device-management-and-drivers.md)
  - [2.1.6 Interrupts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-6-interrupts.md)
  - [2.1.7 Interrupt Service Routine (ISR)](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-7-interrupt-service-routine-isr.md)
  - [2.1.8 Scheduling](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-8-scheduling.md)
  - [2.1.9 Types of Scheduling](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-9-types-of-scheduling.md)
  - [2.1.10 Types of Operating System](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-10-types-of-operating-system.md)
  - [2.1.11 BIOS](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-11-bios.md)
  - [2.1.12 Virtual Machines](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-1-12-virtual-machines.md)
- 2.2 Applications Generation
  - [2.2.1 Applications Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-1-applications-software.md)
  - [2.2.2 Utilities](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-2-utilities.md)
  - [2.2.3 Encryption Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-3-encryption-software.md)
  - [2.2.4 Defragmentation Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-4-defragmentation-software.md)
  - [2.2.5 Data Compression Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-5-data-compression-software.md)
  - [2.2.6 Backup Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-6-backup-software.md)
  - [2.2.7 Open Source Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-7-open-source-software.md)
  - [2.2.8 Proprietary Software](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-8-proprietary-software.md)
  - [2.2.9 Licensing Issues](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-9-licensing-issues.md)
  - [2.2.10 Compilers](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-10-compilers.md)
  - [2.2.11 Interpreters](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-11-interpreters.md)
  - [2.2.12 Assemblers](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-12-assemblers.md)
  - [2.2.13 Compiling a Program](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-13-compiling-a-program.md)
  - [2.2.14 Lexical Analysis](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-14-lexical-analysis.md)
  - [2.2.15 Compilation Stages](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-15-compilation-stages.md)
  - [2.2.16 Linkers, Loaders & Libraries](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-2-16-linkers-loaders-and-libraries.md)
- 2.3 Software Development
  - [2.3.1 Algorithmic Thinking](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-1-algorithmic-thinking.md)
  - [2.3.2 Waterfall Lifecycle](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-2-waterfall-lifecycle.md)
  - [2.3.3 Waterfall Lifecycle - Strengths & Weaknesses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-3-waterfall-lifecycle-strengths-and-weaknesses.md)
  - [2.3.4 Agile Methodology](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-4-agile-methodology.md)
  - [2.3.5 Agile Methodology - Strengths & Weaknesses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-5-agile-methodology-strengths-and-weaknesses.md)
  - [2.3.6 Extreme Programming](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-6-extreme-programming.md)
  - [2.3.7 Extreme Programming - Strengths & Weaknesses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-7-extreme-programming-strengths-and-weaknesses.md)
  - [2.3.8 Spiral Methodology](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-8-spiral-methodology.md)
  - [2.3.9 Spiral Methodology - Strengths & Weaknesses](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-9-spiral-methodology-strengths-and-weaknesses.md)
  - [2.3.10 Rapid Application Development](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-10-rapid-application-development.md)
  - [2.3.11 RAD - Strengths & Weaknesse](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-3-11-rad-strengths-and-weaknesse.md)
- 2.4 Types of Programming Language
  - [2.4.1 High Level Programming Languages](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-1-high-level-programming-languages.md)
  - [2.4.2 Low Level Programming Languages](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-2-low-level-programming-languages.md)
  - [2.4.3 Programming Paradigms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-3-programming-paradigms.md)
  - [2.4.4 Procedural Programming Languages](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-4-procedural-programming-languages.md)
  - [2.4.5 Assembly](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-5-assembly.md)
  - [2.4.6 Machine Code](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-6-machine-code.md)
  - [2.4.7 Modes of Addressing Memory](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-7-modes-of-addressing-memory.md)
  - [2.4.8 Object-Oriented Languages](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-8-object-oriented-languages.md)
  - [2.4.9 Classes](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-9-classes.md)
  - [2.4.10 Objects](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-10-objects.md)
  - [2.4.11 Encapsulation](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-11-encapsulation.md)
  - [2.4.12 Polymorphism](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/2-4-12-polymorphism.md)

### 3 Exchanging Data
- 3.1 Compression, Encryption & Hashing
  - [3.1.1 Compression](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-1-compression.md)
  - [3.1.2 Run Length Encoding](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-2-run-length-encoding.md)
  - [3.1.3 Dictionary Coding](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-3-dictionary-coding.md)
  - [3.1.4 Encryption](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-4-encryption.md)
  - [3.1.5 Symmetric Encryption](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-5-symmetric-encryption.md)
  - [3.1.6 Hashing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-1-6-hashing.md)
- 3.2 Databases
  - [3.2.1 Records](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-1-records.md)
  - [3.2.2 Databases](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-2-databases.md)
  - [3.2.3 Relational Databases](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-3-relational-databases.md)
  - [3.2.4 Entity Relationship Modelling](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-4-entity-relationship-modelling.md)
  - [3.2.5 Managing Databases](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-5-managing-databases.md)
  - [3.2.6 Normalisation](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-6-normalisation.md)
  - [3.2.7 SQL](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-7-sql.md)
  - [3.2.8 Principles of Data Storage](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-8-principles-of-data-storage.md)
  - [3.2.9 Atomicity, Consistency, Isolation & Durability](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-2-9-atomicity-consistency-isolation-and-durability.md)
- 3.3 Networks
  - [3.3.1 The Benefits of Networks](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-1-the-benefits-of-networks.md)
  - [3.3.2 Network Performance](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-2-network-performance.md)
  - [3.3.3 Types of Networks](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-3-types-of-networks.md)
  - [3.3.4 Network Protocols](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-4-network-protocols.md)
  - [3.3.5 Transmission Protocols](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-5-transmission-protocols.md)
  - [3.3.6 What is the Internet?](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-6-what-is-the-internet.md)
  - [3.3.7 Uniform Resource Locators](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-7-uniform-resource-locators.md)
  - [3.3.8 Domain Name Service](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-8-domain-name-service.md)
  - [3.3.9 Web Hosting](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-9-web-hosting.md)
  - [3.3.10 Layering Concepts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-10-layering-concepts.md)
  - [3.3.11 TCP &. OSI Models](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-11-tcp-and-osi-models.md)
  - [3.3.12 The Advantages of Layering](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-12-the-advantages-of-layering.md)
  - [3.3.13 What's in a Packet?](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-13-whats-in-a-packet.md)
  - [3.3.14 How do Packets get Routed?](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-14-how-do-packets-get-routed.md)
  - [3.3.15 Did my Data Arrive Safely?](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-15-did-my-data-arrive-safely.md)
  - [3.3.16 Network Hardware](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-16-network-hardware.md)
  - [3.3.17 Transmission Media](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-17-transmission-media.md)
  - [3.3.18 Firewalls](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-18-firewalls.md)
  - [3.3.19 Proxies](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-19-proxies.md)
  - [3.3.20 Client-Server Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-20-client-server-model.md)
  - [3.3.21 Advantages of the Client Server Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-21-advantages-of-the-client-server-model.md)
  - [3.3.22 Disadvantages of the Client Server Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-22-disadvantages-of-the-client-server-model.md)
  - [3.3.23 Peer-to-Peer Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-23-peer-to-peer-model.md)
  - [3.3.24 Advantages of the Peer-to-Peer Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-24-advantages-of-the-peer-to-peer-model.md)
  - [3.3.25 Disadvantages of the Peer-to-Peer Model](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-3-25-disadvantages-of-the-peer-to-peer-model.md)
- 3.4 Web Technologies
  - [3.4.1 HTML](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-1-html.md)
  - [3.4.2 CSS](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-2-css.md)
  - [3.4.3 JavaScript](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-3-javascript.md)
  - [3.4.4 Search Engine Indexing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-4-search-engine-indexing.md)
  - [3.4.5 PageRank Algorithm](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-5-pagerank-algorithm.md)
  - [3.4.6 Server & Client-Side Processing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/3-4-6-server-and-client-side-processing.md)

### 4 Data Types, Data Structures & Algorithms
- 4.1 Data Types
  - [4.1.1 Data Types](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-1-data-types.md)
  - [4.1.2 Casting](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-2-casting.md)
  - [4.1.3 Arrays](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-3-arrays.md)
  - [4.1.4 2D Arrays](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-4-2d-arrays.md)
  - [4.1.5 Strings](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-5-strings.md)
  - [4.1.6 Binary](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-6-binary.md)
  - [4.1.7 Sign & Magnitude](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-7-sign-and-magnitude.md)
  - [4.1.8 Binary Addition](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-8-binary-addition.md)
  - [4.1.9 Binary Shifts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-9-binary-shifts.md)
  - [4.1.10 Hexadecimal](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-10-hexadecimal.md)
  - [4.1.11 Using Hexadecimal](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-11-using-hexadecimal.md)
  - [4.1.12 Converting Binary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-12-converting-binary-and-hexadecimal.md)
  - [4.1.13 Converting Denary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-13-converting-denary-and-hexadecimal.md)
  - [4.1.14 Floating Points in Binary](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-14-floating-points-in-binary.md)
  - [4.1.15 Normalisation of Floating Points](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-15-normalisation-of-floating-points.md)
  - [4.1.16 Floating Point Addition](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-16-floating-point-addition.md)
  - [4.1.17 Floating Point Subtraction](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-17-floating-point-subtraction.md)
  - [4.1.18 Bitwise Manipulation - Shifts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-18-bitwise-manipulation-shifts.md)
  - [4.1.19 Bitwise Manipulation - Masks](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-19-bitwise-manipulation-masks.md)
  - [4.1.20 Character Sets](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-20-character-sets.md)
  - [4.1.21 ASCII](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-21-ascii.md)
  - [4.1.22 Unicode](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-1-22-unicode.md)
- 4.2 Data Structures
  - [4.2.1 3D Arrays](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-1-3d-arrays.md)
  - [4.2.2 Linked List](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-2-linked-list.md)
  - [4.2.3 Queues](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-3-queues.md)
  - [4.2.4 Graphs](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-4-graphs.md)
  - [4.2.5 Hash Tables](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-5-hash-tables.md)
  - [4.2.6 Stacks](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-6-stacks.md)
  - [4.2.7 Trees](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-7-trees.md)
  - [4.2.8 Binary Search Trees](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-2-8-binary-search-trees.md)
- 4.3 Boolean Algebra
  - [4.3.1 Binary Systems](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-1-binary-systems.md)
  - [4.3.2 Logic Circuits](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-2-logic-circuits.md)
  - [4.3.3 Boolean Operators](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-3-boolean-operators.md)
  - [4.3.4 Evaluating Expressions](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-4-evaluating-expressions.md)
  - [4.3.5 Boolean Logic](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-5-boolean-logic.md)
  - [4.3.6 Karnaugh Maps](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-6-karnaugh-maps.md)
  - [4.3.7 Boolean Identities](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-7-boolean-identities.md)
  - [4.3.8 Boolean Rules](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-8-boolean-rules.md)
  - [4.3.9 Flip Flops](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-9-flip-flops.md)
  - [4.3.10 Adder Circuits](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/4-3-10-adder-circuits.md)

### 5 Legal, Moral, Cultural & Ethical Issues
- 5.1 Computing Related Legislation
  - [5.1.1 Data Protection Act (1998)](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-1-1-data-protection-act-1998.md)
  - [5.1.2 Computer Misuse Act (1990)](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-1-2-computer-misuse-act-1990.md)
  - [5.1.3 Copyright Designs & Patents Act (1988)](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-1-3-copyright-designs-and-patents-act-1988.md)
  - [5.1.4 Creative Commons Licensing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-1-4-creative-commons-licensing.md)
  - [5.1.5 Regulation of Investigatory Powers Act (2000)](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-1-5-regulation-of-investigatory-powers-act-2000.md)
- 5.2 Moral & Ethical Issues
  - [5.2.1 Online Activity Tracking](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-1-online-activity-tracking.md)
  - [5.2.2 Censorship](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-2-censorship.md)
  - [5.2.3 Positive Cultural Impacts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-3-positive-cultural-impacts.md)
  - [5.2.4 Negative Cultural Impacts](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-4-negative-cultural-impacts.md)
  - [5.2.5 E-Waste](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-5-e-waste.md)
  - [5.2.6 Energy Consumption](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-6-energy-consumption.md)
  - [5.2.7 Positive Environmental Impact](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-7-positive-environmental-impact.md)
  - [5.2.8 Layout, Colour Paradigms & Character Sets](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-8-layout-colour-paradigms-and-character-sets.md)
  - [5.2.9 Computers in the Workplace](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-9-computers-in-the-workplace.md)
  - [5.2.10 Automated Decision-Making](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-10-automated-decision-making.md)
  - [5.2.11 Artificial Intelligence](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-11-artificial-intelligence.md)
  - [5.2.12 Monitoring Behaviour](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-12-monitoring-behaviour.md)
  - [5.2.13 Analysing Personal Information](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-13-analysing-personal-information.md)
  - [5.2.14 Piracy & Offensive Communication](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/5-2-14-piracy-and-offensive-communication.md)

### 6 Elements of Computational Thinking
- 6.1 Thinking Abstractly
  - [6.1.1 Abstraction](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-1-1-abstraction.md)
- 6.2 Thinking Ahead
  - [6.2.1 Inputs & Outputs](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-2-1-inputs-and-outputs.md)
- 6.3 Thinking Procedurally
  - [6.3.1 Decomposition](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-3-1-decomposition.md)
- 6.4 Thinking Logically
  - [6.4.1 Pseudocode](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-4-1-pseudocode.md)
  - [6.4.2 Flow Diagrams](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-4-2-flow-diagrams.md)
- 6.5 Thinking Concurrently
  - [6.5.1 Concurrent Processing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/6-5-1-concurrent-processing.md)

### 7 Problem Solving & Programming
- 7.1 Programming Techniques
  - [7.1.1 Variables & Constants](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-1-1-variables-and-constants.md)
  - [7.1.2 Comments](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-1-2-comments.md)
  - [7.1.3 Inputs & Outputs](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-1-3-inputs-and-outputs.md)
  - [7.1.4 Subroutines](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-1-4-subroutines.md)
  - [7.1.5 Scope](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-1-5-scope.md)
- 7.2 Programming Construction
  - [7.2.1 Integrated Development Environments](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-2-1-integrated-development-environments.md)
  - [7.2.2 The Purpose of Testing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-2-2-the-purpose-of-testing.md)
  - [7.2.3 Types of Testing](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-2-3-types-of-testing.md)
  - [7.2.4 Test Plans](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/7-2-4-test-plans.md)

### 8 Algorithms
- 8.1 Algorithms
  - [8.1.1 Interpreting Algorithms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-1-interpreting-algorithms.md)
  - [8.1.2 Correcting Algorithms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-2-correcting-algorithms.md)
  - [8.1.3 Completing Algorithms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-3-completing-algorithms.md)
  - [8.1.4 Sort Algorithms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-4-sort-algorithms.md)
  - [8.1.5 Bubble Sort](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-5-bubble-sort.md)
  - [8.1.6 Insertion Sort](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-6-insertion-sort.md)
  - [8.1.7 Merge Sort](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-7-merge-sort.md)
  - [8.1.8 Search Algorithms](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-8-search-algorithms.md)
  - [8.1.9 Linear Search](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-9-linear-search.md)
  - [8.1.10 Binary Search](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-10-binary-search.md)
  - [8.1.11 Quick Sort Algorithm](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-11-quick-sort-algorithm.md)
  - [8.1.12 A* Algorithm](https://senecalearning.com/en-gb/revision-notes/a-level/computer-science/ocr/8-1-12-a-algorithm.md)
