Module 1: Pillars of Computational Thinking
Learning Outcomes
Describe the four pillars of computational thinking and their benefits
Apply the pillars of computational thinking to solving a problem
Represent an algorithm using a flowchart
What is computational thinking? Why is it important?
approach to solving problems using concepts and ideas from computer science, and expressing solutions to those problems so that they can be run on a computer
involves breaking down a problem in smaller parts, looking for patterns in those sub-problems, figuring out what information is needed, and developing a step-by-step solution
will give you a foundation for solving problems, and will be one of the fundamental core skills in all walks of life in the 21st century
can be used to solve problems that have real-world social impact
examples
mapping the human genome
predicting the spread of infectious disease
coordinating disaster relief efforts
understanding the impact of government policies
Pillars of computational thinking: decomposition, pattern recognition, data representation and abstraction; algorithms
Decomposition
breaking a complex problem into more manageable subproblems
putting the solutions to the subproblem together gives a solution to the original, complex problem
example:
writing a paper—you build an outline for the paper first
Pattern Recognition
finding similarities or shared characteristics within or between problems
makes the problem easier to solve since the same solution can be used for each occurrence of the pattern
Data Representation and Abstraction
determining what characteristics of the problem are important and filtering out those that are not
use these to create a representation of what we are trying to solve
Algorithms
step-by-step instructions of how to solve a problem
identifies what is to be done (the instructions), and the order in which they should be done
What is an instruction?
often expressed as something humans understand
eventually translate into sequences of computer instructions
can be described in English, as a flowchart or by using pseudocode