A3-3

プログラムの挙動を視覚化する学習支援システムを利用したアルゴリズム教育の実践
Educational Practice of Algorithm using Learning Support System withVisualization of Program Behavior*1*2*3*3*3*4

山下 浩一 , 藤岡 僚太 , 小暮 悟 , 野口 靖浩 , 小西 達裕 , 伊東 幸宏*1*2*3*3*3*4
Koichi YAMASHITA , Ryota FUJIOKA , Satoru KOGURE , Yasuhiro NOGUCHI , Tatsuhiro KONISHI , Yukihiro ITOH
*1
*2
常葉大学経営学部
静岡大学大学院情報学研究科*1*2
Faculty of Business Administration, Tokoha University Graduate School of Informatics, Shizuoka University*3*4
静岡大学情報学部
静岡大学*3*4
Faculty of Informatics, Shizuoka University
Shizuoka University
Email: yamasita@hm.tokoha-u.ac.jp
あらまし：我々はこれまで，教師の定義に基づいてプログラムの挙動を視覚化する学習支援システムを構築してきた．本研究で我々は先行システムを利用し，文科系学生を対象としたアルゴリズムの授業を実践した．実践授業ではアルゴリズム自身ではなく，その性質について発見学習に基づく授業内容を設定した．
本稿では実践授業の概要と受講者の反応を報告し，アルゴリズム教育に発見的手法を適用する方法について考察する．
キーワード：アルゴリズム教育，発見学習，授業実践

1.

はじめに情報処理教育が基礎的な科学教育の一つとして認知されるに従って，アルゴリズム教育はその裾野を広げている．しかし，文科系学部における我々の授業経験に基づけば，アルゴリズム科目がプログラミング演習と対になって開講されている場合でも理解を十分に定着させることは難しい．
本稿では，我々が実施したアルゴリズムの授業実践について報告する．実践授業には，我々が先行研究(1)で構築したシステムを導入した．先行システム
は教師が対象世界の視覚化方針を定義でき，その定義に基づいてプログラムの挙動を再現できる．また，実践授業の内容にはアルゴリズムの全体的な流れだけではなく，その性質についての発見学習を盛り込んだ．受講者の反応からは，我々の実践授業がアルゴリズムの一授業形態として成立することが示唆された．

2.

覚化することによって学習者の理解を支援する学習支援システムが多数報告されている (2)．これらのシステムが視覚化する対象世界はアルゴリズムの挙動を観察する場として利用されるが，発見の場としての利用には次の不満がある．発見学習においては教師がある程度の誘導を担う場合が多いと考えられる．
しかし，システムによる対象世界の視覚化方針は教師の意図と独立して提供され，視覚化要素に教師の意図を十分に反映することができない．
本研究では，我々が先行研究で構築したシステムを導入することによってこの問題に対処した．先行システムは，教師が対象世界の視覚化方針や視覚化要素を定義する機能を持つ．この機能を利用することによって，教師が講義の中で学習者に示した図形要素をそのまま利用して対象世界を描画できることや，発見の手掛かりや観点を学習者に提示できることなどの効果が得られる．先行システムの機能の詳細については文献(1)に譲る．

基礎的考察

アルゴリズムは問題解決の本質であり，様々な問題に対する応用力を修得させることが望ましい．未知の問題への応用には解法の発見が伴うことを考えると，発見の仕方を学習する効果が期待できる発見
学習は，アルゴリズム教育に適合しやすい学習手法と考えられる．ただし，我々が授業を担当する文科系学部において未知の問題への応用として位置づけられるのは，解放の新たな創出よりもむしろ既知の解法をいかに適用・応用するかである．これらの考察の下，我々はデータの比較回数や交換回数といったアルゴリズムの性質について発見的手法で学習させる授業実践を試みた．
これまでにプログラムやアルゴリズムの挙動を視

3.

実践授業

我々は私立大学経営系学部 3 年生を対象として，先行システムを導入した 2 つの実践授業を実施した．
1 つ目は基本的な整列アルゴリズムに関する授業で，実授業 2 回分に組み込んで実践した．2 つ目は探索アルゴリズムに関する授業で，実授業外で被験者を募集して実践した．以下，それぞれについて述べる．
3.1 整列アルゴリズムに関する実践授業
実践授業の目標は，選択ソート，挿入ソート，バブルソートの 3 つの整列アルゴリズムの挙動を理解することと，データの比較・交換回数に基づいてアルゴリズムの違いを理解することとした．被験者は講義科目「アルゴリズム」を受講する経営系学部 3― 159 ―教育システム情報学会 JSiSE2015
第 40 回全国大会 2015/9/1～9/3

