授業実践リポート ICT活用&情報教育

静岡県 掛川市立北中学校

体育館前には、教育標語の「泰山北斗」の碑。「仰ぎ尊ばれる人になろう」と教える。

プログラムの「おもしろさ」を伝えたい

プログラミング入門ソフトで

段階的にアルゴリズムを習得

 

 

2016/07掲載
※先生のご所属先は、取材当時のものです。

 今回は、「プログラムによる計測・制御」の授業を2回にわたって取材させていただき、技術科教諭の内山優輝先生にお話を伺った。

難しい「プログラミングのおもしろさ」を伝える授業

技術科教諭 内山 優輝 先生

 「本来、プログラムを組むというのは、とてもおもしろいことです。それが伝わってほしいと思っています」と内山優輝先生は語る。プログラミングの経験は、論理的な思考力や、順序だてて問題を解決する能力を育成することが知られているが、何か具体的に見える形のものを法則にしたがって動作させて、試行錯誤で解決していく経験を続けると、より高い効果が期待できる。そこで以前は、教育用プログラミング言語を使って指導していたが、実際に動作させるのは難しく「プログラミングのおもしろさ」を伝えるところまでには至っていなかった。

 「ちょっとした記述違いでうまく動かないし、原因特定も時間がかかります。分からない生徒は、私が与えたプログラムを写すだけという状態でした」と先生は言う。プログラミングのおもしろさもないし、これが本当のプログラムなのかと疑問だった。「アルゴリズムを教えたい」、先生はこの思いをずっと持ち続け何か良いソフトはないかと探していた。

 そこで内山先生が出会ったのが、プログラミング学習ソフト『ロボチャート』だ。ねずみ型ロボットを迷路の中から出口まで導くフローチャートを組み立てることで、プログラムの基本的な考え方を学習できる。迷路は9段階あり、スモールステップで段階的に学べる。さらに、動き方をプログラムしたロボット同士を仮想空間で競わせる発展的なステージも用意されている。

プログラムの作成を通して、優れたプログラムを理解する

つまずいている生徒にはアドバイスする。

生徒が組んだ3種類のプログラムを黒板に貼りつける。この中から一番優れたプログラムを考えさせる。

タブレットPCを囲み、力を合わせて、より高度なプログラムに挑戦する。

 今日の学習課題は、「どの地点からスタートしてもゴールするプログラムをつくろう」。前時に、簡単なフローチャートの作り方や処理、分岐、反復の各記号の使い方を学習している。今日は、スタート地点が2か所にあり、そのどちらからスタートしてもゴールするプログラムを作成する。前進だけの処理記号だけではゴールできないのが工夫のしどころだ。まず、自分の考えたフローチャートをワークシートに書かせ、それをもとに班ごとに協議させた。出てきたフローチャートを組んでみて実際にゴールできるか検証する。タブレットPCなので相談するのも、みんなで画面をのぞきながらできるのがうれしい。自然に教え合い、学び合う活動が見られる。

 「生徒は、うまく動かなくても『解決しよう』と熱心に取り組みます。このソフトは、解決したくなる要素を持っているので、私も授業をしていて面白いです」と内山先生。

 ゴールにたどり着く方法は、一つではない。先生は、3つの班を選んでプログラムを発表させた。最初の班は、"出口までの歩数をあらかじめ入力"しておき、歩数分前進を繰り返す2回の反復処理と出口なら反復処理から抜ける分岐記号を組み合わせて課題をクリアした。次の班は、"「出口か?」が「いいえ」の間、前進を繰り返す"反復処理を使うシンプルなプログラムを作成した。3番目の班は、"出口かどうか確認しながら前進する"反復処理を使い、出口なら反復処理から抜ける分岐記号を使った。
生徒が挑戦した課題はこちら

 生徒は、同じ迷路を抜けるプログラムでも色々な考え方があることに気づく。ここで、「どのプログラムでもゴールできますが、この中で一番良いと思うプログラムはどれですか」と先生は投げかけた。ゴールするというゲーム的な目的から抜けだし、プログラムを評価するという一歩踏み込んだ思考を促すためだ。生徒からは、「シンプルなプログラムの方が、処理に時間がかからないから良いと思います」、「出口までの歩数を予め入力しておかなくてもゴールできるから、2番目と3番目の方が良いと思います」などの意見が出された。

 ここで先生は、今日の学習課題「どの地点からスタートしてもゴールするプログラムをつくろう」を改めて確認し、どんな状況でも対応できる汎用性が高いプログラムの方がより優れていることに気づかせる。

生産者の気持ちがわかる消費者になることが大事

ロボット掃除機を見せる内山先生。生徒は興味津々。

 なぜ汎用性の高いプログラムが良いのか?ここで内山先生は、自宅から持ってきたロボット掃除機を持ち出し生徒に見せた。「センサーによって何かにぶつかるとよけるようになっていますが、家具の位置がいつもと違っていても対応できます。この動作はまさに2番目、3番目のプログラムと同じですよ」と説明する。今、自分たちが学んでいることが、たちまち身の回りのものと結びつく。

 内山先生は、「生徒たちにはゲーム的な感覚だけで終わってほしくありません。プログラムというものが実生活の中で何にどのように使われているのか理解することが大事です」と言う。そうすれば身の回りの家電製品を見る目も変わる。「技術科の目的はプログラマーを育てることではありません。こういう考え方でプログラムしているのだと、生産者の気持ちがわかる消費者になることが大事だと思っています」と続ける。

 この後、よりレベルの高い迷路抜けプログラムを生徒にマスターさせ、単元の最後にロボットの動きをプログラミングして仮想空間でロボット同士、競わせることに挑戦する。対戦相手との刻々と変わる状況に応じたプログラムは格段に難しくなる。しかし、自分のロボットが仮想空間で思ったように動く様子は生徒の「解決しよう」という意気込みに火をつけ、熱心に取り組むとのことだ。

