• 検索結果がありません。

情報科のためのアルゴリズム活用力を意識した可視化教材の開発

N/A
N/A
Protected

Academic year: 2021

シェア "情報科のためのアルゴリズム活用力を意識した可視化教材の開発"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

Ⅰ はじめに

問題解決能力を育成することの重要性から、近年、初等中等教育におけるプログラミン グ教育は注目されている。 高等学校におけるプログラミング教育は、現行の高等学校学習指導要領1 )において、 共通教科「情報の科学」の「問題解決とコンピュータの活用」の単元内で、「問題の解法 をアルゴリズムを用いて表現する方法を習得させ、コンピュータによる自動実行の有用性 を理解させる」と述べられており、アルゴリズムとプログラムの有効性についての内容で 実施されている。高等学校学習指導要領解説編2 )に、「整列や探索などの基本的なアルゴ リズム」と述べられており、基本的なアルゴリズムも学習内容の範囲に含まれている。 また、次期学習指導要領では、共通教科「情報Ⅰ」が必修となることが予定されてい る3 )。この情報Ⅰにおいてプログラミングを扱うことが予定されており、生徒全員がプロ グラミングを受講することとなる。特に、情報科の学習過程のイメージ4 , 5 )として、育 成すべき資質・能力の中の「問題解決に向けて情報技術の適切かつ効果的に活用する力」 の育成を目的として、プログラミングが整理されている。身近な事象を情報としてとらえ て、そこにある問題を効果的に解くための手段としてプログラミングがあり、問題を解決 する主体的な取り組みの中でプログラミングを活用することが重要となる。選択必修とな る「情報Ⅱ」においてもプログラミングが含まれる予定であり、教科情報全体でプログラ

情報科のためのアルゴリズム活用力を意識した

可視化教材の開発

有 田 友 和

概要  高等学校情報科において、プログラミングは、情報の科学的な理解の観点から、重要な 学習内容の 1 つである。特に同じ問題でも解決するために使用する処理手順の違いなどに よって、処理時間や結果が異なることを学習することは重要である。本研究は、プログラ ミング教育におけるアルゴリズムの効果的な活用を体験的に理解するために、探索、整 列、乱択アルゴリズム等を活用した問題解決の処理の過程を可視化する教材を提案する。 キーワード:プログラミング教育、アルゴリズム教育、ソフトウェア教材

(2)

ミングを活用した学習が実施される。 次期学習指導要領では、初等中等教育の枠組みの中でのプログラミングは重要なテーマ の 1 つである3 )。特に、小学校においてプログラミング教育が導入され、総合的な学習の 時間等を通じて、プログラミングを体験しながら論理的な思考の育成が実施される3 ) 情報科でのプログラミング教育に関する研究として、実践事例6 )や、プログラミング 作成支援のヴィジュアルシステム7 )などの先行研究は存在する。そこでは、生徒のプロ グラミングへの興味関心の向上や、教師の授業管理などが研究されている。 このような研究と同様に、問題解決の場面でプログラミングをどのように生徒に教える かも重要であり、アルゴリズムの効果を考えて活用するような教育を支援する教材の開発 は課題の一つである。 一方、様々な問題を効果的に解決するアルゴリズムは、数多く提案されている8 )−10)。こ のようなアルゴリズムの中から、情報科のプログラミング授業内で活用できるアルゴリズ ム教材を提案することは可能であると考えられる。例えば、乱択アルゴリズムなどは、筆 者が知る限りでは情報科での適用事例は少ないようである。情報科においては、統計的な アプローチやシミュレーションも重要な学習項目であり、乱択アルゴリズムのような確率 的な方法は、これらの学習の手助けにもなると考えられる。 本研究の目的は、アルゴリズムの特長を理解して活用する力を育成することを意識した 教材の開発である。そのために高等学校情報科におけるプログラミング教育において、ア ルゴリズムの効果を考えるために必要な視点として、探索、整列、乱択アルゴリズム等の 比較を取り上げ、そのアルゴリズム学習を実験的かつ体験的に実施するために、その処理 の過程を可視化する教材について検討し提案する。 本論文の構成は次の通りである。第 2 章において、高等学校におけるプログラミングに ついて、目標や対象を整理し、どのようなデータ構造とアルゴリズムを用いるのか検討す る。第 3 章において、プログラミング教育におけるアルゴリズムの評価についていくつか の問題点についてまとめる。第 4 章において、そのプログラミング教育を支援するための アルゴリズム教材について提案する。最後に、今後の検討課題についてまとめる。

