プログラミング教育と論理的思考

「プログラミング教育」がもたらす成果の一つとして「論理的思考が身につく」といわれますね。

たとえば、論理的思考のひとつに”MECE”ってのがあって、これはプログラミングの世界でもプログラミング以外の世界でも必要な考え方なんだけど、プログラミングの世界でいうとたとえば「状態遷移設計」とか「エラー処理」で必要になる。

逆にいうと、そういう要素がないといくらプログラミングをやったところで”MECE”での論理的思考は身につかない(MECEが論理的思考のすべてという意味ではありません)。

「プログラミング教育」に期待することが「プログラムが書けるようになること」ではなくて、「論理的思考を身につける」ことなのであれば、「プログラミング」はその手段のひとつでしかなく、その手段が適切でないとすればより適切な手段を選択すべきではないのかと思います。

MBA的ロジカルシンキングをやるべきという意味ではありませんが、公教育で広くあまねくやるのであればそういう観点が必要なんじゃない?みんな「どうやってプログラミングをやらせるか?」ということに偏ってるんじゃないかなぁって思ったので素朴に書いてみました。