レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

Computational Thinking

プログラミングを学ぶことの上位目的としてComputational ThinkingCT/計算論的思考)という言葉が使われることがあります。

 

CTとは、問題解決や問題分析の手法だと捉えたほうがよく、プログラミングそのものとは切り離してあらゆるシーンで使うことができる考え方です。

プログラミングを子供達に教えることの意義は、色々と言われますがこのCTをしっかり身につけることが良いと考えています。

 

CTの分類は諸説あるながら、以下のブログで解説されている分類がとてもしっくりくるので引用させていただきます。

Computational Thinkingとは何か - 小さなごちそう

 

1. Decomposition(問題の分解)

 複雑な問題を解決可能なレベルまで分解すること。

 

2. Pattern Recognition(パターンの発見)

 周期性や法則性を見抜くこと。

 

3. Abstraction(抽象化)

 枝葉を切り落として重要な要素だけを抜き出すこと。

 

4. Algorithm Design(手順化)

 ステップバイステップで、問題解決の手順を明らかにすること。

 

 

話は少し変わって、コンピューターはちょうど、4歳の子供とそっくりだなと思います。

4歳の子供は「掃除」をしなさいと言われても、何をするべきかピンと来なかったりします。

「木のおもちゃは木箱に入れて、人形はプラスチックケースに入れて」と具体的に分解すること(Decomposition)をやってあげると、理解してきちんと動けるようになります。