Ⅱ 共通教科情報とプログラミング

Ⅱ− 1  共通教科情報におけるプログラミング教育 現行の学習指導要領1 )においては、「情報の科学」の「( 2 )問題解決とコンピュータ」 の「イ.問題解決と処理手順の自動化」において「問題の解法をアルゴリズムを用いて表 現する方法を習得させ、コンピュータによる処理手順の自動実行の有用性を理解させる」

(3)

なアルゴリズム、簡単なアルゴリズムを生徒に表現させ、それを自動実行させるなどの体 験的な学習を通じて行うことが考えられる」と述べられている。つまり、プログラミング での表現や実行体験を扱うこととなる。 同時に、「処理手順に簡単な変更を行うだけで処理結果に違いが出たり、少しでも処理 手順に誤りがあると想定通りの結果が出なかったり、処理時間に大きな違いが生じたりす ることも理解させる」とも述べられている。つまり、処理手順や結果、処理時間の比較な ども学習内容の一つとなる。 一方、専門教科においては、教科「アルゴリズムとプログラミング」において、「( 5 ) アルゴリズム応用」の単元で、整列については選択法、交換法、挿入法を、探索について は線形探索法と二分探索法などを比較させるなどして、処理効率について考えさせる。つ まり、専門教科においては、基本的なアルゴリズムを理解する視点が共通教科と比較して 重要となる。 Ⅱ− 2  共通教科情報におけるアルゴリズムとデータ構造 このような情報科の目標に照らし合わせて、プログラミング教育に使用するアルゴリズ ムやデータ構造を検討する必要がある。 アルゴリズムに関する教育は、順次、繰返し、条件判定のような基礎構文の学習を中心 としたプログラミング教育のみが対象ではなく、単元では探索や整列のようなアルゴリズ ムも学習対象の一例となる。しかし、単純なアルゴリズムの性質の学習のみではなく、問 題解決のための論理的な思考と合理的な判断の育成につなげるような視点も重要である。 データ構造については、身近な情報の抽象化の中で必要となるデータ構造が教材として 必要となる。データサイエンスの学習や、整列や探索といったアルゴリズムを考えると整 数値などの基本データ型による配列は、学習対象のひとつであると考えられる。木やリス トなどの代表的なデータ構造は、その特性を理解して使用することが必要であり、授業に 導入するには理解に必要な十分な学習時間の確保が必要である。 乱択アルゴリズム8 )は、ランダムにデータを選択することで得られる結果を利用した アルゴリズムの総称である。乱択アルゴリズムは、ランダムな選択を行っても問題ない場 合に平均的な効果を得たい場合や、ランダムな選択をしても確率的に妥当な結果を得られ る場合に適用される。効率性という視点に立つと、プログラミング教育において、乱択ア ルゴリズムの考え方は、一つの選択肢になると考えらえる。 このような理由から、本研究では、基本的なデータ構造である配列を用い、アルゴリズ ムの効果的な活用という観点から乱択アルゴリズムを含めるような教材を提案することと する。

(4)

Ⅲ アルゴリズムの効果の評価方法における課題

