1 of 21

Computational Thinking

Developing possible solutions to complex problems

2 of 21

What is Computational Thinking?

3 of 21

Four Cornerstones

  1. Decomposition
  2. Pattern Recognition
  3. Abstraction
  4. Algorithm Design

4 of 21

This is Computer Science!

Computational Thinking Concept

Computer Science Application

Break a problem into parts or steps

Break a computational graph problem into 4 sections, each one to be completed by a different computer processor

Recognise and find patterns or trends

Visualize data comparing microchip material and computer speed to notice a trend

Develop instructions to solve a problem or steps for a task

Write a computer program to sort data

Generalise patterns and trends into rules, principles or insights

Realise complex data structures require less code than complex programming

5 of 21

This is NOT Computer Science!

Computational Thinking Concept

Subject Area Application

Break a problem into parts or steps

Literature: Break down the analysis of a poem into analysis of meter, rhyme, imagery, structure, tone, diction, and meaning.

Recognise and find patterns or trends

Economics: Find cycle patterns in the rise and drop of the country's economy.

Develop instructions to solve a problem or steps for a task

Food Technology: Write a recipe for others to use.

Generalise patterns and trends into rules, principles or insights

Mathematics: Figure out the rules for factoring 2nd-order polynomials

Chemistry: Determine the rules for chemical bonding and interactions.

6 of 21

Some Examples...

7 of 21

Decomposition

  • Look around the room and (secretly) chose a person
  • Take it in turns to ask yes/no questions to guess the person e.g.:
    • “Are they wearing glasses?”
    • “Do they have blonde hair?”
  • Winner is first to guess who their partner is thinking of!

8 of 21

Decomposition

  • How many questions did you need?
  • What questions were useful?
  • What questions were not useful?
  • Did you refine your techniques? How?

9 of 21

Decomposition

  1. Look for key tasks and functions
  2. For each key task and function:
    1. Can we solve it in one go?
    2. If not, break it down into subtasks or functions
  3. Continue doing this until every task or function is as broken down and simple as possible

10 of 21

Decomposition

Chess Game

Make Changes

Insert Move

Draw Board

Change Player

Check if won

Verify Move

Enter Move

Change Position

11 of 21

Decomposition

  1. Draw board
  2. Insert move
    1. Enter move
      1. Enter x position of piece to move
      2. Enter y position of piece to move
      3. Enter x position to move to
      4. Enter y position to move to
    2. Verify move
    3. Change position of piece
  3. Make changes
  4. Check if won
  5. Change player turn

Chess Game

  1. Draw board
  2. Insert move
  3. Make changes
  4. Check if won
  5. Change player turn

  1. Draw board
  2. Insert move
    1. Enter move
    2. Verify move
    3. Change position of piece
  3. Make changes
  4. Check if won
  5. Change player turn

12 of 21

Decomposition

Rock, Paper Scissors

  • Create a game of Rock, Paper, Scissors
  • Decompose the problem into manageable steps:
    • Create a diagram
    • Create a numbered list

13 of 21

Decomposition

Rock, Paper Scissors - Discussion

  • Which method was easier?
  • Why?
  • What are the strengths of the diagram?
  • What are the strengths of the numbered list?

14 of 21

Algorithm Design

  • Work in groups of three
    • Person 1 can look at everything but only give directions
    • Person 2 may not look at the model, but build from instructions from person 1
    • Person 3 counts how many instructions given and notes what was and was not helpful for the group
  • As a group you must copy the model given to Person 1 in 5 minutes or less
  • Share with the class how you did!

15 of 21

Algorithm Design

  • Q1: What type of instructions worked best?
  • Q2: Why is this type of activity representative of humans working with computers?
  • Q3: What problems might you have if you had to give a computer a set of instructions?

16 of 21

Algorithm Design

An algorithm can be defined by creating a series of step-by-step instructions that can be used to solve a problem or carry out a task.

You just created an algorithm in the previous task!

What must we do for our algorithms to be effective?

17 of 21

Algorithm Design

Given two containers, one that can hold 4 ml and one that can hold 7 ml, how can you get exactly one of these containers to hold exactly 5 ml?

18 of 21

Algorithm Design

Given two containers, one that can hold 4 ml and one that can hold 7 ml, how can you get exactly one of these containers to hold exactly 5 ml?

Instruction

Quantity in A (max 4)

Quantity in B (max 7)

START

0

0

Fill A

4

0

A -> B

0

4

Empty B

0

0

19 of 21

Algorithm Design

  • Did you find a solution?
  • How many instructions did it take?
  • Was it the only way you could have done it?
  • What was the most efficient way of completing the exercise?

20 of 21

Algorithm Design

Instruction

Quantity in A (max 4)

Quantity in B (max 7)

START

0

0

Fill A

4

0

A -> B

0

4

Fill A

4

4

A -> B

1

7

Empty B

1

0

A -> B

0

1

Fill A

4

1

A -> B

0

5

21 of 21

To find out more...

Google’s Computational Thinking for Educators course: https://computationalthinkingcourse.withgoogle.com/course

Exploring Computational Thinking - Materials for all subjects: https://www.google.com/edu/resources/programs/exploring-computational-thinking/index.html#!ct-materials