Lesson 0.4: Computational Thinking: Decomposition
Learning Objectives:
Students will learn how to solve big problems by decomposing them into smaller parts.
Students will invent (on paper) an app idea with a number of interconnected components.
Do Now:
Watch: What is Decomposition?
Explore:
Activity Part 1: Read
What is Decomposition?
The process of breaking down a problem into smaller manageable parts is known as decomposition. Decomposition helps us solve complex problems and manage large projects.
This approach has many advantages. It makes the process a manageable and achievable one – large problems are daunting, but a set of smaller, related tasks are much easier to take on. It also means that the task can be tackled by a team working together, each bringing their own insights, experience and skills to the task.
The problem of making breakfast can be decomposed into a number of tasks:
Decomposition is particularly important if we are trying to understand things that are complex. Sometimes we break parts down further.
Why is decomposition important in Computer Science?
Decomposing problems into their smaller parts is not unique to computing: it’s a common way to design and build things.
Software development is a complex process, and so being able to break down a large project into its component parts is essential.
The same is true of computer hardware: a smartphone or a laptop computer is itself composed of many components, often produced independently by different manufacturers and assembled to make the finished product, each under the control of the operating system and applications (think of Microsoft and Windows, or Macintosh and iOS).
Activity Part 2: Creating an App
Imagine that you want to create your first app. This is a complex problem - there are lots of things to consider.
To decompose this task, you would need to know the answer to a series of smaller problems:
What kind of app you want to create
What your app will look like
Who the target audience for your app is
What your graphics will look like
What audio you will include
What software you will use to build your app
How the user will navigate your app
How you will test your app
Where you will sell your app
(This list has broken down the complex problem of creating an app into much simpler problems that can now be worked out. You may also be able to get other people to help you with different individual parts of the app. For example, you may have a friend who can create the graphics, while another will be your tester.)
In small groups -
On a clean sheet of paper, invent a new idea for an app.
Put the names of all your group members on the paper.
Using this list, break down your idea into all the smaller steps.
What kind of app you want to create (what's it for?)
What your app will look like (fancy, simple, a game?)
Who the target audience for your app is (friends, family, classmates?)
What your graphics will look like (line art, 2D, 3D?)
What audio you will include (will you create a sound design to go with it?)
What software you will use to build your app (you can guess)
How the user will navigate your app (how does someone use it?)
How you will test your app (how will you know if it's working?)
Where you will sell your app (iPhone App store? Android store?)
Lesson 0-4 Wrap Up:
Discussion:
Before computers can solve a problem, the problem and the ways in which it can be resolved must be understood.
Decomposition helps by breaking down complex problems into more manageable parts.
What kind of app do you want to create?
How did you decompose your app idea?
Differentiation
It is not necessary to watch the whole "do now" video, just the first 3-4 minutes.
Students can be grouped by variety of levels to come up with the app idea.