Computational Thinking

Have you ever heard of computational thinking? In modern world, our lives are surrounded with technology, and under this information trend, there are more and more new things and knowledge for us to learn. Computational thinking, is one of them. Let's know more about it!

What is computational thinking?

Definition

Computational thinking=Computer science?

Computational thinking (CT) is a study of the problem-solving skills and tactics involved in writing or debugging software programs and applications.

It is closely related to computer science, although it focuses primarily on the big-picture process of abstract thinking used in developing computational programs rather than on the study of specific programming languages. As a result, it often serves as an introduction to more in-depth computer science courses.


Which of the following choices refer to computational thinking?

  • The science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers
  • A study of the problem-solving skills and tactics involved in writing or debugging software programs and applications
  • Focuses primarily on the big-picture process of abstract thinking used in developing computational programs
  • Focuses primarily on the study of specific programming languages

Origin

Development

Seymour Papert first used the term computational thinking in 1996 when his "An exploration in the space of mathematics educations" was published in the International Journal of Computers for Mathematical Learning.

 The science of computational thinking is primarily taught on the collegiate level, the classes of it were first introduced in 2005 at Carnegie Mellon University as a broad introduction to the field of computer science. 

In recent years it has entered the K-12 primary school levels as part of STEM–focused education curriculum.

Read following descriptions of computational thinking, and choose true or false

  • The term computational thinking first appeared in 2005
  • The science of computational thinking was primarily taught on the collegiate level
  • Seymour Papert first used the term computational thinking when his "An exploration in the space of computational educations" published
  • Computational thinking has entered the K-12 primary school levels as part of STEM–focused education curriculum

Cornerstone

Four Key Techniques

  1. Decomposition: Breaking down a complex problem or system into smaller, more manageable parts.
  2. Pattern Recognition:Looking for similarities among and within problems, and testing the regularities between the problems.
  3. Pattern Generalization and Abstraction: Focusing on the important information only, ignoring irrelevant detail. Finding the factors which cause the problem.
  4. Algorithm Design: Developing a step-by-step solution to the problem, or the rules to follow to solve the problem

Match the right description to four cornerstones

  • Decomposition
    Breaking down a complex problem or system into smaller, more manageable parts
  • Pattern Recognition
    Looking for similarities among and within problems, and testing the regularities between the problems
  • Pattern Generalization and Abstraction
    Focusing on the important information only, ignoring irrelevant detail. Finding the factors which cause the problem
  • Algorithm Design
    Developing a step-by-step solution to the problem,or the rules to follow to solve the problem

Why should we need to learn computational thinking?

Reason

The reasons why we should learn computational thinking

  • A report of World Economic Forum in January 2016 indicated that estimated 5 million jobs would be lost to automation worldwide by 2020.
  • This report promoted WEF chairman Klaus Schwab declared in October that ‘Society is facing the new unknown.’
  • World Bank president Jim Yong Kim said in a speech that he believed automation to be threatening 69 per cent of jobs in India and 77 per cent in China.
  • In September the Seattle-based tech company Sewbo got a robot to successfully stitch a T-shirt.

→Evidence seems to be mounting that employment opportunities in the decades to come are likely to be heavily concentrated in the digital and engineering spheres. Therefore, we should make some changes in order to adapt the vast changing future.

Computational thinking for everyone

Why should we learn computational thinking nowadays?(2:15~4:30)

Computational thinking equips students  with the ability of attacking complex and open problem. 

In the past, when students wanted to see and understand the data, they had to collect data manually, which wasted a lot of time on collection and calculation. Fortunately, by develpoing an algorithm, students benefit from quick results nowadays. Therefore, they'll have time to focus on the strengths of people, such as

  •  finding hidden patterns
  • developing insights,
  • analyzing situations
  • drawing conclutions

All above are vital abilities for students to solve big problems. We hope students can create their own models instead of using what teachers had taught in the future. To do so, students must to be equipped with well CT ability.

What can computational thinking help us?

Learning computational thinking doesn’t mean to get you to think like a computer!

Jeannette Wing outlined in 2006, ‘Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting.’ 

Be an active global citizen

Not only be able to participate and position themselves (children) professionally in a global society, they will also be able to contribute to society by solving worldly scale problems, such as climate changes, using their creativity.

Select the right ones

  • Computational thinking can only help solve simple and closed questions.
  • Computation thinking does't mean to train us thinking like a computer.
  • the 'Fourth Industrial Revolution’ refers to ‘complex problem solving.’
  • The world put emphasis on data collection and calculation abilities nowadays.