アルゴリズムの効果を定量的に推定する方法にはいくつかの方法がある。 アルゴリズムの評価においては、時間計算量や領域計算量などを論理的に計算して求め る。問題を解くとき、これらの計算量が少ないアルゴリズムの方が効率的である。しか し、高等学校教育の段階において、生徒に時間計算量や領域計算量について求めさせるこ とは、たとえ単純なアルゴリズムでも学習にかかる時間的なコストが大きいと考えらえ る。なぜならば、プログラムの各処理の仕組みの理解に加えて、数学上の様々な関数の性 質の理解、漸化式の考え方などは、数学科との連携をとりながら無理がないカリキュラム の中で教えることが重要となるからである。つまり、情報科の限られた時間において扱う には、十分な時間確保ができるような年次計画の立案が課題となる。 作成したプログラムの実行時間を計測するという方法でプログラムをベンチマークし、 そのプログラムが実際に効果的に動作するかを測定するという方法は、シンプルな方法の 一つである。短い授業時間内に実験と計測ができ、自動実行を体験的に学習するという目 的にも合致する。また、入力データのサイズを調整するなどして、目的である「処理時間 の違い」を体験するたさせることも可能である。 しかし、ここにも様々な問題がある。例えば、プログラムは入力データに依存して実行 時間が大きく変わる場合も多い。アルゴリズムの比較の際に教員の予想可能な実験結果を 得るためには、入力が仮定されるデータの組合せの数が多くなることもあり、その場合は 計算量が表す平均的な結果を得るために、ベンチマーク実験にかなりの時間を要すること になる。また、実験時間を短くする目的で、少ない入力データを使用した場合は偏りが生 じることもあり、理論上の効率的なアルゴリズムの方が、非効率なアルゴリズムより悪い 実行時間となる可能性もある。特に、身近なデータは偏っている場合も多く、入力データ として実験に使うには注意が必要である。他にも、ベンチマークの結果はハードウェアに まつわる問題が反映され、思わぬ結果を得る場合もある。 このような問題から生徒が間違った判断を起こさないように、教材は論理的な観点に基 づく視点によるアルゴリズムの比較が可能で、ベンチマークのように授業内に実験可能か つ実行結果をわかりやすく提示できるようなものを用意する必要がある。

Ⅳ アルゴリズム教材

以上のことを踏まえて、ここでは情報科で扱うことが可能なアルゴリズムの活用を考え る教材の一つを提案する。

(5)

をどれか 1 つ求める」問題8 )を考える。集合は配列として与えられるものとする。この 問題の解を求める方法として、乱択アルゴリズムを含む種々のアルゴリズムを玉木は著書8 ) の中で提案している。 本教材は、学習の目的である「整列などの基本的なアルゴリズムの体験」や「処理手順 の簡単な変更による処理結果の違い」、解決方法の違いによる「処理時間の大きな違い」 といったアルゴリズムの効果を体験させるために、問題解決の方法として玉木のアルゴリ ズムを含む 6 種類の方法を検討する。具体的には、( 1 )配列のすべての要素を走査して 調べ最大値を求める方法、( 2 )配列のN/2+ 1 番目の要素まで走査して調べてその要素 中の最大値を求める方法、( 3 )配列の要素をすべて整列し最大値を 1 つ答える方法、( 4 ) 配列の先頭からN/2番目までの要素を整列しN/2+ 1 番目以上の要素を 1 つ答える方法、 ( 5 )配列の要素をランダムに20個だけ選択し一番大きい値を求める方法、そして( 6 ) 配列の要素を先頭から20個だけ選択し一番大きい値を求める方法の 6 種類である。このう ち、玉木8 )が提案したアルゴリズムは方法( 1 )( 2 )( 5 )( 6 )である。 各方法の特徴は次の通りである。 方法( 1 )は、配列のすべての要素を走査して調べて、最大値を求めるアルゴリズムで ある。最大値ならば大きい方からN/2番目以内の値となる。したがって、妥当な結果が得 られるアルゴリズムであり、一番単純であると考えられる。 アルゴリズムは、次のように改善することができる。N/2+ 1 番目の要素まで走査して 調べて、その要素中の最大値を求めるアルゴリズムである。この値も大きい方からN/2番 目以内の値となるため、妥当な結果が得られるアルゴリズムである。走査の対象となる要 素数が半分になることから、処理の簡単な変更による処理時間の変化を体験することがで きる。 単元の学習範囲内のアルゴリズを活用して答える別の素朴な方法は、方法( 3 )のよう な配列を整列し最大値(N/2+ 1 番目以上の要素)を 1 つ答える方法である。方法( 3 ) の時間計算量は整列アルゴリズムに依存する。情報科で扱う交換法のような整列アルゴリ ズムはO(N2)時間であるので、この場合はO(N2)時間を必要とする。アルゴリズムが 交換法であれば、方法( 4 )のように配列をN/2個まで整列しN/2+ 1 番目以上の要素を 1 つ答えることで、実行時間を改善できる。この方法は、方法( 1 )や( 2 )と比べて計 算量が大きく良い方法ではない。しかしながら、整列アルゴリズムの体験や処理時間の違 いを体験するという目的のために、教材として取り入れる。 方法( 5 )は、要素を20個ランダムに選択し一番大きい値を選ぶ方法である。この方法 は乱択アルゴリズムで実装され、失敗確率が約百万分の 1 で解を得ることができる。した がって、失敗する可能性は低く、妥当なアルゴリズムであると考えてよい。ランダムに選 択するという処理の変更であり、要素数が十分に大きければ、繰返し回数も方法( 2 )よ り少なくすることが可能である。つまり、方法( 1 )や( 2 )と比較しても、処理時間の 大きな違いを体験できる可能性がある。同時に、実装方法はとても簡単であり導入しやす

