You are on page 1of 41

Computational Thinking

Unit Learning Outcomes


• By the end of this unit, students will be able to:

• Describe the concept of computational thinking

• Describe the pillars of computational thinking

• Provide examples of computational thinking in daily life

• Discuss the benefits of engaging in computational thinking in daily


life

• Describe programming languages

Image source: Google Image


What is Computational Thinking?
• The term computational thinking was coined by
American computer scientist Jeanette Wing
• Computational thinking (CT) is a problem solving
process, using concepts from computer science
• CT can be seen as computer science-inspired ways of solving
problems
• Computer science is the study of computers, computation and its
application using computers
• However, computational thinking is NOT programming
• CT includes the skills and ways of thinking that are used when
writing computer programs
• These skills and ways of thinking can be used anytime you want
to develop steps to solve a problem (in any area or topic)

Image source: Google Image


https://computationalthinkingcourse.withgoogle.com
What is Computational Thinking?
• Computational thinking allows us to take a complex
problem, understand what the problem is and develop
possible solutions.
• CT is essential to the development of computer
applications, but it can also be used to support problem
solving across all disciplines, including math, science,
and the humanities.

Image source: Google Image


https://computationalthinkingcourse.withgoogle.com
What is Computational Thinking?
The Operational Definition of Computational Thinking, by The
International Society for Technology in Education (ISTE) and the Computer
Science Teachers Association is:
Computational Thinking is a problem-solving process that includes (but
not limited to) the following characteristics:
• Formulating problems in a way that enables us to use a computer and
other tools to help solve them.
• Logically organizing and analyzing data
• Representing data through abstractions such as models and simulations
• Automating solutions through algorithmic thinking (a series of ordered
steps)
• Identifying, analyzing, and implementing possible solutions with the
goal of achieving the most efficient and effective combination of steps
and resources
• Generalizing and transferring this problem solving process to a wide
variety of problems

http://www.iste.org/docs/ct-documents/computational-thinking-operational-definition-flyer.pdf?sfvrsn=2
The Pillars of CT
• The pillars (techniques) of CT are:

Image source: https://www.bbc.com/education/guides/zp92mp3/revision


The Pillars of CT
• CT techniques involves:
1. Decomposition: Taking a complex problem and
breaking it down into small, more manageable parts
2. Pattern recognition: Find similarities/patterns/trends
among and within the problems
3. Abstraction: Focus only on important details and ignore
irrelevant information
4. Algorithms: Develop step-by-step
solutions/instructions/rules to solve the problem

• The algorithms can then be used to build models


to simulate, test and debug the solutions

Image source: Google Image


The Pillars of CT

Image source: https://www.edsurge.com/news/2016-08-06-what-s-the-difference-between-coding-and-computational-thinking


The Pillars of CT: Decomposition
• Decomposition is process of
breaking down a problem
into smaller manageable parts
• A set of smaller, related tasks
are much easier to handle
compared to a large problem
• Important for understanding
complex things
• Example: decomposing the
problem of making breakfast
into a number of tasks

https://barefootcas.org.uk/sample-resources/decomposition/
The Pillars of CT: Decomposition
• Decomposition examples:

• Solve a math question


• Organizing an event
• Labelling diagrams
• Planning projects
• Analyze a poem into meter,
rhyme, imagery, structure,
tone, diction, and meaning
• Deconstructing a bicycle into its
parts
• Solving a crime

https://barefootcas.org.uk/sample-resources/decomposition/
The Pillars of CT: Pattern Recognition
• Pattern recognition is the process
of finding
patterns/similarities/trends
among and within the problems
• By identifying patterns across
problems, we can make predictions
and create a common solution that
can be reused many times
• Problems are easier to solve when they share
patterns, because we can use the same
problem-solving solution wherever the
pattern exists.

• Example: analysts attempt to


predict future trends based on
historical patterns
https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/patterns/
The Pillars of CT: Pattern Recognition
• Pattern recognition examples:

• Forecast weather using weather


patterns
• Facial recognition systems
• Repeating melodies in music
• Common rules for spellings and
their exceptions
• Number sequences
• Sorting objects according to
similarities/differences
• Find cycle patterns in the rise and
drop of the country's economy

https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/patterns/
The Pillars of CT: Abstraction
• Abstraction is the process of
focusing on important details and
ignoring irrelevant information
• It is about simplifying things; decide
what needs to be highlighted and
what needs to be ignored
• Filtering details
• Abstraction allows us to create a
general idea of what the problem is
and how to solve it
• Example: drawing a few cats
• We do need to know a cat has fur, tail
and eyes
• We don’t need to know the size of the
tail or the colour of the fur/eyes

https://www.bbc.com/education/guides/zttrcdm/revision
The Pillars of CT: Abstraction
• Abstraction examples:

• London Underground Map by


