video

Lesson video

In progress...

Loading...

Hello, my name is Mrs. Holborow, and welcome to Computing.

I'm so pleased that you've decided to join me for the lesson today.

Today we're going to be investigating the computational thinking skills of abstraction, algorithmic thinking, and decomposition.

Welcome to today's lesson from the unit Algorithms. This lesson is called Computational Thinking, and by the end of today's lesson, you'll be able to use computational thinking techniques to help solve problems. Shall we make a start? We will be using these key words throughout today's lesson.

Computational thinking.

Computational Thinking, a structured approach to solving problems. Decomposition.

Decomposition, to break problems down into smaller, more manageable sub-problems. Abstraction.

Abstraction, to focus on the important parts of a problem and ignore the irrelevant details.

Algorithmic thinking.

Algorithmic thinking, to consider the solution to a problem as a series of logical step-by-step instructions.

Today's lesson is split into three sections.

We'll start by decomposing a problem.

We'll then move on to simplify a problem using abstraction, and we'll finish by using algorithmic thinking.

Let's start by decomposing a problem.

Imagine you are creating a new app for a smartphone.

What things will you need to consider? Maybe pause the video here whilst you have a think.

Did you manage to come up with some ideas? Let's share some ideas together.

So you may consider the target users.

This means who is actually going to be using the app? You may have to consider the function of the app.

So what is it actually going to do? You're going to need to consider the style and look.

So the appearance of the app.

You're going to need to consider the build software.

So how are you actually going to create the app.

If you're gonna need any sound or music.

And the target platform.

So which devices do you want your app to work on? Did you have any others? There are of course many other things to consider.

So if you've got additional things to this list, then that's great.

Computational thinking is solving problems with a structured or logical approach.

By using computational thinking techniques, solutions can be found to both simple and complex problems. Computational thinking is about thinking about how problems can be solved.

People often use computational thinking without realising it when doing everyday things such as brushing teeth, cooking a meal, or planning a trip.

Decomposition is a computational thinking technique and can be used to help solve problems. Decomposition is the process of breaking problems down into smaller, more manageable sub-problems. It's a little bit like solving a jigsaw puzzle piece by piece.

Time to check your understanding.

Decomposition is the process of.

A, combining small problems into a more complex larger problem.

B, breaking down a larger problem into smaller, more manageable problems. Or C, finding a single solution to complex problems. Pause the video whilst you have a think.

That's right, decomposition is the process of breaking down a larger problem into smaller, more manageable problems. Decomposition can be used to plan a trip to the Eiffel Tower in Paris.

How would you decompose the problem of a trip to the Eiffel Tower into smaller problems? Maybe pause the video and have a think.

Decomposing a trip to the Eiffel tower could be done in many ways.

A logical starting point would be to break the problem down into smaller problems such as transport, tickets and food.

A structure diagram can be used to visualise a decomposed problem.

Let's have a look at an example.

So we have the main problem at the top, with branches below leading to the smaller sub problems. Structured diagrams provide a clear overview of the main problem and the smaller sub-problems that need to be solved.

A structure diagram can be used to visualise the decomposed problem of organising a trip to the Eiffel Tower.

So the main problem is the trip to the Eiffel Tower, and then the sub-problems are transport, tickets and food.

Do you think the problem is broken down enough to plan the trip? Decomposition can be used again if sub-problems are still not manageable.

So we can add another layer to our diagram.

By using decomposition, the main problem has been broken down into smaller, easier to solve problems. So here's our example of the trip to the Eiffel Tower again.

This time we're gonna break the transport down into further subtask or sub-problems. So UK to Paris and then Paris to the Eiffel Tower.

Tickets, we may need tickets for the elevator to go up to the Eiffel Tower.

And we may need tickets for a guided tour.

Food, we may need a packed lunch and we may go to the restaurant in the evening.

Time to check your understanding.

What is a sub problem? Is it A, a smaller part of the main problem.

B, a completely unrelated problem.

Or C, the final solution of the whole problem? Pause the video whilst you have a think.

That's right, a sub problem is a smaller part of the main problem, great work.

What can be used to visualise a decomposed problem? Is it A, a truth table.

