Αρχική » Άρθρα με ετικέτα '4. abstraction'

Αρχείο ετικέτας 4. abstraction

Dimensions of Computational Thinking in COMPUT project

When we started working on the project Computational Thinking at School, our plan was to study the following dimensions of Computational Thinking

  1. creative problem solving
  2. algorithmic approach to problem-solving
  3. problem solution transfer
  4. logical reasoning
  5. abstraction
  6. generalization
  7. representation and organization of data
  8. systemic thinking
  9. evaluation
  10. social impact of computation

While working on the dimensions, it proved that we had to follow a different categorization. The dimensions 1. creative problem solving, 8. systemic thinking and 10. social impact of computation are studied together with Computational Thinking and approaches to Computational Thinking. The dimensions 3. problem solution transfer and 6. Generalization were included in the new dimension pattern. A new dimension, decomposition was added.

The dimensions of Computational Thinking that will be studied are the following

  1. algorithms
  2. pattern
  3. logical reasoning
  4. abstraction
  5. decomposition
  6. evaluation

The categorization follows Barefoot Computing at school 

Barefoot Abstraction

abstraction

What is abstraction?

Abstraction is about simplifying things – identifying what’s important without worrying too much about detail.

A school timetable is an abstraction of what happens in a typical week. It shows key information about classes, teachers, rooms and times but ignores further layers of detail such as learning objectives and activities.

An example of a school timetable.

A class timetable is an abstraction of the school day for one class.
Much is omitted, to provide a simplified summary.

Why is abstraction important?

Abstraction allows us to think about things to different degrees of detail. It’s a powerful tool in computer science, where it’s used to manage the complexity in much of what’s designed and created.

We can think of abstractions as layers, or boxes within boxes, allowing us to disregard what’s going on inside each of them. Software comprises layers of code, each hiding the complexity of the next. We can see items of hardware as “black boxes”, disregarding their internal workings unless we choose to look deeper.

What does abstraction look like in the curriculum?

Working with word problems in maths often involves identifying key information and thinking how to represent it in the more abstract language of arithmetic. A book can be abstracted to a story plan. Music is abstracted to notation. Models are abstractions. In geography, a map can be considered an abstraction of the complexity of the environment, and maps of different scales provide a sense of the layered nature of abstraction in computing.

Pupils can also gain experience of abstraction when playing computer games, appreciating that these interactive simulations are based on real life but are simpler.

A class storyboard for an episode of Dr Who.

A story plan summarizes a story, providing an abstraction of the story which shows just its key features.

Musical notation for a song called "First Pop Song".

Music is abstracted to musical notation.

More resources on abstraction by BBC

BBC Abstraction test

Visit BBC site to take Abstraction test

More tests on Computational Thinking by BBC 

BBC Abstraction in practice

How to abstract

Abstraction is the gathering of the general characteristics we need and the filtering out of the details and characteristics that we do not need.

When baking a cake, there are some general characteristics between cakes. For example:

  • a cake needs ingredients
  • each ingredient needs a specified quantity
  • a cake needs timings

When abstracting, we remove specific details and keep the general relevant patterns.

General patterns Specific details
We need to know that a cake has ingredients We don’t need to know what those ingredients are
We need to know that each ingredient has a specified quantity We don’t need to know what that quantity is
We need to know that each cake needs a specified time to bake We don’t need to know how long the time is

Creating a model

A model is a general idea of the problem we are trying to solve.

For example, a model cat would be any cat. Not a specific cat with a long tail and short fur – the model represents all cats. From our model of cats, we can learn what any cat looks like, using the patterns all cats share.

Similarly, when baking a cake, a model cake wouldn’t be a specific cake, like a sponge cake or a fruit cake. Instead, the model would represent all cakes. From this model we can learn how to bake any cake, using the patterns that apply to all cakes.

Once we have a model of our problem, we can then design an algorithm to solve it.

BBC Abstraction

What is abstraction?

Abstraction is one of the four cornerstones of Computer Science. It involves filtering out – essentially, ignoring – the characteristics that we don’t need in order to concentrate on those that we do.

In computational thinking, when we decompose problems, we then look for patterns among and within the smaller problems that make up the complex problem.
Abstraction is the process of filtering out – ignoring – the characteristics of patterns that we don’t need in order to concentrate on those that we do. It is also the filtering out of specific details. From this we create a representation (idea) of what we are trying to solve.

What are specific details or characteristics?

In pattern recognition we looked at the problem of having to draw a series of cats.

We noted that all cats have general characteristics, which are common to all cats, eg eyes, a tail, fur, a liking for fish and the ability to make meowing sounds. In addition, each cat has specific characteristics, such as black fur, a long tail, green eyes, a love of salmon, and a loud meow. These details are known as specifics.

In order to draw a basic cat, we do need to know that it has a tail, fur and eyes. These characteristics are relevant. We don’t need to know what sound a cat makes or that it likes fish. These characteristics are irrelevant and can be filtered out. We do need to know that a cat has a tail, fur and eyes, but we don’t need to know what size and colour these are. These specifics can be filtered out.

From the general characteristics we have (tail, fur, eyes) we can build a basic idea of a cat, ie what a cat basically looks like. Once we know what a cat looks like we can describe how to draw a basic cat.

bbc cat stamp 2

Why is abstraction important?

Abstraction allows us to create a general idea of what the problem is and how to solve it. The process instructs us to remove all specific detail, and any patterns that will not help us solve our problem. This helps us form our idea of the problem. This idea is known as a ‘model’.

If we don’t abstract we may end up with the wrong solution to the problem we are trying to solve. With our cat example, if we didn’t abstract we might think that all cats have long tails and short fur. Having abstracted, we know that although cats have tails and fur, not all tails are long and not all fur is short. In this case, abstraction has helped us to form a clearer model of a cat.

More resources on abstraction by BBC 

Google / Abstraction

Facilitating Software and Game Development though Abstraction

Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση