関西地区

教育システム情報学会 2016年度学生研究発表会

プログラム間のギャップと学生の主観的な難易度の関係分析
Analysis of the Relation between the gaps of examples and exercises
program in programming classes and its difficulty
白藤 篤史，内田眞司
Atsushi SHIRAFUJI, Shinji UCHIDA
奈良工業高等専門学校 情報工学科
Department of Information Engineering, National Institute of Technology, Nara College
Email: {shirafuji,uchida}@info.nara-k.ac.jp
あらまし：一般的にプログラミング教育においては，「授業プログラム」で文法等の説明をした後，その理解を深めるための演習として「課題プログラム」が出題される.しかし、授業プログラムと比較して課題プログラムの難易度が高く，ドロップアウトする学生も少なくない。本研究では，２つのプログラムの差（ギャップ）と課題プログラムの難易度の関係を分析する.分析の結果，「プログラム中の構文要素の数」と，「プログラム間の編集距離」のギャップが難易度と関係があることが分かった.
キーワード：プログラミング教育，スモールステップ，De-gapper，レーベンシュタイン距離

1.

はじめにプログラミングは，情報技術の基本的技能であり，中等，高等の専門教育において，情報技術者の育成のためにプログラミング教育は数多く実践されている(1)．一般的なプログラミング教育形態の一つに，まず教員が当該授業で学ぶ単元に関する「授業プログラム」を用いて学生にプログラムの文法や振る舞い等を教授し，その後授業プログラムに関連するプログラム作成課題を出題する，といった方法がある．
しかし授業プログラムと課題の解となるプログラム「課題プログラム」の間に難易度の差が存在した場
合，学生は課題プログラムを作成することが困難になるという問題がある．その結果，学生の学習意欲が衰退しプログラミングが苦手となる可能性がある．
本研究では両プログラムの難易度に差が生じる要因がソースコードの差(ギャップ)にあると仮定し，その差と学生が持つ両プログラムの難易度の差との関係分析を行う．本研究の成果を基に，課題プログラムの難易度を踏まえて課題を出題することで，プログラム学習原理の一つであるスモールステップによる教育を実現できる．

2.

ギャップを測定するメトリクス

プログラムの難易度と関係があると考えられるギ
ャップを測定するメトリクスとして「構文要素の数，レーベンシュタイン距離，ジャロ・ウィンクラー距離，プログラム行数，サイクロマチック数，ネスト数の」6 つを用いる．そのうち，2 つを取り上げて説明する．の構文要素に大きな差が生じると，学習者は困難であると感じると考えられる．構文要素は De-gapper(2)を用いて計測する．De-gapper はマイナーな構文要素と，メジャーな構文要素の，2 種類の構文要素の数を計測できる．前者はこれまでに出現した構文要素を組合せれば容易に類推可能な構文要素のことであり，後者は容易に類推可能でない構文要素のことである．これらの要素が多い場合はプログラムのギャップが大きい状態にあると考えられる．
2.2 レーベンシュタイン距離(編集距離)
レーベンシュタイン距離は，2 つの文字列の間で相互に編集するのにかかる最小の手数である．ある文字列に対し，文字列の挿入，削除，置換を手数 1で行うものとして，距離を算出する．レーベンシュ
タイン距離の最大値は長い方の文字列の長さである
ため，2 つの文字列 s1, s2 に対し，文字列の長さをL(s1), L(s2)とすると, 標準化レーベンシュタイン距
離 ND(s1,s2)は，レーベンシュタイン距離を D(s1,s2)
として，以下のように表される(3)．
D(s1, s2)
ND(s1, s2) =max{L(s1), L(s2)}
図 1 に 例 を 示 す ． こ の 場 合 ， D(s1,s2)=5,max{L(s1),L(s2)}=7 となり，ND(s1,s2)=0.71 となる．
なお，標準化レーベンシュタイン距離は，0.0~1.0 の間で表され，２つの文字列の類似度が高い方が 1 に近づく．類似度が高い場合は，プログラムのギャップが小さい状態にあると考えられる．

2.1 構文要素の数
構文要素とはプログラミング言語の文法や書式のことをいう．構文要素は講義の単元と関連しており１つのプログラムに多くの構文要素が詰まっていると，学習者にとってつまずく要因となる (2)．したがって，授業プログラムの構文要素と演習プログラム

