0% found this document useful (0 votes)
3 views

OCR a-Level Computer Science Spec Notes_ 2.1 Summarized

The document outlines key elements of computational thinking, including abstraction, procedural thinking, logical reasoning, and concurrent processing. It emphasizes the importance of breaking down complex problems, planning inputs and outputs, and utilizing reusable program components for efficient problem-solving. Additionally, it discusses the benefits of caching and concurrent processing in enhancing program performance and efficiency.

Uploaded by

ninja0990
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

OCR a-Level Computer Science Spec Notes_ 2.1 Summarized

The document outlines key elements of computational thinking, including abstraction, procedural thinking, logical reasoning, and concurrent processing. It emphasizes the importance of breaking down complex problems, planning inputs and outputs, and utilizing reusable program components for efficient problem-solving. Additionally, it discusses the benefits of caching and concurrent processing in enhancing program performance and efficiency.

Uploaded by

ninja0990
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

OCR A-Level Computer Science Spec Notes

2.1 Elements of computational thinking


Computational Thinking: Take a complex problem, understand what the problem is and develop
possible solutions.

2.1.1 Thinking abstractly


(a) The nature of abstraction.
- Abstraction is a representation of reality
(b) The need for abstraction.
- Needed to encapsulate methods/data so larger problems can be worked on without too
much detail
(c) The difference between abstraction and reality
- Abstraction takes a real life situation and removes unnecessary details in order to reach
a solution quicker by focusing on the most important areas of the problem.
(d) Devise an abstract model for a variety of situations.
- Examples of Abstractions: Variables/Objects/Layers/Data Modules/Data
Structures/Entity Diagrams

2.1.2 Thinking ahead


(a) Identify the inputs and outputs for a given situation.
- Thinking ahead involves planning potential inputs & outputs of a system

(b) Determine the preconditions for devising a solution to a problem.


When planning, computer scientists will:
- Determine outputs required & inputs necessary to achieve the outputs
- Consider the resources needed & user expectations.
Strategies can be made to:
- Decide what is to be achieved
- Determine prerequisites & what's possible within certain conditions

(c) The nature, benefits and drawbacks of caching.


- Illustration of thinking ahead (Caching)
- Caching: Data stored in cache/RAM if needed again = Faster future access

(d) The need for reusable program components


Reusable program components
- Software is modular e.g object/function
- Modules transplanted into new software / shared at run time through the use of
libraries
- Modules already tested = more reliable programs.
- Less development time as programs can be shorter & modules shared
2.1.3 Thinking procedurally
(a) Identify the components of a problem
- Thinking procedurally = Decomposition

(b) Identify the components of a solution to a problem


- Large problems broken down into smaller problems to work towards solution

(c) Determine the order of the steps needed to solve a problem


- Order of execution needs to be taken into account – may need data to be processed by
one module before another can use it

(d) Identify the sub-procedures necessary to solve a problem


- Large human projects benefit from the same approach.

2.1.4 Thinking logically


(a) Identify the points in a solution where a decision has to be taken
- Decisions can be made on the spot or before starting a task
- It’s important to know where decisions are taken as it affects program
inputs/outputs/functionality

(b) Determine the logical conditions that affect the outcome of a decision
Consider:
- Are you planning the right thing?
- You need to think about the steps of a solution – will it yield the right results?
- What information do you have?
- Is it enough to form a certain (or acceptable) conclusion?
- What extra information do you need?
- What information do you have but don’t need?

(c) Determine how decisions affect flow through a program


- Decisions made can either:
● Speed up the process
● Decrease the speed of the process
● Change the inputs/outputs
● Program functionality can change

2.1.5 Thinking concurrently


(a) Determine the parts of a problem that can be tackled at the same time
- Most modern computers can process a number of instructions at the same time (thanks
to multi-core processors and pipelining).
- This means programs need to be specially designed to take advantage of this.
- Modules processed at the same time should be independent.
- Well-designed programs can save a lot of processing time.
- Human activities also benefit from this.
- Project planning attempts to process stages simultaneously if possible, so the project
gets completed more quickly.

(b) Outline the benefits and trade offs that might result from concurrent processing

Concurrent (Parallel) Processing:


- Carrying out more than one task at a time/a program has multiple threads
- Multiple processors/Each thread starts and ends at different times
- Each processor performs simultaneously/Each thread overlap
- Each processor performs tasks independently/Each thread runs independently
- These affect the algorithms which are made

You might also like