第2章 情報活用能力を育成するコンピュータ制御指導の実際

1 「電子ルーレットをまわそう」 (第3学年 情報基礎)

(1)  題材について
 急激に進展する情報化社会の中で,その担い手ともいえるコンピュータは,あらゆる分野において活用されている。各家庭においても,さまざまな種類のコンピュータが日常的に使われるようになっている。たとえば,電気製品等に内蔵されているマイコン,文書作成用のワープロ,事務処理等に使えるパソコンなどがあげられる。これからの社会を主体的に生きていくためには,これらのコンピュータを有効に活用して,情報を適切に処理する能力が必要となってきている。
 こうした社会の情報化に対応するため,情報基礎領域では,コンピュータの社会的な役割,基本的な装置やソフトウェアの機能について理解させ,家庭生活や社会生活において,情報を適切に活用する基礎的な能力を養うことを大きなねらいとしている。なかでも,プログラム作成はコンピュータを活用するための基本の一つであり,その必要性を生徒に認識させることは非常に大切なことである。また,プログラム作成は,情報活用能力を高めるための格好の場ともなり得る。
 プログラムを作成する言語としてのBASICは,はじめてコンピュータを操作する生徒にとっても,理解が容易であり,プログラムを作成しやすいという特徴をもっている。また,いくつかの命令をいろいろに組み合わせて工夫すると,自己の目的に沿った動作を行わせることができる。このように,BASICを使ったプログラムの作成実習を通して,コンピュータ操作を論理的に手順化する能力の育成を図ることができる。
 アンケート調査によると,コンピュータを持っている生徒は12%であるが,授業以外でコンピュータを使ったことがある生徒は46%に達している。コンピュータの用途については,ワープロ,計算,ゲームに使われていると答えた生徒が多く,いろいろな機器の制御に対して有効に活用されていることを知っている生徒はいなかった。
 一方,生徒のほとんどは,コンピュータを使った授業を楽しいと感じており,高い興味・関心を示しているものの,BASICを使ったことのある生徒は1人に過ぎず,ほとんどの生徒はプログラミングの経験をもっていないことがわかった。
 この題材では,制御の対象としては電子ルーレットを取り上げ,BASICを使ってLEDで構成した電子ルーレットを制御する活動を通して,プログラムの機能を理解させるとともに,情報を処理していく手順や方法を身に付けさせることを目的とする。
 授業を構想するに当たっては,課題に直面したときにどのように解決していくかの手順を,生徒各自が進んで考えられるように教材を工夫する。また,生徒の能力に応じて,繰り返しや判定などの高度な命令語を使って,プログラムの簡略化ができるように配慮する。さらに,教師側で準備するいくつかのサンプルプログラムには,わかりやすく説明したコメント文を随所に書き入れて,プログラム中の各行の命令文がどういう意味をもっているのかが一目でわかるようにする。
(2)  総括目標
 LEDで構成した電子ルーレットをBASICで制御する活動を通して,プログラムの機能を理解し,基本的な情報処理の手順や方法を身に付けるとともに,制御するプログラムの作成を行うことができる。
(3)  具体的目標
 関心・意欲・態度
 プログラムが果たしている役割について関心を持ち,コンピュータによる電子ルーレットの制御に意欲的に取り組もうとする。
 創意工夫
 いろいろな命令語を組み合わせて,電子ルーレットのまわり方を考案するとともに,サンプルプログラムをもとに,自分で考案したまわり方を制御プログラムに表現しようとする。
 技能
 コンピュータを操作して,電子ルーレットを制御するプログラムを作成できるとともに,制御プログラムを実行して,電子ルーレットをまわすことができる。
 知識・理解
 制御に必要な機器の機能やBASIC言語の役割を知るとともに,制御にともなう情報処理の手順や方法を理解する。
(4)  指導計画(15時間取り扱い)
第一次 BASICプログラムの基本 ……………… 5時間
第二次 電子ルーレットの制御 ……………… 5時間
第1時 LEDを点灯させる
第2時 電子ルーレットを回転させる
第3時 点滅の形を制御する
第4時 点滅の速さを制御する
第5時 電子ルーレットの回転数と点滅の速さを制御する
第三次 BASICプログラムの応用 ……………… 5時間
(5)  授業の実際(第二次)<5/5時>
 本時に至るまでの経過
