Elements of Computational Thinking

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/102

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 1:47 PM on 4/6/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

103 Terms

1
New cards

Why does thinking procedurally make writing a program easier

breaks down problem into smaller parts which are easier to understand and easier to design

2
New cards

First stage of thinking proceduraly

Problem decomposition - large, complex problem is continually broken down into smaller subproblems. Problem becomes more feasible to manage and can be divided between a group of people according to the skill stes of individuals,

3
New cards

How are problems decomposed

top-down design. Breaks down problems into levels. Higher levels provide an overview of a problem while lower levels specify in detail the components of this problem

4
New cards

Aim of top-down design

to keep splitting problems into sub-problems until each sub-problem can be represented as a single task and a self-contained module or subroutine. Each task can then be solved and developed as a subroutine by a different person. Each subroutine can be tested separately before being integrated

5
New cards

Second stage of thinking procedurally

Identify the components of the solution and assess how its best to be solved. Useful to identify tasks which can be solved using an already existing module, subroutine or library. The components are combined to form a full, working solution.

6
New cards

What to consider when combining components to form a full solution

The order in which operations are performed is important. Some subroutines might require data from other subroutines or the user before they are able to execute, so will be unable to execute simultaneously.

7
New cards

What is concurrent processing

Multiple processes being executed at the same time. Each process is given a slice of processor time to give the illusion that they are happening at the same time. Different processes can be executed by different processors.

8
New cards

What is concurrent thinkong

the mindset that allows you to spot patterns and parts of problems where concurrency can be applied

9
New cards

How to determine which parts. of problems can be solved at the same time

Assess which parts of a problem are related as they can often be solved simultanesouly so can be dealt with concurrently

10
New cards

Difference between concurrent procesing and concurrent thinking

Concurrent processing uses a computer processor whil concurrent thinking uses your braing

11
New cards

Parallel processing vs concurrent processing

Parallel processing is when multiple processors are used to complete more than one task simultaneously. Concurrent processing is when each task is given a slove of procesor time to make it look like tasks are being completed simultaneously when in reality they are executed sequentially

12
New cards

Benefits of concurrent processing

  • More efficient processor use/ less idle processor time

  • Long running tasks do not delay short running tasks

  • User can interact with the computer while other tasks are running, so less time is wasted waiting

  • tasks requiring preconditions can wait and then resume execution

13
New cards

Drawbacks of concurrent processing

  • Can take longer to complete when large numbers of users or tasks are involved, as processes cannot be completed at once

  • There is an overhead in coordinating and switching between processes, which reduces program throughput

  • Not all tasks are suited to being broken up and performed concurrently

14
New cards

Explain why concurrent processing is needed to allow multiple users to log in and interact with game elements at the same time

  • multiple requests to the server at the same time

    • Server needs to respond in a reasonable time

    • Having multiple processors handling different requests would increase response time

  • Users could override each other’s changes

    • Programming will need to restrict access to database

    • Use record locking to stop edits if someone else has access to the data

  • Different users will have different response times

    • Processor can still handle other requests

    • So the perofrmance of other users is not affected

15
New cards

What is a decision

A result reached after some consideration

16
New cards

exmples of decisions in designing programs

Choosing the paradigm used, deciding how different pieces of information are collected, choosing programming language, input devices, output devices

17
New cards

How to simplify the decision making process

Limit the possible solutions. Eg which programming language is feasible to use based on its suitability to the problem, whether it provides enough functionality, how easy it is to learn given time constraints etc

18
New cards

decision shape in flow chart

diamond

19
New cards

Conditions that affect the outcome of a decision

Evaluate effectiveness, convenience, and feasibility. This might vary depending on purpose and end-users

20
New cards

Importance of thinking logically

allows you to plan and prepare for different scenarios as it provides foresight into the decisions made throughout the whole program. Good decision making is key to solving problmes effectively

21
New cards

Inputs

any data required to solve a problem

22
New cards

Outputs

results that are passed back once the inputs have been processed

23
New cards

Preconditions

requirements which must be met before a program can be executed

24
New cards

why have preconditions on subroutines

ensures that subroutines can safely expect the arguments passed to it to meet certain criteria. Preconditions can be tested for within the code by are more often included in the documentation

25
New cards

Why include preconditions in the documentation

reduces the length and complexity of the program; saves time need to debug and maintain a longer program; code is more reusable

26
New cards

what is caching

the process of storing instructions or values in cache memory after they have been used, as they may be used again. Very common in the storage of web pages so content can be loaded without any delay

27
New cards

Pros of caching

saves time as slower RAM is less frequently accessed; images do not have to be downloaded multiple times, freeing up bandwidth for other tasks

28
New cards

what is prefetching

when algorithms predict which instructions are likely soon to be fetched. The instructions and data are then loaded and stored in cache before they are fetched. Less time is spent waiting for instructions to be loaded into RAM from the hard disk

29
New cards

Limitations of prefetching

depends on the accuracy of algorithms used as they can only provide an informed prediction and there is no guarantee tat this will be right