図 1 編集回数

137関西地区

3.

教育システム情報学会 2016年度学生研究発表会

研究方法

で相関があるものはメジャーな構文要素数，レーベンシュタイン距離，ジャロ・ウィンクラー距離であることがわかる．

研究方法を図 3 に示す．

5.

考察

5.1 研究結果からの考察
メジャーな構文要素数は正の相関があったので，授業プログラム，課題プログラム間で，メジャーな構文要素数の差が大きければ大きいほど，学生が感じる難易度も上昇すると考えられる．また，レーベンシュタイン距離は負の相関があったので，授業プログラムから課題プログラムへの編集回数が多ければ多いほど，学生が感じる難易度も上昇すると考えられる．
図 3 研究方法①②③

5.2 今後の課題

授業プログラム 1 つと課題プログラム幾つかをそれぞれ学生に提示し，授業プログラムに対し課題プログラムは簡単か難しいか，1~5 の 5 段
階で評価を行ってもらう．
評価してもらったものと同じ授業プログラム，課題プログラム間のギャップを，第 2 章で説明したメトリクスを用いて測定する．
難易度評価アンケートの結果と，測定したギャップとの関係を分析する．

対象講義は，平成 28 年度奈良高専情報工学科 2年生のプログラミング I である.前期講義 15 回のうち，5 回の講義で課題プログラムに関するアンケートを実施した.各授業プログラムに対する課題プログラムの数を表 1 に示す．なお，.講義を受講した学生は 46 人であったが，正しくアンケートに答えた学生は 17 名であった.

6.

まとめ

研究結果より，メジャーな構文要素，レーベンシ
ュタイン距離，ジャロ・ウィンクラー距離をメトリクスとして選択し，定量的に計測されたプログラム間のギャップは，学生が感じる主観的な難易度と関係があることが分かった．つまり，これらのメトリクスを用いてプログラム間のギャップを縮めることで，教員はギャップの大きい課題を出題することが無くなり，学生は課題を解くのが困難ではなくなると考えられる．

表 1 課題プログラムの個数講義
第5回 第6回 第7回 第9回 第10回
授業プログラム数11111
課題プログラム数
644444.

本研究では，「授業プログラム」に対する「課題プログラム」の難易度評価を行ってもらったので，構文要素数をメトリクスとしてギャップを測定するとき，前回以前の講義プログラムを取り入れなかった．
つまり，累積的な学習を前提としていなかった．しかし，実際学生は授業プログラムの構文要素のみを理解しているのではなく，前回以前の授業プログラムの構文要素も理解していると，考えられる．従って，前回以前の授業プログラムを考慮した分析方法の確立と実践が今後の課題となる．

謝辞
快く de-gapper を公開いただいた，明星大学情報学部情報学科長慎也准教授に感謝します．また，アンケートに協力いただいた学生の皆様に感謝します．

研究結果

表 1 にプログラム間のギャップと学生の主観的な難易度との，相関係数と p 値を示す．

表 1 相関係数

参考文献

用いたメトリクス
相関係数p値
メジャーな構文要素数0.680
0.009
マイナーな構文要素数0.2050.415サイクロマチック数
0.313
0.156
行数
-0.0990.660
ネスト数-0.3470.113
レーベンシュタイン距離-0.5620.007
ジャロ・ウィンクラー距離-0.6350.002
一般的に相関係数が±0.4~±1.0 だと両者の間に相関があるとされる (4)ので，用いたメトリクスの中(1) 永野和男：プログラミングを通して学ぶ論理的な思考力と問題解決能力，CUBELAND[online],<http://www.cubeland.net/jirei_htm/500016/> (2005)(2) 長慎也，保福やよい，西田知博，兼宗進「De-gapperプログラミング初学者の段階的な理解を支援するツール」，『情報処理学会論文誌』(55)No.1, pp.1-12(2013)(3) Daniel Jurafsky and James H. Martin.Speech andLanguage Processing (2Nd Edition), Prentice-Hall, Inc.,
Upper Saddle River, NJ, USA, 2009.
(4) R＋：相関係数の意味と解釈[online]，<http://rplus.wbnahce.info/statsemi_basic/sokankeisu.html>

138