キッズプログラミング教室【アルスクール】校長の村野です。
プログラミング教育で大切なのは、プログラミングをできるようになることではなく、テクノロジーに強く使いこなせるようになること、という記事を書きました。
そのために必要なのは、
コンピュータの特性を理解し、情報処理能力を問題解決に効果的に使う思考力
これは、計算論的思考(Computational Thinking/コンピュテーショナル・シンキング)という考え方です。
では、計算論的思考とはなんでしょうか?
その前に、必修化の目的にもなっているプログラミング的思考について書き、計算論的思考と比較したいと思います。
Contents
計算論的思考とプログラミング的思考
プログラミング的思考とは?
プログラミング的思考、聞いたことあるでしょうか。
実は、必修化されたプログラミング教育の目的は、プログラミング的思考を育むこととされています。
プログラミング教育とは、(中略)「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。
文部科学省 | 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
※(中略)は当記事執筆者によるものです。
では、「プログラミング的思考」とは何でしょうか?
文部科学省は下記のように定義しています。
プログラミング的思考とは
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
文部科学省 | 参考資料2 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
簡単にいえば、プログラミングを書くときに考えるような論理的思考力、といえるでしょう。
テクノロジーに強くなるには計算論的思考が重要
では、プログラミング教室での学びも、「プログラミング的思考を育むこと」を目標とすればいいのでしょうか?
僕はそうは思いません。
プログラミング的思考を育むと、論理的思考力が伸びる。
賛成です。学ぶべき。算数にも強くなるし、基礎スキルとして大切です。
でも、テクノロジーに強くなることにあまり結びつかない。
そこで出てくるのが、「計算論的思考」です。
計算論的思考(コンピュテーショナル・シンキング)とは?
情報処理により問題を解決する
計算論的思考(コンピュテーショナル・シンキング)は、プログラミング的思考にも参考にされています。
(「プログラミング的思考」の注記)
いわゆる「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。
文部科学省 | 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)
※()は当記事執筆者による加筆です。
では、計算論的思考とは何なのか。
第1人者のJeannette Wing氏の定義(COMPUTATIONAL THINKERS)を僕なりに和訳してみました。
コンピュータ科学のベースとなる考え方を用いて、問題解決・システム設計・あるいは人々の行動解析を行う方法
コンピュータの情報処理能力を問題解決に活用するために体系化された考え方、という理解でいいかと思います。
計算論的思考には、次の4つの要素があります。
- 要素分解:複雑な問題を解決可能なレベルまで分解すること
- 抽象化:重要な要素だけを抜き出すこと
- パターン認識:規則性を見つけること
- アルゴリズム:問題解決の手順を明らかにすること
プログラミング的思考は、この中の「アルゴリズム」にあたります。
でも、急速にIT化が進む中、テクノロジーを活用し、価値を創造していくには、他の3つの要素も重要です。
計算論的思考と論理的思考のちがい
計算論的思考は、論理的思考力と比べると、コンピュータ(≒情報処理能力)を使ってより問題解決にフォーカスされている思考と言えます。
論理的思考力:論理的に正しいことが大切
計算論的思考:情報を処理して問題を解決するのが大切
具体的に、論理的思考力だけでは難しい状況判断例を出してみます。
- 自動車保険や生命保険
保険会社が利益を上げるということは、保険の期待値は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要素として、プログラミング教育を行っている国が多いです。
イングランド、フランス、イタリア、ロシア、アメリカ、カナダ、韓国、香港、イスラエルなどなど。
日本のように、プログラミングだけ切り出されている国のほうが少ないのではないでしょうか。
参照:文部科学省 | 諸外国におけるプログラミング教育に関する調査研究
計算論的思考まとめ
論理的思考力ももちろんとても大切であり、学ぶべきものです。
キッズプログラミング教室【アルスクール】でも子どもがじっくり考える時間を取って、論理的思考力を育みます。
ただ一方で、「テクノロジーに強くなり使いこなせるようになること」を目標とするのであれば、計算論的思考力も育むべきだと考えます。
プログラミング教室はそうあるべきでしょう。
アルスクールでは、プログラミング的思考だけでなく、計算論的思考も学びます。
キッズプログラミング教室【アルスクール】では、オンラインで学べるでプログラミングレッスンを行っています。
実際のレッスンに参加できる無料体験で、一度アルスクールの学びを体験してみませんか。
また、実際の教室でもレッスンを行っています。
- 東京にお住まいの方 → 自由が丘校、中野校
- 大阪にお住まいの方 → 大阪南千里校
- 福岡にお住まいの方 → 福岡西新校
教室での無料体験レッスンをご希望の方は、こちらをご覧ください。