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 that involves the removal of unnecessary elements to arrive at a problem that only includes the key features

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

representational abstraction
(ignore for now)

A

the process of analysing what is relevant to a given 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
(ignore for now)

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
(ignore for now)

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
(ignore fornow)

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
(ignore for now)

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
(ignore for now)

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
(ignore for now)

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
how to identify components to solution
each programmer must evaluate the component of the problem allocated to them and assess how it can best be solved.
26
what must a software developer do before designing a subroutine to solve a particular problem
see weather it is possible for an already existing sub-routine or module to be used
27
what do software developers need to consider when recombining components of a solution
the order in which subroutines are executed, and how they interact with each other, based on their role in solving the problem
28
two advantages of utilising reusable components
-more reliable than newly-coded components as they have already been tested -saves time, money and resources
29
2.1.4 thinking logically
uffff
30
what is a desicion
a result reached after some consideration. It is made whenever you have a choice to make
31
-what shape is given to decision icon in flowchart -how many options can u pick from
-a diamond -2, yes/no, true/false
32
Conditions that affect the outcome of a decision
- What is most effective? - What is most convenient? - Is this option reasonable?
33
how to make effective decisions
by evaluating the importance of different factors and selecting options that satisfy the needs of the task the most appropriately
34
how does the result of a decision affect the flow of a program
the program will follow a different route depending on the decision made by the user