こんにちは。昨日の原稿を落とした教育ヲタ母です。
これまで、プログラミング教育や考える力をつける教育について書いてまいりましたが、非常に重大なことを見落としていたことに気がつきました。
大変申し訳ありません。
そういうこともあって、原稿をどう書いて良いか分からなくなってしまいました。今日は私が見落としていた「逆算思考」について書いてみたいと思います。
1. 逆算思考とは何か?
まず、逆算思考とは何かについて解説します。逆算思考とは「ゴールから逆算して考える、考え方」のことです。もう少し詳しく解説してみましょう。
1-1. 逆算思考の人は因果関係で考える
逆算思考の人は、物事を因果関係で考えます。欲しい結果が起こるためには、どのような原因があれば良いか?ということを分析しています。欲しい結果のための原因を全て網羅できれば、欲しい結果が手に入ります。
逆に言えば、欲しい結果と関係のないことは必要ないと考えます。また、時間は限られていますから時間がない場合は、どの原因が欲しい結果に与える影響が大きいか?を考え優先順位も決めることができます。
1-2. 逆算思考の対義語は積み上げ思考
逆算思考の対義語は何かというと「積み上げ思考」です。「今できることをやっておけば、いい結果が手に入るだろう」という考え方です。
積み上げ思考だと出来ることから手をつけやすいのですが、「できないからやらない」という言い訳を生み出しやすかったり、結果と関係のない努力をしていることにもなります。
2. プログラミング教育と逆算思考
プログラミング教育と逆算思考は本来相性がいいはずです。「ゲームを作りたい!」「面白いアプリを作りたい!」というゴールが子供達も明確で、そのために必要なことをどうやってやろうか?と考えやすいからです。
ですが、その一方で「基本的な操作の仕方がわからないと、先に進めない」ということもあり、授業としては積み上げ思考型になりがちです。
このi-learn.jpも、積み上げ思考的に記事を書いてきてしまっていたことに気がつきました。基本が分からないと、応用もできないよね?という思いがあったからです。
例えば、Scratchの記事は全て積み上げ思考的でしたね。反省しております。
2-1. 逆算思考でプログラミング教育するには
もしかしたら逆算思考でプログラミングするには、こういう方法がよかったかもしれません。
・シューティングゲームがどのような要素からできているか分解する。
・各要素をどのように作ったらいいか?考える。
こういった方法が良かったかもしれません。
今まで積み上げ思考で記事を書いてきたので、逆算思考で考えて記事を各のはたいへんですが、少しづつ自分の意識を変えるつもりで進めていきたいと思います!