北海道札幌稲北高校 早苗 雅史
高等学校では平成15年度より,新教科「情報」が新設される。この背景には急速に進む高度情報化社会の到来と,それに対応した知識・技能や情報に関する見方・考え方を養成する必要が生じたことが挙げられる。情報教育の目標としては「情報活用の実践力」「情報の科学的な理解」「情報社会に参画する態度」の3つがあるが,この3つの観点を相互に関連付けてバランスよく育てることが大切である。
科目構成としては,普通教科「情報」では「情報A」「情報B」「情報C」の3科目が,専門教科「情報」においては,「情報産業と社会」「課題研究」「情報実習」「情報と表現」「アルゴリズム」「情報システムの開発」「ネットワークシステム」「モデル化とシミュレーション」「コンピュータデザイン」「図形と画像の処理」「マルチメディア表現」の11科目が設置される。
このうち2単位の選択必修となる普通科目「情報」における科目の性格の違いを述べておく。
新教科「情報」においてプログラミングが必要になるのは,アルゴリズム関連とシミュレーション関連である。アルゴリズム関連は,普通教科においては「情報B」の「コンピュータの仕組みと働き」において,専門教科においては「アルゴリズム」において扱われる。扱う内容としては構造化定理に基づく基本的なアルゴリズム,簡単な統計処理を中心とした数値計算,基礎的な整列法や探索などである。専門教科では更にデータ講座などについても扱う。
シミュレーション関連は,普通教科においては「情報B」の「問題のモデル化とコンピュータを活用した解決」で,専門教科においては「モデル化とシミュレーション」において扱われる。扱う内容としては簡単な身のまわりの現象や社会現象などをモデルを通して分析したり,モデルを動かしてシミュレーションを行うことで問題解決を図ることを例示する。具体的には飲食店にできる待ち行列や簡単な駐車場モデルなど,身のまわりの題材を取り上げたり,円周率を豆まきで求めるなどの簡単な数学モデル,物理モデルを扱う。その際にコンピュータを利用したシミュレーションが,有効な手段として活用できることを理解させる。
基本的なアルゴリズムをもとに実際にプログラミングをする場合に,どういった言語ソフトを選んだらよいのか。指導要領解説書では「生徒や学校の実態に応じて適切なものを選択」させ,その際に「表計算ソフトの機能を活用」するなどの提案も出されている。
ここで大きな問題はソフト購入の費用である。例えばMicrosoftの「VisualBasic」を台数分購入しようとすると,膨大な費用が必要となる。基本的なプログラミングを学習するためだけに,そうした費用を費やすのはとても現実的ではない。解説書における「表計算ソフトの機能を活用」するとは,具体的には「ExcelVBA」などを用いることを指している。これは現場においてパソコンを新規購入した際に,ワープロソフトと表計算ソフトが標準で添付されていることが多いことに起因していると思われる。
しかしExcelVBAを用いる場合,出力結果をセルに表示するため,余計なプログラミングが必要になる。例えば1から10までの数字を表示する場合に,10BASICとExcelVBAではどのように記述されるか比較してみよう。
For i=1 to 10 Print i; Next I | ⇒ |
For i=1 to 10 Cells(1,i).Value=i Next I | ⇒ |
基本的にVBAはこうした簡単なアルゴリズムを学習する上で,不向きなのではないかと考えられる。(VBAにはイミディエイトウインドウを用いる方法もあるので,そうした解決策は考えられるが)
次のページには,同じ題材を「JIS Full Basic」「Excel VBA」「Java Script」の3つを用いたテキストがあるので参照されたい。
⇒「これだけで大丈夫 「情報」におけるプログラミング」
http://ww.nikonet.or.jp/spring/sanae/program/program.htm
この3つのテキストのうち,JIS Full BASICに準拠した十進BASICを用いたテキストの内容に触れておく。8時間分の内容は,次の通りである。
【第1回】変数と式,【第2回】代入文・入力文
【第3回】繰り返し処理,【第4回】条件判断
【第5回】配列変数
【第6回】演習(1) 最大・最小値,平均値
【第7回】演習(2) 並べ替え(ソート)
【第8回】演習(3) 検索
5回分に基本となる入出力や制御構造,配列などを学習したあと,学習指導要領に示された基本的な数値計算,並べ替え,探索などを学習する。例題を学習したあと,類題を各自が演習する形式をとっている。これまでの実践の経験から,演習する類題の出力例を(OUTPUT)として載せておくことで,自分の作成したプログラミングが正しいかどうかの確認ができるようになっている。また,数学的な部分はあまり前面に出さない構成にしなくてはならない。
この他に「10BASICプログラミングの流れ」「デバッグ機能」「解答例」を載せてある。デバッグ機能については,学習指導要領の中でも重視されている点である。具体的なデータを用いて,トレースをしながら変数の値をウォッチすることで,アルゴリズムを理解させる必要がある。「解答例」は学習の最後に渡すことになる。
こうした基本的なアルゴリズムの学習には10BASICは最適であると考えられる。その利点についていくつか挙げてみよう。
新教科「情報」には「モデル化とシミュレーション」という異質な面をもつ分野がある。これは身のまわりの現象や社会現象などを,モデルにより分析したり,モデルを動かしてシミュレーションを行ったりすることで問題解決を図ろうというものである。著名なモデル化の問題としては「最適在庫問題」や「待ち行列の待ち時間問題」等であるが,数学モデルや物理モデルに関しては簡単なプログラミングを通して理解することが必要になってくる。解説書では,これらに関しても表計算ソフトを用いた実習などが示されているが,グラフィック機能を備えた10BASICでも簡単に作成することができる。具体例を通してみてみたい。
@ 円周率をごまをまいて求める
いわゆるモンテカルロ法である。実際にごまをまくという手作業を通して,物理的にランダム性を再現することが大事である。その後,コンピュータによるシミュレーションを通して,予測や諸問題を解決するための有効手段として活用できることを理解させる。
A 鉄人レース
下の図のようにA地点をスタートしてB地点でゴールする。海上は時速6kmで泳ぎ,陸上は時速12kmで走る。上陸地点P(x,0)によって,所要時間Tを最も短くするにはPをどのように選べばよいか。シミュレーションをすることで予測し,それを解析的に解を求めさせていく。具体的な事例をもとにシミュレーションプログラムを作成し,その解決を通して体験的に理解させることが大事である。その際に簡単なグラフィック機能を備えた10BASICは大きな道具として活用できる。
新教科「情報」においては本格的なプログラミングは必要ない。特に,普通教科「情報」においては,基本的なアルゴリズムに基づく簡単なプログラミング程度が必要とされる。
そんな中で10BASICは貴重な存在となる。手軽だが必要な機能は十分に備えていて,使い勝手が良い。BASIC自体の存在意義が再度見直される中,教育用言語としてますますクローズアップされていくであろう。