教育

計算論的思考とプログラミング的思考

プログラミング教育で大切なのは、プログラミングをできるようになることではなく、テクノロジーに強く使いこなせるようになること、という記事を書きました。

プログラミングなんか大切じゃない。プログラミング教育の本質とは。プログラミング教育が多くの子どもたちに学ばれるようになってきていますが、どうもその本質は理解されておらず、「プログラミングができるように...

そのために「コンピュータの特性を理解し、情報処理能力を問題解決に効果的に使う思考力」が必要です。これは計算論的思考(Computational Thinking/コンピュテーショナル・シンキング)という考え方を参考にしています。

では、計算論的思考とはなんでしょうか?

その前に、ちょっと脱線して、プログラミング的思考について書きたいと思います。

プログラミング的思考とは

プログラミング的思考、聞いたことあるでしょうか。文部科学省は下記のように定義しています。

プログラミング的思考とは

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力

文部科学省 | 参考資料2 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)

簡単にいえば、プログラミングを書くときに考えるような論理的思考力、といえるでしょう。

また、プログラミング教育の目的は、プログラミング的思考を育むことと書いています。

プログラミング教育とは、(中略)「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。

文部科学省 | 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
※(中略)は当記事執筆者によるものです。

では、プログラミング教室での学びも、プログラミング的思考を育むことを目標とすればいいのでしょうか?

僕はそうは思いません。

プログラミング的思考を育むと論理的思考力が伸びる。賛成です。学ぶべき。算数にも強くなるし、基礎スキルとして大切です。

でも、テクノロジーに強くなることにあまり結びつかない

そこで出てくるのが、計算論的思考です。

計算論的思考とは?

計算論的思考(コンピュテーショナル・シンキング)はプログラミング的思考にも参考にされている思考です。

(「プログラミング的思考」の注記)
いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。

文部科学省 | 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
※()は当記事執筆者による加筆です。

では計算論的思考とは何なのか。第1人者のJeannette Wing氏の定義(COMPUTATIONAL THINKERS)を僕なりに和訳すると下記です。

コンピュータ科学のベースとなる考え方を用いて、問題解決、システム設計、あるいは人々の行動解析を行う方法

コンピュータの情報処理能力を問題解決に活用するために体系化された考え方、という理解でいいかと思います。

論理的思考力と比較すると、コンピュータ(≒情報処理能力)を使ってより問題解決にフォーカスされている思考と理解しています。

論理的思考力と計算論的思考力の比較

論理的思考力:論理的に正しいことが大切

計算論的思考:情報を処理して問題を解決するのが大切

具体的に、論理的思考力だけでは難しい状況判断例を出してみます。

自動車保険や生命保険

保険会社が利益を上げるということは、保険の期待値は100%未満です。つまり、確率的に考えたら、加入しない方が得ですが、リスクヘッジから加入する場合もあります。

病気の簡易検査

インフルエンザなどの簡易検査では偽陰性や偽陽性があります。精度100%を求めないという判断の元、導入されています。

Google(検索エンジン)

Googleでの検索結果、例えば「プログラミング教室」で検索した際に順位をどう決めるか、論理的に正しい答えはありません。

 

いかがでしょう。論理的な正しさでいえば、加入しないほうが得な保険には加入せず、判定ミスがある簡易検査はせず、検索順位は定められないかもしれません。

コンピュータを使ってシステムを作ったり課題解決するには、このように、様々な情報を収集し、それを評価、活用する方法を考え、効果的な選択を行う必要があります。

テクノロジーに強く使いこなせる人はこういう思考が自然とできています。

それはおそらく、情報処理という能力がありながら万能でないコンピュータを、どう使ったら面白いことができるか、試行錯誤する中で、センスとして身についているのでしょう。

先述のJeannette Wing氏によるエッセイで「計算論的思考は(中略)すべての人にとって基本的な技術である」と述べられています。

計算論的思考は,コンピュータ科学者だけではなく,すべての人にとって基本的な技術である.すべての子供の分析的思考能力として,「読み,書き,そろばん(算術)☆ 1」のほかに計算論的思考を加えるべきである.印刷,出版技術が 3R の普及を進めたように,コンピュータ科学と計算装置が計算論的思考を普及させることを忘れてはならない.

和訳: https://www.cs.cmu.edu/afs/cs/usr/wing/www/ct-japanese.pdf
原文: https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf

コンピュータサイエンスの思考である計算論的思考が、実生活や他の学問においても、様々な場面で必要となる、基礎的な思考だということです。テクノロジーに強くなるためという目的でなくても、学び育むべきものです。

世界のプログラミング教育

世界各国のプログラミング教育では、「コンピュータサイエンス」あるいは「コンピュテーショナル・シンキング」の1要素として行われている国が多いです。

イングランド、フランス、イタリア、ロシア、アメリカ、カナダ、韓国、香港、イスラエルなどなど。日本のように、プログラミングだけ切り出されている国のほうが少ないのではないでしょうか。

文部科学省 | 諸外国におけるプログラミング教育に関する調査研究

 

まとめ

論理的思考力ももちろんとても大切であり、学ぶべきものです。アルスクールでも子どもがじっくり考える時間を取って、論理的思考力を育みます。

ただ一方で、テクノロジーに強くなり使いこなせるようになることを目標とするのであれば、計算論的思考力も育むべきだと考えます。プログラミング教室はそうあるべきでしょう。

 

プログラミングなんか大切じゃない。プログラミング教育の本質とは。プログラミング教育が多くの子どもたちに学ばれるようになってきていますが、どうもその本質は理解されておらず、「プログラミングができるように...
ABOUT ME
むらっち
むらっち
村野智浩。探究型プログラミング教室アルスクール代表。探究学習などを学びながら、150名以上の子どもたちと学ぶ。チームラボでPM、スタートアップの技術顧問などを歴任のITスペシャリスト。東京大学工学部卒業。
アルスクールの
1dayサマーキャンプ

アルスクールは、自由が丘、中野にある小学生、中学生、幼児(年中、年長)向けのプログラミング教室。プログラミングを使った創作活動を通じて、子どもたちの学びたい意欲を引き出す学び場です。夏休みに1dayサマーキャンプを多数開催!ぜひ一度体験してください。

1dayサマーキャンプをチェック