B, a trace table.

Or C, a structure diagram? Pause the video whilst you have a think.

Did you select C? Great work.

A structure diagram can be used to visualise a decomposed problem.

True or false? A sub problem cannot be decomposed further into smaller problems. Pause the video whilst you have a think.

That's right.

It's false.

A sub problem can be decomposed into sub problems. This can be repeated for as many times until problems are manageable and easy to solve.

Okay, we've come to the first task of today's lesson and you are doing a fantastic job so far, so well done.

Aisha is making a game and is using decomposition to break the problem down into smaller problems. She needs the player to be able to move the character forward, turn left and turn right.

The player should also be able to pick up, use and drop items. Finally, she would like the player to be able to cast and learn new spells.

Complete the table for the decomposed player actions.

So you can see along the top we've got move, item and spells.

And then some items have already been added for you.

So we've got forward for move.

Pick up for item and cast for spells.

Pause the video whilst you complete the activity.

How did you get on? Great work.

So hopefully under the move column you've added turn left and turn right because the three movements for the game are forward, turn left and turn right.

Under item, hopefully you've added drop and use.

And then under spells you've added learn because the player should be able to cast and learn new spells.

You're doing a great job so far and we are now moving on to the second part of today's lesson where we are going to simplify a problem using abstraction.

Look at the image below.

What's the image of? What do you think are the most important features of a car without mentioning specific makes or models.

Maybe pause the video and have a think.

There are many important features of a car, but you may have thought of some important features such as, transportation, wheels and seats.

I'm sure you've thought of many more.

By thinking about the parts that matter the most.

We are using abstraction.

Abstraction is a computational thinking technique that can be used to simplify problems. Abstraction is about removing the details that don't matter so that the most important details of a problem are easier to focus on.

Abstraction can help reduce the complexity of problems and make finding solutions easier and faster.

Abstraction can be used to create maps.

For a map to be useful, it should be easy to read and must only contain information that the reader needs to navigate.

If a map has too much unnecessary detail, it can be hard to read and confusing.

Imagine creating a visitor map for a new theme park.

There are lots of details that could be added to the map.

Some details may be useful to a visitor.

Other details may not be useful at all.

Abstraction can be used to pick out the details that matter to visitors and should be included on the map.

Look at this list.

Which details do you think are the most important to include on a visitor map and which could be ignored? Maybe pause the video whilst you have a think.

Okay, let's have a think about which bits of information matter to visitors.

Visitor toilets, where the restaurant is located, where the roller coasters are, the river rapids.

Abstraction has been used to focus on the details that matter to the problem.

Visitors to the theme park are not gonna be interested in where the staff toilets or car park are, for example.

Lucas has a question.

"What about the other details? They are also important." Lucas has made a good point.

The other details are important to the theme park staff, but they may not be useful for the visitors, so can be left off the visitor map.

Time to check your understanding.

Abstraction increases the complexity of a problem so it takes more time to find a solution.

Is this true or false? Pause the video whilst you a think.

Did you select false? Well done.

Using abstraction reduces the complexity of a problem and makes solving the problem easier and faster.

Abstraction is about A, removing unnecessary details and focusing on the details that matter.

B, adding details to create a complex solution.

Or C, ensuring every detail is included in the solution.

Pause the video whilst you have a think.

Did you select A? Great work.

Abstraction is about removing unnecessary details and focusing on the details that matter.

Okay, we are moving on to the second task of today's lesson, and you are doing a great job so far so well done.

A graphic artist has designed part of the town for Aisha's game.

Aisha wants to perform and test player movements in her game, but she doesn't need all of the distracting details in the town design.

To test the player movements, Aisha only needs simple details of the path and buildings.

Use abstraction to draw a simplified map from the graphic artist's image of the game map.

Pause the video whilst you complete the activity.

How did you get on? Did you manage to use abstraction to draw a simplified map? Here's an example, so we've got the original image of the town and then we've got an abstracted image of the town with just the paths and the main buildings.

Aisha says, "It's easier to solve the programming problem now I've used abstraction to focus on the details that matter," great work Aisha.