(ア)  LEDを点灯させる方法を理解する段階(第1時)
 LEDを点灯させるために最小限必要なプログラムは次のようになる。このプログラムを,あらかじめ生徒のフロッピーディスクに入れておくようにした。
10 CONSOLE 0,24,1,0
20 CLS 3
30 OPEN "COM:N81NN" AS #1
40 PRINT #1,"u";:PRINT #1,"___":FOR A=1 TO 5000:NEXT A

 ”___”部分の数字(以下,制御番号という。)にいろいろな数字を入力しながら,点滅の様子を観察することによって,LEDの点灯を制御できることを確認した。その際,制御番号を1,2,3と順次入力したとき,どのLEDが点灯したかを,教師側で準備したレイアウト用紙に記入した(図3)。1から12まで(レイアウト用紙1枚分)入力して確認した後,それぞれのLEDを一つだけ点灯させる制御番号を予想した。はとんどの生徒は,1,2,4,8,16,32,64,128と予想し,実際に入力して間違いないことを確認した。

図3 レイアウト用紙
(イ)  LEDを順々に点滅させ,電子ルーレットをまわす段階(第2時)
 LEDを次々と点滅させることにより,あたかも電子ルーレットがまわって見えるように,プログラムを改良した。初めは,ほとんどの生徒が制御番号を1から128まで増加させるプログラムを作成した。
 このプログラムでは,電子ルーレットが1回転して終わってしまうため,最後の行に「goto」文を追加して,繰り返し回転するように改善した。プログラムをさらに発展させた班は,次のような動作をするプログラムの作成を行った。
  点灯の開始する位置を変える。 (二つの班)
回転の方向を反対にする。 (二つの班)
点灯させる順番を工夫して形を変える。 (一つの班)
(ウ)  点滅の形を制御する段階(第3時)
 図4,図5のようなヒントをもとにして,2つ以上のLEDを同時に点灯させる方法を見つける活動を行った。

図4 ヒント1


図5 ヒント2
 数人の生徒は,同時に二つのLEDを点灯するときには,次のような式が成り立っていて,LEDの制御番号を加えた形になっていることに気付いた。
(制御番号1)+(制御番号2)=(制御番号3)
(制御番号2)+(制御番号8)=(制御番号10)
 この関係式を全員が理解した後,3つ以上のLEDを点灯させる場合でも,同様な式が成り立つことを確かめた。また,LEDを全部点灯させるには,制御番号を255とすれば良いことも確認した。これらのことをもとにして,班ごとに,いろいろ形で点滅するプログラムを作成した。
 各班は,レイアウト用紙を活用して構想を立てて,プログラムの作成を行った。作成したプログラムには,次のようなものが数多く見られた。
  • 上から下にかけて,左右が同時に点滅して行き,もとに戻る。
  • 同時に点灯した数個の光が回転をして,急に全てが点滅する。
  • 規則的なパターンを描きながら,点滅を繰り返す。
  • 数個の光が数珠つなぎになって,渦巻のように回転する。
 活用したレイアウト用紙と作成したプログラムの例を,図6に示す。
 各班は,作成したプログラムを全員に紹介するため,実物投影機とPC−Semiの画面中継機能を活用して,制御実習ボードがつながっていないパソコンのディスプレイに表示した。プログラムを作り上げた班から順に,教卓のホストコンピュータに制御実習ボードを接続して,作品カード(図7)を提示しながら実演をして紹介した。この表現活動を通して,作成意欲を高めたり,プログラムをさらに改良するヒントを見いだしたりすることができた。
 
10 CONSOLE 0,24,1,0
20 CLS 3
30 OPEN "COM:N81NN" AS #1
40 PRINT #1 "u";:PRINT #1,"1"
45 FOR J=1 TO 1000:NEXT
50 PRINT #1,"u";:PRINT #1,"3"
55 FOR J=1 TO 1000 NEXT
60 PRINT #1,"u";:PRINT #1,"7"
65 FOR J=1 TO 1000 NEXT
70 PRINT #1,"u";:PRINT #1,"15"
75 FOR J=1 TO 1000 NEXT
80 PRINT #1,"u";:PRINT #1,"31"
85 FOR J=1 TO 1000 NEXT
90 PRINT #1,"u";:PRINT #1,"63"
95 FOR J=1 TO 1000 NEXT
100 PRINT #1,"u";:PRINT #1,"127"
105 FOR J=1 TO 1000 NEXT
110 PRINT #1,"u";:PRINT #1,"255"
115 FOR J=1 TO 1000 NEXT
120 PRINT #1,"u";:PRINT #1,"0"
125 FOR J=1 TO 1000 NEXT
130 GOTO 40