How to apply computational thinking into class?

Teaching objectives of computing thinking.

Don't get it wrong

Learning the code should not be our goal. The computer is just a tool and a way to achieve your goals. The real goal should be to learn how to think. In other words, we should try to teach computer science instead of teaching code.

Let students find their own way

We don't want students to use the method we tought easily. We hope that through computing thinking, they can create their own method. As the saying gose "Give a man a fish and you feed him for a day. Teach him to fish and you feed him for lifetime"

One of the main points of CT is using existing knowledge to derive new ideas.In this chapter, we will introduce some ways to use CT in teaching, also provide some useful websites in the next part.

Major premise

Everyone's ability is different. This abstract program training is NOT fitting to each student. If they are not interested in or suffer from this, don't force them to learn it! Education is used to inspire and guide. Please don't impose adult wishful thinking on students.

Basic knowledge is important

You cannot make students who haven't learn the addition understand multiplication. Basic knowledge likes the skeleton supporting the building. Everything is in vain without it.

Practice

Practice makes perfect. Let students practice day after day. We expect that students can analyze problems quickly as if they are intuition.

Let's review the skills of computing thinking.

  • First step
    Decomposition
  • Second step
    Pattern Recognition
  • Third step
    Pattern Generalization and Abstraction
  • Fourth step
    Algorithm Design

How to train computing thinking?

The simplest way

The simplest way is to use Scratch. It's simple and easy to use. Letting students try on their own will be the most effective method. Actions speak louder than words after all.

Decomposition

This video introduces the concept and process of decomposition, the first step in Computational Thinking. Examples of decomposition are shown and resources for teaching decomposition skills in the classroom are introduced. It is part of a collection of videos and links to activities that comprises a short course to introduce Middle and High School teachers to Computational Thinking. 

Pattern Recognition

This video introduces the concept and process of pattern recognition, the second step in Computational Thinking.

Abstraction and Pattern Generalization

This video is the concepts and processes of abstraction and pattern generalization, the third step in Computational Thinking. Examples of abstraction are shown and resources for teaching abstraction skills in the classroom are introduced. This video is part of a collection of videos and links to activities That comprise a short course to introduce Middle and High School teachers to Computational Thinking.

Algorithm Design

This video introduces the concept of Algorithm Design in Computational Thinking. It is part of a short course to introduce Middle and High School teachers to Computational Thinking. 

Make a simple test.

Irrigation system

There are four switches in this irrigation system. If you want to water the tree. Which option is the right way?

  • Turn on B. Turn off A, C, D.
  • Turn on A,B. Turn off C, D.
  • Turn on A, D. Turn off B, C.
  • Turn on D. Turn off A, B, C.

Use computing thinking to solve the question.

Abstraction

Variable: A, B, C, D.

Status: Turn on or off.


Decomposition

Water in bucket 1 comes from 3 and 2.

( ) or ( )


Water in bucket 3 comes from 1.


If you want to have water in the bucket3. You should turn on B and turn off A.

( A off, B on ) or ( )


If you want to let the water flow from 2 to 4.You should turn on C and D.

( A off, B on ) or ( C on, D on )

Algorithm

Truth table.

Of course, you can use computer programs to help you run that.

Can Humanities use computing thinking on teaching?

The combination of classical and technological

In this part we will take the example of the humanities that seem to be the most unrelated to CT. The four parts of the CT can be discussed separately. We will discuss the "exploring algorithms" with the application of Humanities.

Words Over Time

Suppose you want to know how the particular word has been used throughout the years in different cultures. It might be fair to assume that books are representative of what is important or interesting to a culture, but how long would it take you to count how many times the word occurs in a book or even a large number of books? Google's ngram viewer  visually displays the occurrences of a word, or phrase (ngrams) for many of the books Google has scanned.


The algorithms used to scan through all of the words in the books is similar to the process used to crawl the web and know which words are important and relevant to your query. Algorithms such as these have made it possible to search through large amounts of information. If you wanted to keep exploring the possibilities try these ideas:

  1. Query multiple words in the ngram viewer. Try typing love, money into the ngram search bar above and create hypothesis about whether or not the trends were a coincidence, a reflection of a significant event, or a shift in culture. Add in various emotions like happy, sad to see if these trend along with your search term.

  2. Try the opposite approach. Think about a particular major event and see if you can find the right search term that indicates an increase of its mention during a particular time period.

  3. Which medium would best represent your culture? Newspapers, books, music, movies, text messages, YouTube videos, something else?