30
New cards

Cons of caching

the effectiveness depends on how well the caching algorithm is able to manage the cache. Larger caches can still take a long time to search and so cache size limits how much data can be stored. Therefore difficult to implement

31
New cards

What are reusable program components

commonly used functions packed into libraries for reuse

32
New cards

Decomposition

broken down into smaller, simpler tasks

33
New cards

Pros of decomposition

developers can identify the program components developed in the past that can be reused to simplify the process

34
New cards

Pros of reusable components

more reliable as they have been already tested; saves time and money and resources; can be reused in furutre projects, saving development costs

35
New cards

Limitations of reusable components

May not always be possible to integrate existing components developed by third parties due to compatibility issues with the rest of the software. These components may need to be modified to work with existing software, which can be more costly and time consuming than developing them in house

36
New cards

define abstraction

the process of removing unnecessary details from a problem

37
New cards

representational abstraction

analysing what is relevant and simplifying a problem based on this information

38
New cards

Abstraction by generalisation

grouping together similarities within a problem tp identify what kind of problem it is

39
New cards

why do abstraction by generalisation

allows certain problems to be categorised as being of a particular type so a common solution can be used to solve these problems

40
New cards

Data abstraction

details about how data is being stored are hidden. Programmers can make use of abstract data structures without concerning themselves about how they are implemented.

41
New cards

Procedural abstraction

Programmers can perform functions without having knowledge about the code used to implement this functionality.. Once a procedure has been coded, it can be reuses as a black-box

42
New cards

Levels of abstraction

the highest levels of abstraction are closes to the user and are usually responsible for providing n interface to the user to interact with hardware. Lowest levels of abstraction are responsible for actually performing these tasks through the execution of machine code

43
New cards

Pros of abstraction

allows non experts to make used of a range of systems or models by hiding info that is too complex; more efficient design as programmers can focus on the key elements; less time spent coding;

44
New cards

why are levels of abstraction used

to handle large, complex problems by separating tasks - higher levels deal with user interaction while low levels execute machine code

45
New cards

what is meant by layers of abstraction in programming languages

the distinction between low-level and high-level languages - each layer hides complexity from the one above it

46
New cards

low level vs high level langauges 

low level is closer to machine code, harder write and requires hardware knowledge; high level is easier to lear and closer to natual language and hides machine-lvel detail 

47
New cards

how does the TCP/IP use abstration

it divides network communication itno four laters, each handlind a different function and hiding details from the others

48
New cards

why are standards important in layered in layered models it TCP/IP?

they ensure compatability and allow layers to work independently while following agreed protocols

49
New cards

abstraction vs reality 

abstraction simplifies real-world entities into computational models like variables or objects 

50
New cards

how does OOP use abstraction

objects represent real-world entities, attributes model characterisitics and methods model actions

51
New cards

what does designing a solution involve

thinking ahead about how different components of a problem will be handled in the best way possible

52
New cards

why is thinking ahead important 

it helps developers anticipae potential issues and make programs easy and inuitive to use 

53
New cards

what are the three main parts of any computations problem

inputs, processing and outputs

54
New cards

what are te inputs in a computational problem

data entered into a system by the user that is required to solve a problem

55
New cards

what are outputs in a computational problem 

the results produced after the iputs have been processed 

56
New cards

what must designers decide when handling input and ot=utput

suitable data types, data structures and methods to capture and present the solution

57
New cards

what order should designers consider inputs and outputs

start by identifying required outputs, then determine the inputs and processing needed to achieve them

58
New cards

what are preconditions 

requirements that mist be met before a program or subroutine executes 

59
New cards

what happens if preconditions arent met

the prigram may fail to run or return ivalid results

60
New cards

why are preconditions useful

they let a subroutine safely assume that input arguments meet certain criteria

61
New cards

where can preconditions be defined 

within the code itself or in the documentaiton accompanying the program 

62
New cards

what does including preconditions in the documentation achieve

reduces program length and complexity, and saves debugging and maintenance time

63
New cards

why do peconditions promote reusability

they ensure necessary checks are made before execution so the subroutine can be safely reused

64
New cards

what is caching

storing recently used instructions or data in cache memory so they can be accessed faster later 

65
New cards

why is caching useful

it avoids repeatedly fetching data from slower secondary storage, saving time and improving performance

66
New cards

eg of caching

web browsers cache frequently visited pages to speed up loading and reduce bandwidth usage

67
New cards

what is prefetcing 

a technique where alogrithms predct and preload data or instryctions likely ot be needed soon 

68
New cards

what limits the effectiveness of prefetching and caching

accuracy of prediciton alogrithms and the limited size and search speed of cache memory

69
New cards

main advanatge of caching and prefetching

significantly improved performance if implemented correctly

70
New cards

what are reusable program components 

pre-written, tested pieces of code that can be used in multiple programs 

71
New cards

where are reusable components stored

in libraries

72
New cards

why is decomposition useful when designing software

it breaks the problem into smaller tasks, making it easier to identify reusable components

