2.1 elements of computational thinking Flashcards

1
Q

2.1.1 thinking abstractly

A

ughhhhh

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

what is abstraction?

A

a technique in which excessive details are removed to arrive at a representation of a problem that consists of only the key features

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

representational abstraction

A

the process of analysing what is relevant to a give scenario and simplifying a problem based on this information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

what is abstraction by generalisation

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

data abstraction

A

details about how data is being stored are hidden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

procedural abstraction

A

allows programmers to ignore the complexity of how a procedure is implemented and concentrate on its usage within the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what kind of problems make use of multiple levels of abstraction

A

large, complex problems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

how does abstraction allow non-experts to make use of a system

A

hides complex and irrelevant information in abstract models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

advantages of using abstraction in software development

A

-easier for programmer to focus on core elements

-reduces the time needed to be spent on the project

-prevents program from getting unnecessarily large

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

two applications of layers of abstracions

A

-networking (TCP/IP layer)
-programming languages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

TCP/IP model

A

an abstraction for how networks function. Consists of 4 layers:
-application
-transport
-network
-link

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

advantages of using abstraction in programming languages

A

-easier to remember syntax in high level language as it is closer to natural language
-coding becomes accessible for beginners

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

what is the difference between abstraction and reality

A

abstraction is a simplified representation of reality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

how are real world entities represented

A

using computational structures such as tables and databases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

how does object-oriented programming use abstraction

A

-objects are an abstraction for real world entities
-attributes are an abstraction for the characteristics of an object
-methods are an abstraction for the actions a real-world object is able to perform

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

when devising an abstract model u must consider:

A

-what is the problem that needs to be solved by the model?
- How will the model be used?
-Who will the model be used by?
- Which parts of the problem are relevant based on the target audience and the
purpose of the model?

17
Q

2.1.3 thinking procedurally

18
Q

what is the first stage of thinking procedurally

A

taking the problem defined by the user and breaking it down into its component parts

19
Q

problem decomposition

A

a large, complex problem is continually broken down into smaller subproblems which can be solved more easily

20
Q

what is the purpose of problem decomposition

A

to make complex problems easier to solve and more manageable by allowing tasks to be divided between a group of people according to individual skill sets

21
Q

another name given to top-down design

A

stepwise refinement

22
Q

what is the purpose of top-down design

A

continually breaks problems down into
subproblems until each subproblem can be
represented as a single task and ideally a self-contained subroutine or module

23
Q

benefits of using top-down design

A

-problems can be solved and modules developed by different people
-tasks can be tested separately. Modules are self-contained

24
Q

what type of problem is top-down design suited for

A

large, complex problems

25
Q

how to identify components to solution

A

each programmer must evaluate the component of the problem allocated to them and assess how it can best be solved.

26
Q

what must a software developer do before designing a subroutine to solve a particular problem

A

see weather it is possible for an already existing sub-routine or module to be used

27
Q

what do software developers need to consider when recombining components of a solution

A

the order in which subroutines are executed, and how they interact with each other, based on their role in solving the problem

28
Q

two advantages of utilising reusable components

A

-more reliable than newly-coded components as they have already been tested
-saves time, money and resources

29
Q

2.1.4 thinking logically

30
Q

what is a desicion

A

a result reached after some consideration.
It is made whenever you have a choice to make

31
Q

-what shape is given to decision icon in flowchart
-how many options can u pick from

A

-a diamond
-2, yes/no, true/false

32
Q

Conditions that affect the outcome of a decision

A
  • What is most effective?
  • What is most convenient?
  • Is this option reasonable?
33
Q

how to make effective decisions

A

by evaluating the importance of different factors and selecting options that satisfy the needs of the task the most appropriately

34
Q

how does the result of a decision affect the flow of a program

A

the program will follow a different route depending on the decision made by the user