(6)

く、数学で学習した確率の有効性を理解する 1 つの教材としても期待できる。 方法( 6 )は、配列の要素を先頭から20個だけ選択し一番大きい値を求める方法であ る。方法( 2 )と方法( 5 )との比較のために実施する。ランダムではない選択では、配 列の要素の並びによって結果が左右される点が、方法( 5 )との違いである。また、配列 の前半部分を利用する点では方法( 2 )と同じであるが、要素数が十分に大きい場合にお いて方法( 2 )は正解を出すのに対して方法( 6 )は必ずしも正解を出すとはいえない点 が違いである。 Ⅳ− 2  教材 アルゴリズムを理解してその適切な活用方法を考える目的と、各方法の動作の違いを実 験的に比較し視覚的に処理過程を確認することを目的としたソフトウェア教材を開発した (図 1 )。本教材は、各方法のアルゴリズムの動作をアニメーションで可視化するソフト ウェアである。本ソフトウェアはヴィジュアルデザイン用言語であるProcessing 11)を用 いて開発した。Processingは、OSに依存せず、Webブラウザ上でも実行可能な形式も存 在するため、様々な教室環境で利用可能である。同時に、Processingはコードから実行す るため、簡単にコードの一部を変更して、様々な配列や乱数で繰り返し実験することが可 能である。このような実験を通じて、各アルゴリズムの性質を理解して活用することの重 要性を意識させることがねらいである。 図 1 は、同一の配列について、各方法を適用した例である。与えられた配列の要素は 1 (2) (3) (4) (5) (6) (1)

(7)