Reginald Percy Gossop (1926),
then simplified by Henry Beck in
1933
• World Maps for specific
audience/use (government,
earthquake reporting, learning
geography)
• Calendars and timetables
• Concert programme listing
• Circuit board drawing
• Determine the rules for chemical
bonding and interactions
Image Source: Google
https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/abstraction/
The Pillars of CT: Algorithms
• An algorithm is a plan, a set of
step-by-step instructions to
solve a problem
• Each instruction is identified
and the order in which they
should be carried out is planned
• It must have a starting point, a
finishing point and a set of clear
instructions in between
• Example: baking a cake

https://www.bbc.com/education/guides/zpp49j6/revision/1
https://www.wiley.com/college/busin/icmis/oakman/outline/chap05/slides/algor.htm
The Pillars of CT: Algorithms
• Algorithm examples:

• Lesson plan
• Experiment method
• Storyboard
• Getting dressed to go out
• Prepare a meal
• Tie shoelaces
• Make a cup of coffee
• Completing an assignment
• Doing laundry
• Driving from home to a
destination
• Write a recipe for others to use

Image Source: Google


https://www.bbc.com/education/guides/zpp49j6/revision/1
The Pillars of CT: Algorithms
• Algorithms can be
represented using
pseudocode or flowchart
• Pseudocode
• A simple way of describing a
set of instructions that does not
have to use specific syntax
• Not a programming language

• Flowchart
• A diagram that represents a set
of instructions
• Normally use standard symbols
to represent the different
instructions
https://www.bbc.com/education/guides/zpp49j6/revision/3
The Pillars of CT: Algorithms
• Flowchart example:

• Flowchart symbols:

https://www.bbc.com/education/guides/zpp49j6/revision/3
Let’s try: CT to make Peanut Butter and Jelly
Sandwich

Materials:
• A jar of peanut butter
• A jar of jelly
• A loaf of sliced bread
• One butter knife

Your Task:
• What are the steps to
make a peanut butter
and jelly sandwich?
Examples of CT in Daily Life
• Looking up a name in an alphabetically sorted list
• Linear: start at the top
• Binary search: start in the middle
• Standing in line at a bank, supermarket, customs & immigration
• Performance analysis of task scheduling
• Putting things in your child’s knapsack for the day
• Pre-fetching and caching
• Taking your kids to soccer, gymnastics, and swim practice
• Traveling salesman (with more constraints)
• Cooking a gourmet meal
• Parallel processing: You don’t want the meat to get cold while you’re cooking the
vegetables.
• Cleaning out your garage
• Keeping only what you need vs. throwing out stuff when you run out of space.
• Storing away your child’s Lego pieces scattered on the living room floor
• Using hashing (e.g., by shape, by color)
• Doing laundry, getting food at a buffet
• Pipelining the wash, dry, and iron stages; plates, salad, entrée, dessert stations
• Even in grade school, we learn algorithms (long division, factoring, GCD, …)
and abstract data types (sets, tables, …).
Credit: Jeanette Wing, CT for Everyone
Examples of CT in Daily Life
• Looking up a name in an alphabetically
sorted list (Binary Search)
o e.g., 100 names per page in list of 150,000 names
o How to minimize the number of pages to look at?

• You and a friend are buying tickets


for a movie (Parallel Processing)
o There are 3 independent lines
o How do you get your tickets
ASAP?

Image Source: Google


Examples of CT in Daily Life
• CT in other Sciences, Math and Engineering

Biology
- Shotgun algorithm expedites sequencing of human genome
- DNA sequences are strings in a language
- Protein structures can be modeled as knots
- Protein kinetics can be modeled as computational processes
- Cells as a self-regulatory system are like electronic circuits

Brain Science
- Modeling the brain as a computer
- Vision as a feedback loop
- Analyzing fMRI data with machine learning

Credit: Jeanette Wing, CT for Everyone


Examples of CT in Daily Life
• CT in other Sciences, Math and Engineering

Chemistry
- Atomistic calculations are used to explore chemical
phenomena
- Optimization and searching algorithms identify best
chemicals for improving reaction conditions to improve yields

Geology
- Modeling the earth’s surface to the sun,
from the inner core to the surface
- Abstraction boundaries and hierarchies of
complexity model the earth and our atmosphere

Credit: Jeanette Wing, CT for Everyone


Examples of CT in Daily Life
• CT in other Sciences, Math and Engineering

Mathematics
- Discovering E8 Lie Group:
18 mathematicians, 4 years and 77 hours of
supercomputer time (200 billion numbers).
Profound implications for physics (string theory)
- Four-color theorem proof

Engineering (electrical, civil, mechanical, aero & astro,…)


- Calculating higher order terms implies
more precision, which implies reducing
weight, waste, costs in fabrication
- Boeing 777 tested via computer simulation alone,
not in a wind tunnel

Credit: Jeanette Wing, CT for Everyone


Examples of CT in Daily Life
• CT for Society

