topic: computational thinking Flashcards

(12 cards)

1
Q

What computational method is being defined in the following?
“It involves filtering out, or essentially, ignoring, the characteristics that we don’t need in order to concentrate on those that we do. i.e ignoring the irrelevant details of any given problem”

A

Abstraction

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

What are reasons for abstraction

A
  • Reduces design and programming time
  • Reduces complexity of a program / easier to read and understand
  • Focus on the main purpose of the program
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

what are the 5 main parts to computational thinking

A

thinking abstractly
thinking ahead
thinking procedurally
thinking logically
thinking concurrently

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

what does thinking abstractly mean

A

Hiding details and identifying and highlighting key elements

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

what does thinking ahead mean

A

What inputs / outputs will you need

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

what does thinking procedurally mean

A

Order of events / subproblems

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

what does thinking logically mean

A

Decisions to be made

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

what does thinking concurrently mean

A

What can be done at the same time

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

what are the two types of abstraction

A
  1. data abstraction
    variables: represent real-world values e.g “Anna”, or “21/01/2019”
    objects: in Object Oriented Programming (OOP) a class is an abstract representation of something with attributes and methods e.g a dog or person
    Data structures: arrays, stacks and queues
  2. problem abstraction
    when faced with a problem deciding which factors are relevant to the problem and solution e.g
    networks, database systems (E-R diagram), operating systems (device drivers, flight simulator, weather system, GPS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

for thinking procedurally

what are the advantages for a top down design

A
  1. the problem is easier to understand, program, test and maintain
  2. shows clearly how different parts of the problem relate to each other
  3. division of labour - different teams working on different parts of the problem independently
  4. may make code more modular as it broken into smaller subroutines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

for thinking procedurally

what are the disadvantages for a top down design

A
  1. it assumes that the whole solution to the problem is knowable in advance
  2. poorly understood programs are hard to decompose
  3. not every problem can be broken down in this way, for example event driven programs like GUIs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

identify 3 reasons why abstraction is needed in a rail network program

A
  • reduces processing requirements
  • simplifies programming
  • reduces memory requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly