情報教育

教科「情報」実践報告

中学校・技術での「計測と制御」から

高等学校・情報の科学での
「アルゴリズム」へつなげてみた

田崎 丈晴(東京都千代田区立九段中等教育学校 主幹教諭)

田崎 丈晴 教諭

千代田区立九段中等教育学校(以下、本校)は高校からの入学を募集しない公立の中等教育学校である。本校の技術・家庭科(技術分野)と情報科の授業において昨年度から今年度にかけてコンピュータの動作原理、プログラムの処理の流れ、ライントレーサーを用いた計測と制御、アルゴリズムの学ぶ授業を実施した。授業時間数を十分確保して授業ができたことによってアルゴリズムを学ぶゆとりはできたが、情報の授業で実施したNXCを用いたプログラミングは技術分野で実施したコンピュータの動作原理やプログラムの処理の流れの授業と合わせて実施したほうが無理なくアルゴリズムの理解へとつなげることができるとの結論を得た。

【1】はじめに

筆者が勤務する学校は公立の中等教育学校である。高校からの入学を募集しない中等教育学校では、3学年(中学3年生相当)の技術・家庭科(技術分野)と4学年(高校1年生相当)の情報科において学習内容を連続させたカリキュラムを考えることができる。そこで昨年度から今年度にかけて技術と情報の授業においてライントレーサーを用いた計測と制御とそれに関するアルゴリズムを理解することを含めてコンピュータの動作原理やアルゴリズムを題材とした問題解決を学ぶ授業を実施した。授業の簡単な流れについて述べた上で成果と課題について言及する。

【2】「技術」と「情報」のカリキュラム

本校の教育課程では、前期課程の「技術」と後期課程の「情報」は、次に示す通り設置している。

1学年(1単位) :情報、材料と加工

2学年(1単位) :材料と加工、エネルギー変換

3学年(0.5単位):エネルギー変換、生物育成、情報

4学年(2単位) :情報の科学

6学年(2単位) :自由選択科目

技術・家庭科(技術分野)では、情報に関する技術を1学年および3学年に配当している。1学年ではコンピュータの構成、ハードウェアとソフトウェアおよびアプリケーションソフトウェアの活用、情報通信ネットワーク、知的財産権、情報デザインを意識したディジタル作品の制作(情報の配置と図解表現)を実施している。3学年では植物の栽培とコンピュータの動作原理、プログラムの構造、レゴマインドストームNXTを用いたライントレースカーを用いた計測と制御を実施している。4学年の情報の科学においては平成25年度から設置された科目であるので、執筆時点では文脈の構造を意識したレポート執筆とアルゴリズムの演習が終わり、情報のディジタル化の単元へ進もうというところである。

【3】3学年と4学年の指導内容検討

本節では、3学年における「計測と制御」から4学年における「情報の科学」への接続について検討した内容について述べる。

平成25年度より後期課程が新学習指導要領となり本校でも4学年に「情報の科学」が必履修科目として設置された。学習指導要領によると「情報の科学」で指導する内容として「問題解決とコンピュータの活用」の中で、問題解決の解決案をアルゴリズムで記述させコンピュータによる処理手順の自動実行の有用性を理解させるというものがある。ここで、3学年の「計測と制御」と4学年のアルゴリズムによる問題解決の授業については時期を別として実施するよりも、連続させて実施することにして前期課程で学習した内容を後期課程で発展的に取り扱うことが可能だと考えた。幸いにして例年「計測と制御」は3学年の後期で学ぶので、4学年のアルゴリズムによる問題解決は前期の一番初めに設定することで連続したカリキュラムとすることは容易であった。

授業の実施時期を定めたところで、指導の内容の検討に入った。おおまかにはコンピュータの動作原理については少々高度な内容となるが「情報の科学」で学ぶ内容を3学年で学ぶ内容として入れ、プログラムの構造(順次処理、繰り返し、条件分岐)と処理手順についても3学年で取り扱うこととした。レゴマインドストームNXT20台を用いたライントレースについては3学年では付属ソフトでのプログラム作成と走行実験だけ行い、アルゴリズムについての検討と考察は4学年で実施することにした。前期課程3学年での技術の授業は2週間に1度しか無いため多くの内容を取り扱うことが出来ないため、一度このプランで実践をしてみて課題は翌年度へ活かすこととした。

