Thinking Abstractly Flashcards
What is computational thinking?
A way of solving problems, designing systems and understanding human behaviour that draws on concepts fundamental to computer science
What is abstraction?
It factors out details so a programmer can focus on working out a solution to a specific area and reduces the complexity of a problem making it easier to solve
Why do we need abstraction?
It allows controlled exposure to details as a series of layers if a problem is too complex to solve
What would skipping levels of abstraction lead to?
May lead to an increase in complexity
Is an accurate view of London from above abstraction or reality?
Reality - nothing added and nothing hidden. It is completely useless to give this map to someone unfamiliar with London and expect them to make a tube journey across the city.
Is an image of the London Underground map abstraction or reality?
Abstraction as it does not have details such as roads, houses, buildings etc. just the most useful information for navigating London’s underground system
Is an image of the complete Central line abstraction or reality?
Abstraction - no need to show any additional detail or complexity of other tube lines so is useful to show on the Central line only
What is an abstract model?
A way of representing a part of a problem that has been abstracted
What are examples of abstract models?
Diagrams, tables, maps, graphs
Positives of Abstraction
Allows you to make predictions
Negatives of Abstraction
- May be difficult to predict markets, users, trends and technical influences
- Too many variables may mean the scenario is too complex to model accurately
What is performance modelling?
The process of approximating how well models perform using mathematics based on the use of simulations and mathematical approximations without having to perform detailed testing.
Positives of performance modelling
- Simulations predict outcomes
- Cost effective, time saving and safety first approach
Negatives of performance modelling
- Requires accurate data
- Statistics (relevant data) is used to build the model
- Randomisation may be needed to model uncertainty
What are visualisations?
Allows us to create a mental image of what a program will do or how it will work