Week 3 - Computational thinking Flashcards
What is computational thinking?
its not merely knowing how to use an algorithm or a data structure, but, when faced with a problem, to be able to analyse it with the techniques and skills that computer science puts at our disposal.
What is a computational problem.
A computational problem is described as a problem that is expressed sufficiently precisely that it is possible to attempt to build an algorithm to solve it.
what two skills does computational thinking consist of?
- formulate a problem as a computational problem
- Construct a good computational solution (i.e. an algorithm) for the problem, or explain why there is no such solution.
describe the Diagrammatic representation of abstraction as modelling.
Model > > Represented ignores /modelled detail of by
What is encapsulation ?
The layer through which the user interacts with the model is called the interface. It hides the detailed workings of the model from the user.
describe the two layers involved in abstraction as encapsulation.
the interface: a layer through which users interact with the model.
hides depends
detail from on
The implementation: a layer that implements the model.
How does abstraction as modelling help to manage complexity?
this is done by discarding infomration: we abstract away all that is irrelevant, to leave a model that contains only what is actually of interest.
How does abstraction as encapsulation help to manage complexity?
it is done by hiding information: we encapsulate the details of an implementation/automation (of a model) behind an interface.
Think of the computational thinking diagram, describe where modelling and encapsulation fit into this diagram.
Modelling is involved when one creates an abstraction for a physical-world phenomenon. Modelling results in a mathematical model which can then be automated. To deal with the complexity of automating a model, one can use encapsulation.
Try to draw or explain the Computational thinking Overview Diagram
diagram to come