How does Google teaches teachers?

Applying Computational Thinking

Google offers a course called "Computational Thinking for Educators." The following is the part of "Applying Computational Thinking."

Project Overview

Goal: Use the skills from this class to increase the efficiency or effectiveness of the integration of computational thinking in your classroom teaching.

Part I: In Part I of this project, you will create a statement of how computational thinking applies to your domain or subject.

Part II: In Part II of this project, you will document your plan for integrating at least one computational thinking concept into a lesson, activity, unit, project, module, or curriculum.


Sample Projects


Feedback, Assessment, and Grading

  • This project is intended for your own benefit, since we believe the best way to solidify knowledge is by practicing it! Therefore we will not be assigning letter or number grades to your work.

  • In order to earn a certificate of completion for this course, you must submit both parts I and II of this final project.

  • If you would like feedback on your work, or would like to see a sample of other learners' projects, we encourage you to share them on the class Google+ Community.

Part I. Create a statement about computational thinking in your subject area.

Instructions: for Part I of this project, create a statement of how computational thinking applies to your domain or subject.

  • How does computational thinking apply to your domain or subject area?

You can write about computational thinking in general or you can think about the different computational thinking concepts and write about which ones apply to your domain or subject area

  •  I certify that the statement I am submitting is my own work.

Part II: Make a plan to integrate computational thinking into your teaching

Instructions: for Part II of this project, document your plan for integrating at least one computational thinking concept into a lesson, activity, unit, project, module, or curriculum. This documentation could fall into any of the following categories:

  • Curriculum plan integrating at least one computational thinking concept (decomposition, algorithms, pattern recognition, abstraction, etc.)
    • Lesson Plan (road map of what students needs to learn and how it will be effectively implemented during the class, lecture, or period of time; it describes the title, keywords, objectives, activities, and assessments during class time)
    • Assessment (an activity, test, or project that evaluates or measures if students met the objectives and to what degree)
    • Lesson Activity (one action or a group of actions done by students with a goal of supporting lesson objectives)
    • Project (a piece of work in which students gain skills by working for a specified time period to solve a problem, investigate, or respond to a complex challenge, problem or task)
    • Unit Plan (or Module plan in some countries; a group of related lessons, activities, assessments, and projects that share a common larger objective, usually completed over the period of multiple days to multiple weeks)
  • Communication plan for your students, parents, or school community explaining
    • what computational thinking is
    • why computational thinking is important, and
    • how and where you will begin integrating it (e.g. subject, term, curriculum, project, activity, lesson, project, after-school curricula, service project, module, etc.
  • Other!


Sample Projects:

Note: if you use one of these, please make a copy and edit it to match your situation.


  • Which computational thinking concept(s) will you be using in your teaching practice?Select one or more 
  1. Abstraction or Pattern Generalization 
  2. Algorithm Design 
  3. Decomposition
  4. Pattern Recognition 
  5. Other
  • What type of plan will you create?Select one or more 
  1. Strategy 
  2. Lesson 
  3. Activity 
  4. Unit or Module Project 
  5. Joint Project or Lesson with a teacher of another subject 
  6. Communication to Students, Teachers, Administration, or Parents
  7.  Other 
  • What are you going to do?

Describe and/or link to the strategy plan, or plan for a lesson, activity, or student project. How is computational thinking embedded? What is your timeframe; when will you implement it? How long will your project last?

  • How will you know if the project is successful?

Cross-curricular connections formed, increased student scores, increased engagement, more effective lesson, enriched discussions and perspectives, etc.

  • Share a Google Doc outlining your plan with us, or a specific URL (if a Google Site, Calendar, Group, G+ Community, etc.)

Select the Final Project category. In your post, add tags or type of assignment, grade level, and subject area, for example, “#activity #class9 #socialstudies.” This makes it easier for other educators to search and find your plan.

Please edit the access rights to this document so that "Anyone with the link can view"

  •  I certify that the implementation plan I am submitting is my own work

If you would like feedback on your plan prior to implementing it, please share a link to the Google Doc with your plan in course G+ community. Select the Final Project category.


Conclusion

Some computational thinking resources

Congratulations!

You complete this courses successfully

Computational thinking is a topic usually discussed nowadays. Whether you are going to engage in scientific and technical industry or not, computational thinking must be the essential ability. 


Thanks for your participation

We hope that through this course, you learn more about computational thinking, and realize how to apply its concept to different fields.