待ちに待った「スペースロボチャート大会」の開催

大会の前にプログラムの最終調整をする。
みんな集中している。

プログラムを組んで入念に動きをシミュレーションする。

いよいよ「スペースロボチャート大会」のはじまり。固唾をのんで、勝負の行方を見守る生徒達。

熱戦を繰り広げるスペースロボ。

 第1回目の取材から2か月ほど過ぎた頃、パソコン上でロボット同士を競わせる授業が行われた。その名も「スペースロボチャート大会」。学習問題として「プログラムでクラスNO1を目指そう」が設定されている。

 最初の20分は、プログラム制作の続き。自分が組んだプログラムでロボットの動きをシミュレーションし、何度も確かめる。攻撃をかわして自分のボールが相手にあたると「やった」と小さく歓声を上げる生徒もいる。悩んでいる生徒には「ここでボールが向かってきているのを判断してないから、隙があるよ」などと内山先生はアドバイスする。

 いよいよ6つの班ごとに予選会が開催された。「それでは、1班のメンバーを発表します」と、先生は名前を読み上げ、ロボットを競技フィールドにいれる。班で決勝に行けるのは1人だけ。"READY GO"の合図で競技が始まった瞬間、「よし行け!」などの声援や歓声でパソコン教室はたいへんな盛り上がりに包まれた。向かってくるボールをすんでのところで回避するなど、レベルの高い戦いが繰り広げられている。勝者には、クラス全員から惜しみない拍手が送られた。15分ほどの予選会で6人の代表が決まったが、これで終わりではなかった。「みんな、敗者復活戦をやりたいですかー?」と先生。生徒たちからは、いっせいに「やりたい!」という声があがった。「決勝戦に行けなかった全員でやります」という先生に、生徒たちは大喜びだ。競技フィールドには20体ほどのロボットが入れられ、熱戦がくりひろがれた。ロボットの数が多くて、なかなか自分のロボットが見つけられないが、それさえも楽しい様子。

 決勝戦は、班の代表と敗者復活戦を勝ち上がったロボットを含めた7体で行われた。いずれのロボットも攻守にするどい動きを見せたが、ついに最後まで残ったロボットの一騎打ちになった。白熱の攻防はなかなか勝負がつかない。大きな声援の中での勝負だが、息をのむような静寂につつまれる瞬間もある。まるでスポーツ観戦のようだ。

 そしてついに、ある女子生徒がプログラミングしたロボットが決着をつけた。その瞬間、教室は大きな歓声と祝福の拍手に包まれた。見事優勝を勝ち取った生徒は、「すぐに負けると思っていましたが、勝てたので良かったです」と声を弾ませた。プログラムで工夫した点は、「ぜったい後退しないで、前進と左回りの動きを組み合わせたところ」と積極的な動きを挙げた。最後にプログラミングの授業について聞いたところ「楽しかった!」と元気よく答えてくれた。

 「プログラムを考える本当のおもしろさに気づかせる授業にしたい」。内山先生の思いは、生徒たちの熱心な学びの姿を見れば、実現されていると実感できた。

 プログラミング入門ソフト ロボチャート

<フローチャート>を組み立てることで、楽しみながらプログラムの基本的な考えを学習することができる。

基礎 : 迷路抜けロボチャート

プログラムを作成し、ロボットを迷路の出口へ導く。
プログラムをスモールステップで学べる9ステージが用意されている。

①記号一覧
処理記号、分岐記号、反復記号、サブルーチンを用意している。

②編集エリア
処理記号をドラッグ&ドロップしてフローチャートを作成することでプログラミングする。

③実行エリア
作成したプログラム通りに、ねずみ型ロボットを動かすことができる。

第1回取材時に生徒が挑戦した課題


ねずみ型ロボットが【1】と【2】どちらからスタートしても出口にたどり着くプログラムをフローチャートでつくる。【1】からは10歩で、【2】からは5歩で出口にたどり着く。
行きすぎると出口から飛び出してしまう。

操作ムービーはこちら

応用 : スペースロボチャート

「迷路抜けロボチャート」で学習した知識を活かして、4種類のロボット(スペースロボ)から選び、動き方をプログラムで設計することができる。

スペースロボのタイプは「ノーマル」、「パワー」、「ガード」、「スピード」から選べる。
それぞれ「パワー」、「ガード」、「スピード」のゲージポイントが異なる。スペースロボは、前方に他のスペースロボがいるかどうか判別するセンサーや自分にボールが向かっているかどうか判別するセンサーなど4つのセンサーを持っている。そのセンサーを駆使してフローチャートを組む。

仮想空間で、自分がプログラミングしたスペースロボ同士がドッジボールで勝負。ボールが何回かあたってエネルギーがなくなったらフィールドから退場する。

ページのトップへ戻る

スズキ教育ソフト