Economics
- Automated mechanism design underlies
electronic commerce, e.g., ad placement,
on-line auctions, kidney exchange
- Internet marketplace requires revisiting
Nash equilibria model

Social Sciences
- Social networks explain phenomena such
as MySpace, YouTube
- Statistical machine learning is used for
recommendation and reputation services,
e.g., Netflix, affinity card
Credit: Jeanette Wing, CT for Everyone
Examples of CT in Daily Life
• CT for Society
Medicine
- Robotic surgery
- Electronic health records require privacy technologies
- Scientific visualization enables virtual colonoscopy

Humanities
- What do you do with a million books?
Nat’l Endowment for the Humanities
Inst of Museum and Library Services
Law
- Stanford CL approaches include AI, temporal logic,
state machines, process algebras, petri nets
- POIROT Project on fraud investigation is creating a detailed
ontology of European law
- Sherlock Project on crime scene investigation
Credit: Jeanette Wing, CT for Everyone
Examples of CT in Daily Life
• CT for Society

Entertainment
- Games
- Movies
- Dreamworks uses HP data center to
renderShrek and Madagascar
- Lucas Films uses 2000-node data center to
produce Pirates of the Caribbean.

Arts Sports
- Lance Armstrong’s cycling
- Art (e.g., Robotticelli)
computer tracks man and
- Drama
machine statistics
- Music
- Synergy Sports analyzes
- Photography
digital videos NBA games
Credit: Jeanette Wing, CT for Everyone
Examples of CT in Daily Life
• Reflect on all the processes that take place in
your daily routine as well as those
implemented on campus.

• Can you think of CT examples?


Benefits of CT
• Computational thinking can be applied to any
discipline
• Learn how to approach new information and
new problems
• Think outside the box and apply to real-world
problems
• Problem solving is an essential 21st century
workplace skill
• CT is a problem solving process

Image Source: Google


Benefits of CT
• CT is beneficial for careers in any sector
• Thinking problems through and creating solutions – a
skill that makes a worker valuable
• More problem solvers, innovators, creators and
thinkers instead of fact memorizers or mere
users
• Present endless possibilities for creatively
solving problems
• CT skills can also be extended to learn
programming
• Today’s world is technology- and data- driven,
programming is a good skill to have
Image Source: Google
Programming Languages
• A programming language
is a set of words,
abbreviations, and symbols
that form instructions to a
computer or computing
device
• Programming languages
are used to write software,
programs and apps
• There are hundreds of
programming languages
that exist today

Credit: Discovering Computers 2018


Programming Languages
• Each language has its own syntax for writing the
instruction
• There are 2 types of programming languages:

High-level languages:
• Machine-independent
• Can run on many different Low-level languages:
types of computers and
operating systems • Machine-dependent
• Runs only on one particular type
of computer or device
Programming Languages
• Examples of programming languages:

C C# C++

Java JavaScript Python

Ruby BASIC FORTRAN

COBOL Prolog Pascal


Summary

Benefits of
Computational
Definition Computational
Thinking Concept
Thinking

Programming
Daily Examples The Pillars of CT
Languages
References/Credits
• Google (2018). Computational Thinking for Educators. Retrieved from
https://computationalthinkingcourse.withgoogle.com/
• International Society for Technology in Education (ISTE) (2018).
Operational Definition of Computational Thinking for K-12 Education.
Retrieved from http://www.iste.org/docs/ct-
documents/computational-thinking-operational-definition-
flyer.pdf?sfvrsn=2
• British Broadcasting Corporation (BBC) (2018). Introduction to
computational thinking. Retrieved from
https://www.bbc.com/bitesize/guides/zp92mp3/revision/1
• EdSurge (2018). What’s the Difference Between Coding and
Computational Thinking? Retrieved from
https://www.edsurge.com/news/2016-08-06-what-s-the-difference-
between-coding-and-computational-thinking
• BarefootCAS (2018). Computational Thinking. Retrieved from
https://barefootcas.org.uk/barefoot-primary-computing-
resources/concepts/computational-thinking/
References/Credits
• Wiley (2018). Chapter 5 Computer Software: An Algorithm: Baking
a Cake. Retrieved from
https://www.wiley.com/college/busin/icmis/oakman/outline/chap05
/slides/algor.htm
• Wing, J.M. (2006). Computational Thinking for Everyone. Retrieved
from exploringcs.org/wp-content/uploads/2010/09/Wing08.ppt
• Vermaat, M.E., Sebok, S.L., Freund, S.M., Campbell, J.T., and
Frydenberg, M. (2016). Discovering Computers 2016: Tools, Apps,
Devices, and the Impact of Technology. Singapore: CENGAGE
Learning.
• Vermaat, M.E., Sebok, S.L., Freund, S.M., Campbell, J.T., and
Frydenberg, M. (2018). Discovering Computers 2018: Digital
Technology, Data, and Devices. Singapore: CENGAGE Learning.

You might also like