株式会社スーパーワン 代表ブログ -18ページ目

株式会社スーパーワン 代表ブログ

教育DXに関することなど、思うがままに書いてます。

新小学校学習指導要領には「プログラミング教育」が加わりまして、2020年から小学校でも、算数や理科、総合的な学習の時間に、プログラミングの要素を取り込んだ授業を行わないといけないということになったわけです。

 

小学校の先生方も、ダンスやら英語やら、プログラミングやら、あれもこれもで大変ですね。

 

 

もう10年ほど前になりますが、私は、都内の障害者の自立を支援する施設で、IT講師をさせて頂いていました。

 

EXCELやWORDのかんたんな操作や原理を教えるというものでしたが、わたしの拙いIT教室をとても楽しみにしてくれていた方が居ました。

 

とにかく、その方はパソコンを使うのが楽しくて仕方ないのです。

 

あまりに楽しげなので、何が楽しいのかと聞いてみましたところ、「できるようになった瞬間がたまらない!」と一言。

 

わかります、わかります。

 

できると嬉しいのは、何でもそうなんですが、

 

コンピュータに関しては特別です。難解な用語も多く、理解の積み上げも必要なので、覚えるのはとても難しいと思います。でも根気強く探求してゆくと、「わかった!」となる瞬間があります。

 

プログラミングもそうですね。

 

ゼロからプログラミングを進めていくと、すんなり目的の動きをしてくれるようになりま・・・せん。

 

コードを数十行、数百行書いて、それが思い通りに動くなんて事は、まず、ありません。

 

なので、デバッグをします。

 

このコードでは、なぜ目的と違う結果となるのか、手順を追いながら探求します。

 

そうやって膨大な時間を使いながら、気がつくわけです。ここが間違っていたと。

 

このデバッグ作業、納期が迫っていたり、課題が山積みである場合は、苦痛でしか在りませんが、通常業務の中では意外と楽しい作業です。

 

プログラムが目的の動きにならないのは、何かが「間違っている」からなのですが、どのように間違っているのか。どこで間違っているのか。これを探す作業がデバッグです。

 

たとえば。

 

画面で入力された、電話番号の桁数が正しくないとき、『電話番号を正しく入力して下さい。』と促すようにするプログラムを作成したのに、自分のスマホの電話番号を入力すると、『電話番号を正しく入力して下さい。』と表示されてしまう。いつも使っている正しい電話番号なのに。

 

これは、プログラムになにか間違いがあるのです。バグがあるのです。

 

何が間違っているか、想像できますか?

 

以下のようなことが、考えられます。

 

1.「正しい」と想定した桁数自体が間違っている

2.桁数を数えるための方法が間違っている

3.入力される電話番号の想定が間違っている

4.メッセージを表示するかしないかの判断が間違っている

 

などなど、「かもしれない」は、いくらでも出てきます。

 

ここで、それらの「かもしれない」を、実際に試して、つぶしていくわけです。

 

たとえば、

 

1.「正しい」と想定した桁数自体が間違っている、かもしれない

 

というところから、間違いがないか確認するには、ブラウザからGoogleで「電話番号 桁数」と検索すればバッチリ。

 

現在は、電話番号は10桁か11桁です。昭和生まれなので、9桁か10桁(030になるまえはそうでした)の前提でコードを書いていれば、現在のスマホの電話番号11桁は、「正しくない」となるはずです。

 

これは、想定、前提の間違いであり、仕様ミスです。

 

他の「かもしれない」も、同じようにググれば確認できるかというと、そうはいかないことは、おわかり頂けるかと思います。

 

また、本当に、電話番号は10桁か11桁と断定しちゃっていいのでしょうか?

 

こうして、自身の書いたプログラムをとことん疑い、さらに、得られた解決方法や情報も疑ってみて、ようやく「正解=正しく動くプログラム」になります。

 

面倒でしょ?

 

でも、結構楽しい作業なのです。

 

 

子ども達は、こういった探求的で、「批判的」と言えばいいのでしょうが、あれこれ、疑ってみて、工夫して、答えを見つけていく作業が大好きです。

 

ベーゴマしかり、ドロケイしかり、もともと、子どもの遊びの中には、強くなる、うまくなるための探求や工夫を要するものが多いように思います。

 

学校での授業は、答えを予め知っている「先生」に、その答えの出し方を教わるという形式が基本となっています。

 

答えにたどり着くまでのプロセスを、生徒自身で探求し、見つけ出していく。

 

こうしたことを、子ども達のスキルとしていくことで、やがて社会に出たとき、何かの課題を解決するためのプロセスを身につけていく。

 

これが、プログラミング教育の「ねらい」のひとつです。