Computational Thinking

SCRATCH
COMPUTATIONAL THINKING
Unplugged Activities
Programming
Introduction
Conceptualising
Not only about programming
Not just technical details for using software
Fundamental skill
Not a role skill
A way human thinks
Not just one more thing to add to curriculum
Not a way computer think
Problem solving + critical thinking
Ideas
Not artifacts
How we use higher level thinking to create solution
CT Facets
CT Competences
Emphasises the importance of approaching problems in a systematic way
Generalisation
Abstraction
Problem Decomposititon
Algorithmic Design
Iteration
Debugging
Taking a/part of solution to a problem and generalizing it
To be applied to similar problems
Individuals to identify the most important aspects of problem
Break down problems into smaller and more manageable parts
Focusing on solving each part of problem
Focuses on creating step-by-step processes
To complete a task/solve a problem
Repeat design processes
To refine solutions, until the ideal result is achieved
Identify and fix error
Algorithmic Thinking
Critical Thinking
Problem Solving
Cooperativity
Creativity
The ability to think in a detailed way
By placing the proceedings in sequence to produce a solution
The ability to analyze and make assessment-oriented judgements
Lead to decision making
The ability to sustain in investigative processes
By generating solutions
The ability to help each other in learning with different methods
In accordance with a common purpose
The ability to develop genuine ideas
With the combination of existing ideas and new ideas
Through critical thinking and problem solving
CT Concepts
Sequences
CT Practices
Loops
Parallelism
Events
Conditionals
Operations
Data
A series of individual steps/ instructions that can be executed by the computer
A mechanism for running the same sequence multiple times
The sequences of instructions happening at the same time
One thing causing another thing to happen
The ability to make decisions based on certain conditions
Supports the expression of multiple outcomes
Provide support for mathematical/logical/string expressions
Enabling the programmer to perform numeric and string manipulations
Data involves storing, retrieving, and updating values
E.g: Variables
Incremental and Iterative
Testing and Debugging
Reusing and Remixing
Abstracting and Modularizing
Designing a project is a sequential process of first identifying a concept for a project
Then developing a plan for the design
Then implementing the design in code
Trial and error
Transfer from other activities
Support from knowledgeable others
Access to a wide range of other people's work
Allows designers to build on other people's work
Putting together collections of smaller parts
Or separating out the different behaviors/actions
CT Perspectives
Expressing
Connecting
Questioning
Sees computation as a medium and thinks "I can create"
Creativity and learning are deeply social practices
Can use computation to ask questions to make sense of computational things in the world
Benefits
Moves students beyond technology literacy
Creates problem solvers instead of software users
Emphasizes creating knowledge and designing processes that can be autamated
Encourages creativity and problem solving
Enhances many of the problem-techniques you already know and teach
Application
In Teaching and Learning
In K-12 Education Setting
How to solve problems by understanding the principles
CT as the automation of abstractions
Expose students to modeling and simulation
Encourage students to build their own models and simulations
Eg: Comp Bio, Comp Chem
Problem solving is abstracting existing knowledge and skills to solve an unanswered question
Elementary education
Music/Dance
Mathematics
Science
50