年生 24 名で，すべてプログラミング学習歴は 1 年未満である．本実践は実授業 2 回分に組み込んで実施した．1 回目の授業では整列アルゴリズムについて75 分間の講義を行い，講義後に 15 分間のプレテストを実施した．プレテストの内容は 3 つの整列アルゴリズムにおける各変数の値をトレースするものとした．2 回目の授業では学習支援環境を利用させた．
教師は学習支援環境の操作方法について 10 分程度説明した後，3 つの整列アルゴリズムそれぞれについて次の流れで学習させた．
1. アルゴリズム全体にわたって，対象世界の変化の様子を一通り観察させる．
2. 配列の初期状態を入力させて，交換回数や比較回数が実際に変化するかどうか確認させる．
3. 交換回数，比較回数がそれぞれ最小，最大になる配列初期値を探させる．
4. 求めた配列初期値について学生に問いかけ，その反応を元にアルゴリズムの性質を説明する．
学習手順 3 は発見学習に基づくものとして盛り込んだタスクであり，観察対象のプログラムに配列初期値を入力する処理を盛り込んで実行時に初期値を入力できるようにした．学習支援システムを利用した学習では，対象世界への働きかけは主に所与のアルゴリズムが実現し，学習者はアルゴリズムの更新以外に対象世界を操作することができない．手順 3のタスクは初期状態の設定を通じて対象世界の操作を実現したものである．学習者はアルゴリズム理解から初期状態についての仮説を生成し，生成した初期値を与え，システムを操作して仮説を検証し，得られた結果から必要に応じて仮説を修正する．このタスクによってアルゴリズムやプログラムコードを記述することなく発見学習のサイクルが構成される．
全体で 60 分間の観察学習を終えた後，15 分間でポストテストを実施した．ポストテストの内容はプレテストと同じアルゴリズムのトレースとした．ただし，配列の初期状態は異なるものを利用した．採点結果の平均点はプレテストが 100 点満点中 26.7 点，ポストテストは 100 点満点中 40.1 点であった．
システムに与えた視覚化方針のうち発見学習を支援するものには，交換処理と比較処理の実行を学習者に知らせるメッセージがある．学習支援環境が視覚化した対象世界の例を図 1 に示す．

ことと，探索キーや格納データの違いに基づいて探索手法の特徴や違いを理解することとした．被験者
は 4 名で 1 つ目の授業実践にも参加していた学生であったが，探索アルゴリズムについては未習であった．実践授業は全体で 120 分の実施とし，学習支援環境の操作方法と画面の見方について説明した後，次の流れで 3 つの探索アルゴリズムそれぞれについて学習させた．
1. アルゴリズム全体にわたって，対象世界の変化の様子を一通り観察させる．
2. 比較回数最小，最大となる探索キーを探させる．
3. 求めた探索キーについて学生に問いかけ，その反応を元にアルゴリズムの性質を説明する．
発見学習に基づくものとして盛り込んだタスクは手順 2 であり，視覚化方針には比較対象の二つの要素への色付けを盛り込んで学習者に発見学習における着目点を示唆した．学習終了後，ポストテストとして複数の探索アルゴリズムを挙げてそれぞれの挙動と特徴を記述させた．その結果，すべての被験者は探索アルゴリズムを 3 つ挙げて挙動や特徴を概ね解答できていた．ただし，探索法の名称や用語が適切に使えていない傾向が見られた．

4.

まとめ

我々が学習支援環境に盛り込んだ視覚化方針は，対象世界やアルゴリズムの挙動の説明ではなく，発見学習における発見の着目点を示唆する強調表現である．授業実践では学習者は気付いたことを教師に盛んにフィードバックしており，発見の観点のばらつきはある程度抑制できたものと考えられる．プレテスト，ポストテストによる学習効果の評価は，我々の実践授業がアルゴリズムの一授業形態として成立し得ることを示唆している．また，適切な学習支援システムを導入して適切に授業を計画することによって，アルゴリズムの授業で発見学習を実施可能であるという知見が得られた．導入するシステムが少なくとも満たすべき要件は次のようにまとめられる．
アルゴリズムの入力や修正以外の方法で対象世界への働きかけを設計できること
発見学習における発見の手掛かりなど，教師の意図を反映して対象世界を視覚化できること
今後の課題として，授業実践を継続してアルゴリ
ズム教育に発見的手法を適用する手法について，さらに知見を蓄積することと，学習効果のより定量的な評価方法についての検討が挙げられる．
参考文献

図 1 整列アルゴリズムにおける対象世界の例
3.2 探索アルゴリズムに関する実践授業
授業実践の目標は，逐次探索，二分探索，ハッシ
ュ探索の 3 つの探索アルゴリズムの挙動を理解する(1) 藤岡僚太，小暮悟，野口靖浩，山下浩一，小西達裕，
伊東幸宏: “対象世界におけるプログラムの挙動を視覚化する教材の作成支援環境”，教育システム情報学会第 39 回全国大会講演論文集，pp.77-78 (2014)(2) Pears, A., Seidman, M., Malmi, L., et al.: “A survey ofliterature on the teaching of introductory programming”,
ACM SIGCSE Bulletin, 39(4), pp.204-223 (2007)― 160 ―