図6 活用したレイアウト用紙と作成したプログラム


図7 作成したプログラム紹介に使った作品カード
(エ)  点滅の速さを制御する段階(第4時)
 サンプルプログラム中の「FOR A=1 TO 5000:NEXT A」の部分で, の数字をいろいろに変えて,点滅の速さを制御した。そして,この部分の数字が小さくなるはど,点滅が速くなることを理解した。プログラムに改良を加えながら,全部の班が点滅の速さを制御することができた。
 本時の目標
(ア)  構想を練りながら制御プログラムを作成し,プログラム実行の様子を実物投影機を用いて意欲的に提示できる。 (関心・意欲・態度)
(イ)  プログラムに改良を加えて,電子ルーレットをいろいろな速さで点滅させることができる。 (技能)
 資料・準備
 システムディスク(MS−DOS,N88BASIC,デモプログラムを含む。),PC−Semi,実物投影機,インタフェース,制御実習用ボード,学習シート,制御実習ボードレイアウト用紙,作品カード
 展開
 授業の様子
 本時では,ルーレットの回転数と点滅の速さを同時に制御することを目標にした。そのために,「FOR〜NEXT」文を入れ子にして使うことを学習した。そして,図8に示すサンプルプログラムの中で,次の2点に特徴があることを理解した。

  • 35行と120行で外側の「FOR〜NEXT」文を構成し,35行の繰り返しの回数が回転数に相当している。
  • 待ち時間を制御する「FOR〜NEXT」文の中に,変数が使われている。

 次に,このサンプルプログラムを実行して,具体的な動作を確認した。その後は,これまでに作成してきたプログラムの中に,サンプルプログラムに用いられている手法を取り入れて,改良を加えた。最初に協議をしてテーマを決め,そのイメージをレイアウト用紙にまとめてからプログラム作成を行った班もあり,全体的に意欲的に取り組んだ。ルーレットの動きが複雑になるにつれて,プログラムの行数も増えて,80行を越えるプログラムになる班も出てきて,プログラム作成に要する時間が長くなった。作成したプログラムは,これまでの授業のように,できた班から紹介した。

写真8 プログラムの作成 写真9 作成したプログラムの発表
 考察
 各班が課題達成状況を自己評価したところ,次表のような結果になった。

◎:十分達成  ○:ほば達成  △:もう一歩
課題 \ 班 10 11 12
1 LEDを点灯させる
2 回転させる
3 点滅の形を制御する
4 点滅の速さを制御する
5 回転数と点滅の速さを制御する

 この結果を見ると,すべての班が1〜4までの課題を達成させている。課題5では,回転数と速さを同時に制御するということで,プログラムの構造がわかりにくくなっているにもかかわらず,二つの班以外は課題を達成させている。1班と12班は,プログラム作成にかなりの時間を要したため,時間内には完成しなかった。
 制御に関する授業後のアンケート調査では,「コンピュータを使っていろいろな機械を動かしてみたい。」といった感想が多く見られ,制御に対する興味・関心が高まった。
 「コンピュータの操作中にわからなくなったら,どうしますか。」という質問を行って,制御に関する授業を行う前と後で比較してみたところ,「あきらめる」とする生徒が半分に減り,「自分で解決する」とする生徒が約2倍に増えていることがわかった(図9)。このように,5時間にわたる制御学習での課題解決の過程を通して,生徒は課題に対する自力解決の自信を深めた。
コンピュータの操作中に
わからなくなったら,どうしますか



制御学習前    制御学習後

図9 自力解決の自信

 授業が進行するにつれ,各班ともプログラムの行数が増え,プログラムの中で「GOTO」文や「FOR〜NEXT」文を効果的に活用するようになった。また,アイデアを練ったり膨らませたりしていくための手段として,レイアウト用紙を効果的に活用した。第3時からは,実物投影機を活用しながら作成したプログラムを紹介する場を設けて,各班の取り組みを発表した。最初は自信のあるグループが活発に活用したが,第4時,第5時と進むにしたがって,どのグループも積極的に活用するようになった。まとめの場面では,「自分達の作品を他の人に見てもらってよかった。」とする意見が数多くあった。こうした活動を通して,制御のアイデアをプログラムに表現をする能力が次第に高められた(視点D 情報の創造,伝達)。


目次へ