以上100以下であり、同じ値の要素を含まない。各要素の値は棒グラフのように表示さ れ、発見された実行結果は、濃く色づけられて表示される。 アニメーションの目的は、ステップごとにアニメーションを変化させることによって、 処理の違いを理解するために活用することである。実行時間がアニメーションの速度に直 結するため、方法( 3 )と( 4 )は特に遅さを体験させることである。 Ⅳ− 3  教材使用者による評価 大学 4 年生 2 名に教材について説明し、教材を一定時間使用した後に、以下のような感 想を得た。(以下原文そのままに記載する。) ⃝ 「ランダムに20個とり出すやつ。回数を重ねるという考えがなかったけれど、確か に回数を重ねれば失敗の確率は減るなぁ……と思った。」 ⃝ 「全て比較してみるとわかりやすかった。」 ⃝ 「正確さを重視するか、はやさを重視するかで選ぶものがかわりそう。( 1 )をえ らんだのは “正確さ(重視)>はやさ(軽視)” という理由。」(筆者補足:「( 1 ) をえらんだ」とは「問題を解くために方法( 4 )を解法に選ぶ」という意味である) ⃝ 「とてもわかりやすい。アニメーションによる動作確認が見ることができると、並 べ替えをしているのがすぐにわかる。アルゴリズムの動作の速さの違いも感じやす い。」などである。 目的である効果の違い(速さの違い)への気づきや、正確さを含めた効率性についての 気づきがあることがわかる。また、整列アルゴリズムを使う方法は、図 1 ( 4 )のように 結果がわかりやすいため、他の方法より実行速度は遅いが、正確で良いように見えること は意外な感想であった。

Ⅴ おわりに

本研究では、情報科で活用可能なプログラミング教育を支援するソフトウェア教材を開 発した。教材は、情報科で学習する整列や探索の応用に加えて、乱択アルゴリズムを活用 した問題解決について、そのアルゴリズムの処理過程を可視化して示すことで、処理方法 を比較しながらアルゴリズムの活用について考え、その効果について学習するための教材 となっている。本教材は、主体的な合理的判断を意識するための動機づけになると考えら れる。 今後は、より多くのアルゴリズムを体験的に比較できるようなプログラミング教育のた めの教材の開発を行いたい。 参考文献 1 ) 文部科学省,「高等学校学習指導要領」,東山書房(2009).

(8)

2 ) 文部科学省,「高等学校学習指導要領解説 情報編」,開隆堂出版(2010). 3 ) 中央教育審議会,「幼稚園、小学校、中学校、高等学校及び特別支援学校の学習指導要領等の 改善及び必要な方策等について」(答申)(中教審第197号)(2016) http://www.mext.go.jp/b_menu/shingi/chukyo/chukyo0/toushin/1380731.htm 4 ) 鹿野利春,「次期学習指導要領における情報科教育」,『日本情報科教育学会誌』,vol. 9,no. 1, 2016,pp5- 8 (2017). 5 ) 鹿野利春,学習指導要領改訂と共通教科情報科,『情報処理』,Vol.58,No.7,pp626-629, (2017). 6 ) 天良和夫,「Excel-VBAモジュール「SMILE」を使ったプログラミング教育の実践」,『日本情 報科教育学会誌』,vol. 4,No.1,pp.51-60,(2011). 7 ) 國宗永佳,香山瑞穂,新村正明,「「情報の科学」におけるアルゴリズム・プログラミング教育 を支援するヴィジュアルプログラミングシステムの提案」,『日本情報科教育学会誌』,vol. 7, No.1,pp.37-46,(2014). 8 ) 玉木久夫,『乱択アルゴリズム アルゴリズム・サイエンスシリーズ 4  数理技法編』,共立出 版(2008).

9 ) T. H. Cormen et al., 「Introduction to Algorithms」, 2nd Edition, The MIT Press (2001). 10) J. Kleinberg, E. Tardos,「アルゴリズムデザイン」,共立出版(2008).

参照

関連したドキュメント

生活のしづらさを抱えている方に対し、 それ らを解決するために活用する各種の 制度・施 設・機関・設備・資金・物質・

電子式の検知機を用い て、配管等から漏れるフ ロンを検知する方法。検 知機の精度によるが、他

るものとし︑出版法三一条および新聞紙法四五条は被告人にこの法律上の推定をくつがえすための反證を許すもので

具体的な取組の 状況とその効果 に対する評価.

具体的な取組の 状況とその効果 に対する評価.

実効性 評価 方法. ○全社員を対象としたアンケート において,下記設問に関する回答

変更量 ※1

検証の流れ及び検証方法の詳細については、別途、「特定温室効果ガス排出量検証 ガイドライン