73
New cards

eg of reusable components 

stacks, queues, classes, subroutines 

74
New cards

pros of reusable components

savs time, money and resources sunce theyre already tested and reliable ; can be reused in future projects so reduces development costs

75
New cards

limitation of reusable components

compatability issues may arise which may require modification work which may be more costly than developing in-house

76
New cards

why is thinking procedurally useful

it simplifies the program design, allows easier testing and debugging, enables teamwork by dividing tasks, and makes t easier to modify and reuse components later

77
New cards

what is the first stage of thinking procedurally 

probelm decomposition - taking the problem defined by the user and breaking it down into smaller subproblems that are easier to solve 

78
New cards

define problem decomposition

the process of splitting a large,cimplex problem into smaller, more manageable subproblems, each which can be solved separately

79
New cards

pros of problem decomposition

makes the overall problem easier to manage, allows different peopple to work on different parts accoridng to their skills, and supports modular, testable program design

80
New cards

top-down design 

involves starting with the overall problem and progressively breaking it into smaller and smaller subproblems until each can be implemented as a single, specific task

81
New cards

pros of top down design

It helps structure complex problems into logical levels, where higher levels show the overall structure, and lower levels define detailed tasks. This allows clearer design, independent development, and easier testing.

82
New cards

aim of top-down design

o keep decomposing the problem until each subproblem can be represented as a single, self-contained task or subroutine that can be coded and tested individually

83
New cards

what ahppens after all the components are identified

They are combined and integrated into a complete working program, ensuring that each subroutine interacts correctly with others

84
New cards

Why is the order of operations important when combining subroutines?

Some subroutines depend on data from others. Executing them in the wrong order can cause errors or illogical results, so programmers must plan the correct sequence of operations

85
New cards

when can subroutines be executed simultaneously

iProblem decomposition → Split problem into subproblems

  • Top-down design → Refine subproblems into simple tasks

  • Identify components → Decide how to implement each part

  • Combine solution → Integrate subroutines into a full program

  • Determine execution order → Arrange subroutines logically and efficientlyf they don’t depend on the same data or inputs, multiple subroutines can be executed simultaneously (parallel execution)

86
New cards

summarise thinking procedurally 

  • Problem decomposition  

  • Top-down design

  • Identify components

  • Combine solution

  • Determine execution order

87
New cards

define a decision

The result reached after some consideration

88
New cards

why is decision making important

it allows programmers to choose the most effective approach for solving a problem

89
New cards

eg of making decisions in software development

choosing the programming paradigm, choosing input and output devices, deciding how to collect and process data

90
New cards

how to simplify the decision making process

by narrowing down possible options based on feasibility, functionality and familiarity - eg choosing a programming language that suits the problem

91
New cards

why is it important to identify where decisions need to be made

so enough info can be gathered about the available options, allowing informed secisions that lead to more effective and efficient solutions

92
New cards

main factors influencing the outcome of decisions

effectiveness, convenience, feasibility 

93
New cards

how to evaluate factors when making decisions

rank the factors by importance. this prioritisation hekps determine the most suitable option

94
New cards

what is the effect of decisions on a program’s flow

they determine the route the program follows. depending on the user’s input or internal logic, different sections of the code may execute, leading to varied outcomes

95
New cards

thinking logically meaning 

identifying where and when decisions must be made, planning all possible outcomes and structuring the program to handle each scenario appropriately

96
New cards

summarise decision making

  • Identify where decisions need to be made

  • Gather information and options

  • Evaluate options based on effectiveness, convenience, and feasibility

  • Prioritise key factors

  • Choose and implement the best solution

  • Reflect on the decision’s outcome and adjust if necessary

97
New cards

what is concurrent processing 

completing more than one task at a given time. This doesnt mean that mutiple tasks have to be done at once, it means different tasks are given slices of processor time to give the illusion that tasks are being performed simultaneously 

98
New cards

what is concurrent thinking

the mindset that allows you to spot patterns and parts of problems where concurrency can be applied

99
New cards

how to fetermine the parts of the problem that can be solved concurrently

first asses which parts of the problem are relatedand these can often be dealt concurrently

100
New cards

difference between concurrent processing and concurrent thinking 

concurrent processing uses a computer processor while thinking uses your brain 

Explore top flashcards

flashcards
Unit 5 #53-103
53
Updated 341d ago
0.0(0)
flashcards
Q3 SOC SCI QE chapter 12
38
Updated 1118d ago
0.0(0)
flashcards
Personal Finance Midterm Vocab
22
Updated 1174d ago
0.0(0)
flashcards
Chapter 3 Key Concepts
31
Updated 188d ago
0.0(0)
flashcards
Unit 5 #53-103
53
Updated 341d ago
0.0(0)
flashcards
Q3 SOC SCI QE chapter 12
38
Updated 1118d ago
0.0(0)
flashcards
Personal Finance Midterm Vocab
22
Updated 1174d ago
0.0(0)
flashcards
Chapter 3 Key Concepts
31
Updated 188d ago
0.0(0)