【4】授業実践

本節では、平成24年度に3学年・技術で実施した「計測と制御」(7時間)と平成25年度に4学年・情報の科学で実施した問題解決とアルゴリズム(15時間)の授業実践について報告する。

4.1 コンピュータの動作原理(2時間)

ここでは、コンピュータの5大機能と各機能とハードウェアとの対応について整理した後、プログラムが実行されるしくみを解説した。この解説で「プログラムメモリ」や「データメモリ」が出てくるが、後にプログラムの処理の流れや変数を理解する上で役立った。

4.2 プログラムの構造(2時間)

ここでは、センター試験用手順記述標準言語(DNCL)での書き方にしたがい変数への代入や繰り返しや条件分岐について解説。2の10乗を計算するプログラム等の簡単な例を用いてプログラムによる処理の流れを把握することに慣れてもらうようにした。構造化定理もここで述べた。

4.3 マインドストームNXTを用いたライントレース実習(3時間)

「計測と制御」に関する実習を簡単に実施した。光センサからの入力に応じてモータをどのように回転させるとライントレースするか考え、NXTに付属するソフトウェアを利用して図1に示すコースを1周させる実習を実施した。コースは模造紙にマジックで線を引いて3箇所に作成した。コースと車の準備に1時間を割いたため、ライントレースそのものの実習は2時間にとどまった。

4.4 ライントレースアルゴリズムを理解する学習(3時間)

4学年に進級してから、ライントレースカーでコースを1周するアルゴリズムについてプログラムの構造を意識しながら理解する学習をした。繰り返しや光センサで取得した値に基づく条件分岐にしたがいモータを回転させる処理を日本語の手続きで記述して黒線と白い部分の境界を検出しながら車が走行するアルゴリズムを理解した。

4.5 NXCでのアルゴリズム演習(8時間)

前項で日本語により記述した手続きがNXT付属ソフトのプログラミングブロックで組立てた処理と同じ処理であることを確認するため、日本語の手続きを文献3の開発環境を用いてNXCで記述して実際に車を走行させる実習を行った。さらに、職員室でユークリッドの互除法を数学の授業で扱ったと聞いたので「ユークリッドの互除法で求めた最大公約数をもとにNXTに○○させよ」という課題も加えアルゴリズム演習として実施した。

4.6 アルゴリズムレポートの執筆(4時間)

一連の学習のまとめとして、ライントレースカーでコースを1周することとユークリッドの互除法で求めた最大公約数をもとにNXTに○○させる問題に関する問題解決への取り組みをレポートでまとめた。レポートを書く際に不足しているデータの収集をさらに行う生徒も出た。

【5】成果と課題

本実践では、中等教育学校3学年の技術の授業時間を有効に活用しながら4学年の情報の科学で学ぶ「アルゴリズム」の理解へと発展させる授業を計画通りに実施することができた。3学年での学習の下積みをもとにすべての生徒が最終的にNXCでアルゴリズムを記述し2つの課題をクリアできるに至ったことは成果である。

課題としては、NXTの付属ソフトウェアを用いてのライントレース実習は実施せずに、DNCLで手続きを検討しNXCで手続きを記述したほうが、はじめの4時間の学習成果を活かせるスマートなカリキュラムになると感じた。DNCLでの手続きの表現とNXCによる手続きの表現にギャップが少ないため、“絵解き”は理解の補助にならないとコメントする生徒も居た。平成25年度の3学年の指導では、はじめからNXCを用いた計測と制御ができるカリキュラムに調整し授業を実施する。

参考文献

  1. (1)大庭慎一郎「入門 LEGO MINDSTORMS NXT 第2版」(ソフトバンククリエイティブ、2010年)
  2. (2)藤吉弘亘ほか「実践ロボットプログラミング LEGOMindstorms NXTで目指せロボコン!」(近代科学社、2009年)

引用・参考サイト

  1. (3)Bricx Command Center 3.3:http://bricxcc.sourceforge.net/(2013年7月5日確認)

※第6回全国高等学校情報教育研究会全国大会(京都大会)要項から転載
(2014年1月掲載)