小さなごちそう

プロダクトマネジメントや日々の徒然について

Computational Thinkingとは何か

Computational Thinking(CT/計算論的思考)とは問題解決のプロセスを分解したもので、その名の印象とは異なり、科学分野のみならず人文領域も含めてあらゆる問題の解決に使える手法だ。

1. Decomposition(問題の分解)
複雑な問題を解決可能なレベルまで分解すること。

2. Pattern Recognition(パターンの発見)
周期性や法則性を見抜くこと。

3. Abstraction(抽象化)
枝葉を切り落として重要な要素だけを抜き出すこと。(数学の文章問題を解くときの作業に近い)

4. Algorithm Design(手順化)
ステップバイステップで、問題解決の手順を明らかにすること。(料理のレシピのイメージ)

初等教育におけるプログラミング教育の目的は、プログラムを書けるようになるのがゴールではなく、このComputational Thinkingを身につけることに他ならない。(と僕は思う)

Computational Thinkingという言葉はSeymour Papert氏が1980年に初めて使用した言葉らしい。Jeannette Wing氏によるエッセイによって、Computational Thikingが問題解決の基礎スキルとして万人に役立つものであると認識されることとなった。(Wing氏Microsoft ResearchのVPであり、カーネギーメロン大学の教授である)

Computational Thinkingを知るためのサイトや動画

Googleが教育者向けにCTを理解するためのオンラインコースを開設している。

イギリスのコンピュータ教育の支援団体Barefoot projectのサイトが非常にわかりやすい説明が掲載されている(詳細閲覧には会員登録が必要)。

f:id:tannomizuki:20161018125414j:plain

code.orgの小学生にCTを教えている動画がわかりやすい。


CS Fundamentals Unplugged: Computational Thinking

1から200までの足し算の答えを簡単に算出する方法(201*200/2)を例に「パターンの発見」を解説している。(生徒があっさりパターンを見抜いていてスゴイ。)

下記は講師による解説動画。


Course 3 - Computational Thinking

Computational ThinkingはPMの必須スキル(だと思う)

「プロダクトマネージャーはコードを書ける必要があるか」という点が議論になることがあるが、多くのベテランPMはこの問いに「必ずしも必要でない」と答える。僕も同意だ。だが、「PMはComputational Thinkingを身につけている必要があるか」という問いに対してはYesと答えたい。

Computational Thinkingについては僕も学び初めたばかりなので、このブログで改めて詳しい解説をしたいと思っている。

【関連記事】

tannomizuki.hatenablog.com