今月は先月に引き続き、2020年度から小学校で開始される予定のプログラミング教育に先んじて、小学二年生の息子にプログラミングを体験してもらった時の様子をお届けいたします。
先月は、教材として使うプログラミング言語をScratch(MITメディアラボ)に決めたところまででしたが、今月は実際にプログラミングをしてもらいました。
さて、一口にプログラミング教育といっても、今回は小学二年生が相手です。ちなみに息子は、四則演算も「たし算、ひき算、かけ算」の3つしかできず、おまけに九九もパーフェクトとは言い難い状態です。つい先日も「4×9=63!」と元気に答えていました。どうやら、「しく」と発音しておきながら、頭の中では「しちく」で計算してしまったようです(そういえば7時を「しちじ」でなく「ななじ」と発音したことを注意したことが…)。
本当は「習うより慣れろ」&「自由な発想を大切に」というコンセプトの下に自由にやらせてみたいのですが、親から見た我が子の様子を考えると、いくら易しいプログラミング言語であっても、そう簡単には行かない気がします。
そこで、どう教えれば小学二年生でも挫折することなくプログラミングできるようになるのか、無理のない指導方法を考えてみました。
何を隠そう、筆者はSIerでオープン系のプログラマー・SEに従事していた時期があるのですが、その時の新入社員教育では座学での基礎&事例勉強と課題演習の2つのカリキュラムで教えていたことを思い出しました。今思い返せば懐かしい、“Hello World!”の表示や、ソートアルゴリズムなどの演習です。
そこで今回は、眠気を誘う座学の代わりに、まずScratchの基礎を説明する動画やサンプルプログラムを見せて興味を促し、同時に、どうプログラミングすれば同じようなプログラムを作れるのか、自分なりに考えてもらうところから始めてみました。
すると、「こう命令したらこう動くと思う」と、息子なりの仮説がいくつか出てきたので、今度はそれを実際にプログラミングしてもらい検証してみました。
結果は・・・、当然かもしれませんがうまく動きませんでした。いきなりプログラミングしてもらうのはハードルが高かったみたいなので、今一度プログラムで使われている命令(スクリプト)を個別に解説してから、改めてプログラミングしてもらうことにしました。
そして息子からの質問に答えつつ見守ること約1時間、非常にシンプルでしたが息子の最初のプログラムができあがりました。それは、ステージの中央にいる恐竜が右に一歩ずつ進み、右端まで行ったら今度は左に折り返し、左端まで行ったらまた右に折り返すという動作を繰り返すプログラムでした。
プログラム自体は繰り返しの制御と判断分岐、動作制御を組み合わせた簡単なものでしたが、九九すら怪しい小学二年生の息子が試行錯誤しながらも夢中になり、ちゃんと動くプログラムを作れたことにちょっとした感動を覚えました。
今回はほんのさわり程度だったこともあり、Scratchを使った教育が実社会で活躍できるプログラマーを育てることに繋がるのかについては正直分かりませんでしたが、少なくともプログラミングに興味を持つ子供を増やすという意味では有効そうだと思いました。
様子を見ていた妻が、「ママ友からもScratch教室を開いて欲しいと言われた」と言っていたので、近いうちにまたやってみる予定です(なんでも子供向けのプログラミング教育サービスはわりと高額のようです)。
機会がありましたら、また様子をお伝えできればと思います。