Components of a Problem in Computational Thinking (OCR A Level Computer Science)

Revision Note

James Woodhouse

Expertise

Computer Science

Identifying the Components of a Problem

  • In order to create algorithms to solve a problem, the important parts of the problem must be identified by abstracting away unimportant details and then decomposing the problem into smaller sub-problems

How do you Identify the Components of a Problem?

  • Abstraction is the act of removing unimportant details from a real problem, such as an object or environment and focusing on the details that will form part of the solution (component). 

  • For example, modelling a garden or football field in a program does not require modelling every single blade of grass. Usually a green mesh or image forms the basis for this representation. Higher fidelity simulations such as modern games go a long way to modelling details such as this at the cost of higher processing power however

  • Other examples of abstraction are:

    • Saving files: users do not need to know the underlying complex procedures used to save a file on a hard disk drive or how the operating system represents data using paging and segmentation in RAM

    • Sending an email: users do not need to know which protocols are being used, how the data is formatted and what protocol handshaking occurs to send an email

    • Downloading content: Similar to sending an email (in reverse), a user does not need to explicitly know how security checks are made using digital certificates, signatures, protocols, etc in order to download content

  • Consider a teacher calculating the grades of several classes of students over a year. An example of identifying components of this problem would be:

    • How many classes are there?

    • How many students are there?

    • What are the possible grades a student could achieve?

    • How many assessments are there to consider?

  • If the teacher were to perform statistical analysis of the grades, other components could include:

    • Are the assessments divided into difficulty categories such as easy, medium, hard?

    • Do the number of questions on each assessment matter? Would this influence the grades in any way?

    • Do the topics of each assessment matter? Is one topic harder than another? Would this influence the grades?

    • Does the format of the questions matter? Do students do better on multichoice questions over written questions?

Identifying the Components of a Solution

  • Once the components of the problem are identified, the matching components used to solve the problem can be identified

  • In the above example of a teacher calculating the grades of students over the course of year, several key areas have been identified, including the quantity of classes, students, assessments and grades

  • Thinking procedurally involves procedural abstraction, which means using a procedure to execute sequences of instructions to achieve some goal. In order to solve this problem, a procedure must be created. 

Exam Tip

It is important to note that “procedure” in this context doesn’t strictly mean a subroutine that doesn’t return a value. A procedure in this context can be viewed simply as a unit of computation that performs a single task. It is work noting that a “function” is a subroutine that returns a value whereas a procedure does not

  • The premise of the above grade calculation problem is simple but requires careful thought on the technical details of the solution, namely:

    • What are the input parameter and output data types? Integer, real/float, string, boolean, etc?

    • What data structures may be required? Array, list, dictionary, linked list, hash table?

    • Will any libraries be required? Statistics module, math module?

    • What format will the output take? Array, list, dictionary, output string etc?

    • What data transformations and constructs will be required? Multiplication, division, for loop, while loop, select case?

    • Is the efficiency of the algorithm an important factor? Does the algorithm have to be O(n) or less?

  • Once the initial solution components have been identified and at the very least been considered, the procedure can then be decomposed into more detailed instructions. More complex problems may require larger programs consisting of many subroutines that call each other or imported library subroutines

You've read 0 of your 0 free revision notes

Get unlimited access

to absolutely everything:

  • Downloadable PDFs
  • Unlimited Revision Notes
  • Topic Questions
  • Past Papers
  • Model Answers
  • Videos (Maths and Science)

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

James Woodhouse

Author: James Woodhouse

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.