【授業事例11】
中学・技術での「計測と制御」を高校・情報の科学での「アルゴリズム」につなげる
~ライントレースカーの走行プログラム作成で理解を深める展開へ
千代田区立九段中等教育学校 田崎丈晴先生
私が勤務する学校は、高校から入学を募集しない中高一貫の公立の中等教育学校です。3学年(中学3年生相当)の技術・家庭科と4学年(高校1年生相当)の情報科に学習内容を連続させたカリキュラムを組むことができます。そこで、昨年度から今年度にかけて技術と情報の授業において、ライントレーサーを用いた「計測と制御」とそれに関連するアルゴリズムを学ぶ授業を実施しました。
問題解決の解決案をアルゴリズムで記述させ、理解させる
平成25年度より、後期課程(4~6学年)が新学習指導要領となり、本校でも4学年に「情報の科学」が必履修科目として設置されました。学習指導要領によると「情報の科学」で指導する内容は「問題解決とコンピュータの活用」の中で、問題解決の解決案をアルゴリズムで記述させ、コンピュータによる処理手順の自動実行の有用性を理解させるもの、というものがあります。
幸いにして例年「計測と制御」は3学年の後期で学ぶので、4学年の「アルゴリズムによる問題解決」は前期の一番はじめに設定することで、連続したカリキュラムをすることは容易でした。
その授業実践に要した時間は、3学年の「計測と制御」に計7時間、4学年の「情報の科学」では計15時間です。授業の簡単な流れを述べたうえで、成果と課題についてお話します。
1. 3学年技術・家庭科「計測と制御」の授業実践(7時間)
3学年の授業は、(1)コンピュータの動作原理(2時間)、(2)プログラムの構造(2時間)、(3)マインドストームNXTを用いたライントレース実習(3時間)に分かれます。
(1)では、コンピュータの5大機能と、各機能とハードウエアとの対応について整理した後、プログラムで実行される仕組みを解説しました。
(2)では、センター試験用手順記述標準言語(DNCL)の基本を学びました。2の10乗を計算するプログラム等の簡単な例を用いて、プログラムによる処理の流れを把握することにも慣れるようにしました。アルゴリズムの基本制御構造である「構造化定理」もここで少し述べました。結果としてDNCLを学ぶことは、4年時のアルゴリズム演習で非常に役立ったと思います。
(3)では、マインドストームNXTの付属ソフトウエアを利用し、ライントレースカーにコースを一周させる「制御と計測」の関する実習を実施しました。
2.4学年「情報の科学」の授業実践~ライントレースアルゴリズムを理解する学習(3時間)
4学年に進級してから、ライントレースカーでコースを一周するアルゴリズムについて、プログラムの構造を意識しながら理解する学習をしました。どの部分に条件分岐が隠されているのか、どの部分に繰り返しがあるのかと、自分でプログラムを組んだ気持ちになって、その手順を日本語で記述し、車が走行するアルゴリズムを理解しました。
3.NXCで実際に記述するアルゴリズム演習(8時間)
さて、いよいよ実際のアルゴリズムの演習です。前項の学習で行った、日本語で記述した手続きが、実際にライントレースカーを走行させている処理と同じであることを確認するために、NXCというプログラミング言語で記述し、実際に車を走行させてみるということをしました。生徒一人ひとりが自分で考えたのでは大変ではないかと思いましたが、みんなグループを組んで自主的に活動を始めましたね。
ヒントになったのは、ユークリッドの互除法でした。職員室でユークリッドの互除法を4年生の数学の授業でやっていると聞いたので、「ライントレースカーでコースを一周させる」という課題に加えて「ユークリッドの互除法で求めた最大公約数を○○させよ」という課題を生徒に与え、それらをこのアルゴリズム演習として実施したのです。
これはうまくいきました。プログラムができたら、車を走行させました。ライントレースする課題では中には乗りに乗って、追いかけっこしたりする生徒もいました。2つのセンサとパラメータの調整をうまくやって、シューッと滑らかにコースを回るプログラムを作った生徒もいました。
4.アルゴリズムレポートの執筆をする(4時間および課外の補習)
遊んでばかりでなく、アルゴリズム演習でやったことを自分の言葉で科学的に記述するようにと、レポートを執筆させました。わかりやすい構造的な文章を書くということも狙いの一つです。レポートを書く際に、不足しているデータの収集をさらに行う生徒も出ました。「参考文献から引用するのもいいけれど、引用の分量が全体の2割を超えたらレポートの評価は低くなるよ」とか、そんな話もしました。生徒の中には、私が順次添削したものを並べて眺めながら自分の成長を喜んだ生徒もいました。
5.まとめ
本実践では、中等教育学校3学年の技術の授業時間を有効に活用しながら、4学年の情報の科学で学ぶ「アルゴリズム」の理解へと発展させる授業を、計画通りうまく実施できたと思います。
反省点もあります。3学年の学習で、DNCLで手続きを検討しましたが、その後マインドストームNXT付属のソフトウェアを用いたライントレースカーの実習は実施しないで、すぐにNXC言語で記述するアルゴリズム演習を行った方がよかったのではないかという反省です。その方が、3学年の最初の4時間の学習成果を活かせたスマートなカリキュラムになったのではないかと思います。マインドストームNXT付属のソフトウェアを用いたライントレース実習を行ったのは、車を走行させて理論を可視化させるほうがアルゴリズムの理解が進むだろうと思ったからですが、生徒からも「要らなかったのでは」という同様のコメントもありました。それだけ、DNCLでの手続きとNXCによる手続きの間にはギャップが少なく、アルゴリズム演習はうまくいったということなのだろうと思います。
※本記事は、全国高等学校情報教育研究会 第6回全国大会(2013年8月9日・10日、京都大学にて)でお話しされた内容です。