Okay, we are coming to the final section of today's lesson, which is using algorithmic thinking.

Imagine you are guiding someone through a maze.

What instructions could you give that would be easy and useful to follow? There are many instructions that you could give.

A few examples are go forward, go backward, turn left, or turn right.

You can use algorithmic thinking to create step by step instructions.

Algorithmic thinking is a computational thinking technique that can be used to create solutions to problems. Algorithmic thinking is about designing step-by-step instructions that together solve a problem.

The step-by-step instructions that are designed to solve a problem known as an algorithm.

An algorithm is a bit like a recipe that can be followed to solve a problem.

Algorithmic thinking can be used to consider the steps needed to make a raspberry jam sandwich.

What steps would you need to go through to make the sandwich? Maybe pause the video whilst you have a think.

One way to make a raspberry jam sandwich would be to follow these steps.

Step one, get a slice of bread and spread butter on one side.

Two, get another slice of bread and spread raspberry jam on one side.

Step three, place the two slices of bread together, with the buttered and raspberry sides facing each other.

By using algorithmic thinking.

The steps to make a raspberry jam sandwich have been set out to create an algorithm.

Algorithmic thinking can also be used to consider the steps needed to travel from London to Paris.

There are many ways to travel from London to Paris.

What steps would you take to solve the problem? Pause the video whilst you have a think.

One way to solve the problem of travelling from London to Paris would be to follow these steps.

Step one, go to platform five at London St.

Pancreas station for 7:45 AM Step two, wait until 8:15 AM, then board carriage five of the train.

Step three, find seat 57 and sit down.

Step four, wait until the train arrives in Paris and get off.

Remember, there is more than one way to solve this problem.

This is just one solution.

By using algorithmic thinking, the steps to solve the problem have been set out to create an algorithm.

Time to check your understanding.

Algorithmic thinking is about, A, considering how to solve problems step by step.

B, solving problems in one step.

Or C, writing a computer programme.

Pause the video whilst you have a think.

That's right, algorithmic thinking is about considering how to solve problems step by step.

True or false.

The step-by-step instructions that are followed to solve a problem are known as algorithms. Pause the video whilst you have a think.

That's right.

It's true, well done.

Okay, time for our final task of today's lesson and you're doing a great job so well done.

Aisha is trying to solve the problem of moving the character from the large building to the small house.

The command forward moves the character forward in the direction that it is currently facing until it reaches a split in the path or a door.

The commands turn left and turn right, change the direction by 90 degrees relative to the character.

For part one, use algorithmic thinking to write a step-by-step solution to move the character from the large building to the small house.

For step two, write down and describe two or three additional character commands that might be useful and add additional fun to the game.

Pause the video whilst you complete the activity.

How did you get on? Great work.

For part one, you are asked to use algorithmic thinking to write step-by-step solution to move the character from the large house to the small house.

The algorithm to solve the problem could be described in many ways.

So remember, if your solution is slightly different, then that's okay.

So here we've got an efficient solution that is, forward, turn left, forward, turn right, forward, turn right, forward, turn right, forward.

Aisha says, "I think the steps are easy to follow in this algorithm.

I did find it quite tricky at times to think about which way to turn though!" For part two, you were asked to write down and describe two or three additional character commands that might be useful and add additional fun to the game.

Aisha's got a sample answer here.

"It would be good to give the character the ability to move backward, jump and cast a spell.

The move backward command would move the character in the opposite direction to the way it's facing until it reaches the end of the path without turning around.

The jump command would let the character jump over obstacles in the path.

The cast a spell command would throw a potion in the direction the character is facing.

The extra commands would make the game more fun." I think I agree.

Aisha, it sounds like a great game.

Okay, we have come to the end of today's lesson and you've done a fantastic job, so well done.

Let's summarise what we have learned together.

Computational thinking is about solving problems with a structured and logical approach.

Decomposition is used to break down a problem into smaller sub-problems. Abstraction is used to focus on the important details of a problem.

And algorithmic thinking is used to create a series of logical step-by-step instructions to solve a problem.

We've come across a whole lot of new terminology today, so well done.

I hope you'll join me again soon.

Bye.