thinking abstractly Flashcards
computational thinking
thinking about HOW a problem can be solved:
- formulate it as a COMPUTATIONAL problem- state it in a way it is potentially solvable using an algorithm
- construct an algorithm to solve it
a solution should be ____ and you show this through
correct and efficient, show this through logical thinking, user feedback and test data
skills for computational thinking
think logically and apply tools and techniques of computing to - think about, -understand, -formulate, -solve problems
computing in terms of abstraction
automation of abstraction
- representation abstraction
representation arrived at by removing unnecessary details
eg of representation abstraction
car simulator, london underground
disadv of representation abstraction
the more it is simplified, the less it mimics reality
- abstraction in programming
most important feature of high level languages: distinction between what a program does and how it does it. frees programmers of tedious details of where variables are stored and how implemented
eg abstraction in programming
1960s BASIC and FORTRAN used X= A +5 (eg), freeing programmers of tedious details of where variables are stored and how implemented
- abstraction by generalisation
grouping by common characteristics to arrive at a hierarchal relationship of ‘is a kind’ type
eg of abstract by generalisation
KONIGSBERG problem: Euler removed irrelevant details-> graph theory with nodes and edges. He made possible the solution of many similar problems via abstraction
eg abstract by generalisation 2
object orientated programming: classes with attributes. behaviours/methods/procedures. subclasses of class ‘Animal’ sharing common characteristics but with different attributes
- data abstraction
details of data representation is hidden. Only know what it is and its behaviour
abstract data types
e.g. queue: logical description of how data is viewed and operations that can be performed on it. only need to know of queue OPERATIONS , not of pointers and implementation
- problem abstraction
removing details until the problem is solvable because it has been reduced to a problem that has already been solved