見出し画像

教室運営で思うこと(4)ロボットプログラミングで学ぶこと

教室を始めた頃の思い出話です。
記事の中で「プログラム」と「プログラミング」という見分けがつきにくい言葉を使っています。
プログラムは、作られたもの、生産物。
プログラミングは、プログラムを作る製造工程の意味で使っています。

※この記事では教室運営について思うところを書います。


なぜ目標設定に触れないのだろう

ロボットプログラミンを通じて学ぶことは、プログラムを開発する工程で用いられる考え方です。
保護者様の関心のある話題でいうなら、2020年度から小学校に導入されたプログラミング教育の目指す「プログラミング的思考」です。

プログラミング教室のホームページや塾生募集のチラシに、
「論理的思考」「問題解決能力」「創造力」という言葉が躍っています。
私は重要な要素が欠落していると思っています。
それは「目標を設定する力」です。

私の運営するプログラミング教室”エジソンアカデミー”でも、
まずロボットを組み立てて、それを動かすプログラムを作ります。
ロボットの組み立てが完了した時点で、
「そのロボットを動かすプログラムをつくる」
という目標が自動的に設定されます。
この時どんなプログラムを作るのか目標を明確にして、次の工程に移ることが重要です。

仕事としてプログラムを作っている現場では、
どんなプログラムを作るか詳しく分析し明確にすることを「要件定義」といいます。
ここでは専門用語の堅苦しさを避けたいため「目標」とか「ゴール」と言い換えています。

手段が目標にすり替わる?

あたり前の話ですが、

「何をつくるか」

目標またはゴールを設定しなければ、何もつくることができません。
「論理的思考」や「問題解決能力」「創造力」は

「目標を達成するために用いられる手段(能力)」

です。
目標を設定する力を身につけずに、その能力をどこで使うのでしょう?
よく言われる

「手段が目的・目標になっている」

のではないでしょうか?

正しく目標をとらえていなければ、
どんなに優れた能力を発揮しても
得られる答えは不正解です。

参考ですが、プログラム開発の工程はおおむね次のように進められます。

  1. どのようなプログラムをつくるか明確にする(目標設定)

  2. 実際にどのように動かせばよいか方法を検討する(論理の構築)

  3. コードを記述

  4. 動作試験

  5. 問題点の解明(問題の特定、言語化)

  6. 修正して再度試験(試行錯誤、問題の解決)

ご覧いただくとわかるようにプログラム開発だからといって、何も特別なことをしているわけではありません。
まず目標を設定して、その実現の方策を考え、実行し、問題点があれば修正し、また実行する。

目標が定まってなければ、次のことができません。
あたり前のことをあたり前にやっているだけです。

それでは、なぜ
「あたり前のことをプログラミング教育として学ぶのか?」

それは汎用的なスキルとして身につけさせるためです。

「あたり前」と「再現性」

いろんなところで、それこそ職種・役職を問わず、それぞれの立場で、「あたり前のことをあたり前にやる」という言葉がよく使われます。

物事がうまく進まない時ほど、
「あたり前のことがあたり前に行われていない。」
ということが多々あります。

逆に困難と思われることでもスイスイと成し遂げる人もいます。

何が違うのかというと、
成し遂げる人は
目標を明確に理解しているから、
成功させるために必要な「あたり前」が導き出せ、
あたり前のように実行できる。
結果は出るべくして出るので
「再現性が高い」
ということなんだろうと思います。

「正法に不思議なし」

昔の偉いお坊さん、確か道元禅師の言葉だった思います。

「困難に見えることでも正しい方法を正しく実行すれば成し遂げられる。それは運、不運に左右されるような不思議なものじゃないんだよ。」

みたいな意味だったと思います。
つまり正しい方法を正しく実行すれば成功するのはあたり前ってことです。しかも、それは再現性があるものだと教えてるんですね。

逆に一回しか成功しなかったり、
成功したり、しなかったりする方法は、
正しい方法を正しく実行していなかったということになります。
これはこれで、なかなか厳しい感じがします。

さて、この考え方をプログラミングに持ち込むとどうなるでしょう。

成功する論理構築能力をスキルへ

プログラムは作ったようにしか動きません。
簡単に見えるものから、複雑に見えるものまで
成功するのも、失敗するのも「必然」です。

成功するには成功する理由があり、
失敗するには失敗する理由があります。
だからプログラムは
成功も失敗も、ともに再現性があります。

プログラムって「正法に不思議なし」を地で行ってません!

そうなんです。
プログラムは論理のカタマリなので
不思議がないんです。
成功も失敗も起こるべくして起こっています。

プログラム開発では
目標となる動作について
期待通りに動かない(=失敗した)なら
プログラムの論理構造を調べて、
間違いを修正し
期待通りの動作をする(=成功する)論理に組み替えます。

成功する論理を構築すれば、
それ以降「成功する結果だけが再現」されます。

こうのようなことを実践形式で学べる。
これがプログラミング教育です。

プログラミング教育で繰り返し訓練し、
スキルとして身につけられれば、
受験勉強、お仕事、趣味の上達など
いろいろなシーンで設定した目標を達成できるようになるでしょう。
何が起こるかわからない不確実な未来においても、
子供たちが自ら自分の未来を切り拓く強力な武器になるはずです。

余談:人には言ってるのに・・・

ところで、偉そうに語ってきましたが、
塾経営について、成功に導く「あたり前」をまだ見つけてない私。
プログラムのレベルでは教えられるのに、
汎用のスキルとして活用できていない。
子供たちに指導する資格があるのだろうか?

この記事は子供たちにも保護者様にも見せられないなー。
まあ、読者はほとんどいないから”OK”ってことで今回は終了。


この記事が気に入ったらサポートをしてみませんか?