中国地区

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

空欄補充によるプログラミング学習課題の作問支援に関する研究
Problem Posing Support of Programming Learning Tasks
Based on Fill-in-the-blank Questions
坂手 柊斗*1，重松 大志*2，松本 慎平 1
Shuto SAKATE*1，Hiroshi SHIGEMATSU*2，Shimpei MATSUMOTO*1*1
広島工業大学情報学部*1
Faculty of Applied Information Science，Hiroshima Institute of Technology
Email: {bm20049，bm20062，s.matsumoto.gk}@cc.it-hiroshima.ac.jp*2
広島工業大学大学院工学系研究科*2
Graduate School of Science and Technology，Hiroshima Institute of Technology
Email: md22004@cc.it-hiroshima.ac.jp
あらまし：本研究では，C 言語学習の中でも空欄補填に基づく学習課題の作問支援に焦点を当て，そのためのシステム開発を目的とする．空欄補充の学習課題とは，いくつかの入出力例とソースコード中にいくつかの空欄が設けられたプログラムが学習者に与えられ，学習者は入出力例のとおりにプログラムが動作するよう空欄に入る適切な命令を考える課題である．空欄補充による学習課題ではソースコード記述が不要なため，プログラムの内容理解やアルゴリズムを考える学習に集中できる．また，空欄補充による学習課題は，理解度を早期に把握する手法として有用だと考えられている．このような理由から，空欄補充の学習課題は，プログラミング教育の現場で広く実践されている．しかし，多くの場合，教授者が空欄補充の問題を作成する際，空欄として設定する箇所は経験を頼りに決定しなければならないため，作問は教授者にとって負担となっている．また，不正解の選択肢の組み合わせによっては，正解が一意に定まらないことがある．具体的には，誤りの選択肢同士の組合せによっては，正解と同様のパターンが出力される場合がある．このことにより，意図した学習が促進されないこともある．これらの課題を解決するため，
本研究では，空欄補充によるプログラミングの学習課題の作問支援システムを開発した．
キーワード：プログラミング，C 言語，空欄補填，多肢選択，自由記述

1.

はじめに

2.

高等教育機関のプログラミング教育では，学習課題の一つとして空欄補充問題が出題されることが多い．空欄補充問題は，入出力の例が示されたテストケースと，ソースコードに空欄があるプログラムで構成される(1)．学習者は空欄に適切な選択肢を設定することで，テストケースを満たすプログラムを作成する．このように，学習者は自分でソースコードを設計する必要がないため，プログラムの内容読解に関する学習や，アルゴリズムを実現するための構造を考える学習に集中できる．
しかし，プログラムの理解を深めるために空欄を提示する方法については，教授者の技術に大きく依存している現状がある．そこで本研究では，コードの中で重要となる箇所の提示と，作問された問題の適切性(ここで，適切性とは，解が一意に定まるかどうかを表す)を診断することにより，空欄補充問題の作問を対話的に支援するシステムを開発する．提案システムでは，プログラム依存関係の考え方に基づき，プログラム内の重要な箇所を教員に示す．その後，教員が作成した学習課題の適切性を診断することが可能となるような手法を容易に利用可能な仕組みを利用する(2)．

関連研究

空欄補充のプログラミング学習に関連した研究はこれまで多く行われている．掛下らは空欄補充学習のための支援システムを開発し，実践利用を通じその有用性を明らかにしている(3)．重松らは，多肢選択形式の空欄補充問題において，教授者が意図しない正解を探索し学習課題の適切性を検証するシステムを開発し，その有用性を明らかにしている(2)．
空欄補充問題を生成する手法は，いくつか提案されている．中でも柏原らは，プログラムにおける処理の流れの要所となる部分を PDG(プログラム依存グラフ)で見付け，その箇所を空欄として設定する方法を提案している(4)．しかし，柏原らの提案する方法
では，問題の作成者の意図に沿った空欄を設定することはできない．加えて，形式的に作成された問題は，教授者が授業で学習者に習得させようとする内容に依存しない．そのため，柏原らの提案する方法
で生成された空欄補充問題は，文法を理解している学習者が主対象だと考えられる．
本研究の主な対象である初学者の場合，教授者自身が学習意図を反映した空欄を設計する必要がある．
上述したとおり，空欄補充問題の生成方法は様々に提案されているが，教授者自身が空欄を設定する事141中国地区

教育システム情報学会 2023年度学生研究発表会に焦点を当てた研究は十分に行われていない．一方，
PDG を用いる手法では，プログラムにおける処理の流れにより多くの注意を向けさせる事が可能である．
そのため，教授者が空欄を設定する際の判断材料となり得る．

3.

提案システム提案システムでは，教授者が指定したソースコードを読み取り，PDG により重要と思われる行を提示する．教授者は，そのフィードバックを参考に空欄として設定する場所を決定し，ダミー選択肢を設定する．このとき，PDG により検出された重要箇所をそのまま空欄にするのではなく，教授者が介在して作問できるようにする．これにより，学習意図を反映した問題を作成させる事が可能となる．
しかしこの場合，作成された問題の適切性は担保されない．特に，選択肢の組み合わせによっては教授者の意図しない正解が発生してしまう可能性がある．そこで，重松らが開発した診断システム(2) (図 1参照)の機能を併せて利用する．このシステムは，教授者が設定した空欄の選択肢の組み合わせを網羅的にコンパイル・実行し，正解選択肢の組み合わせの実行結果と比較する事で，各組み合せにレベル付けが行われる．そして，レベルの分布によって，解の一意性の確認や，問題の難易度の調査を事前に行うことができる．重松らのシステムを提案システムと共に併用する事で，回答の一意性が担保された適切な学習課題を作成する事が可能である．
なお，提案システムによって作成された課題は，Hello C(5)等を用いて出題することを想定している．

4.

図 1 t-sne による学習課題の難易度の診断できたか」，「達成感を感じたか」，「作成された問題学習者が興味を持てるか」という趣旨の質問を行い，実験群，統制群それぞれで平均値を求めた，その結果，全ての項目において，統制群よりも実験群の方が良好な回答を得られた．ウェルチの t 検定(両側)では，「集中して作問できたか」という項目を除き，有意水準（p<.01）で有意な差が示された．これらの結果から，提案システムを用いて作問する事で，従来のやり方で作問するよりも負担が軽減され，かつ質の高い作問を実現できたと言える．

5.

おわりに

本研究では，プログラミング教育の現場で多く実践されている空欄補充による学習課題に焦点を当て，その作問を支援するシステムを提案した．実験の結果，提案法を用いることで，教授者の作問に対する負荷を軽減し，かつ，質の高い学習課題の作成の支援に有用であることを明らかにした．

実証実験

提案法の有用性については，比較実験により明らかにする．手順としては，被験者 20 名程度を実験群・統制群に分割し，それぞれ空欄補充問題を作成させる．統制群には，従来通りのヒントのない問題作成を行ってもらい，実験群には，提案システムを用いて重要箇所が提示された状態で空欄を設定した後，診断システムによる問題の確認と修正を行ってもらう．その後，両群が作成し，解答が一意に定まっている問題を「学習効果の高さ」「楽しく学習できるか」「やりがいはあるか」の３項目を基準に評価し，実験群，統制群それぞれの問題の評点の平均点を比較する．評価者は，プログラミングの作問経験に富んだ大学院生と教授４名である．このような評価実験と，作問時負担感等に関するアンケート結果も参考に提案システムの有用性を検証する．
評価実験の結果，統制群が作成した問題の評点は
平均 29.86 点，実験群が作成した問題の評点は 37.00点であった．ウェルチの t 検定（両側）を行い，有意水準（p<.05）で２群の差を調査した結果，実験群と統制群の間に有意な差が示された．
アンケートでは，「作問に際しての負担を感じにくかった」，「工夫して作問できたか」，「集中して作問142

謝辞
本研究は，独立行政法人日本学術振興会科学研究費助成事業(基盤研究(C)20K0319，22K02815)の助成を受けて実施した成果の一部である．
参考文献(1) T. Crow，A. Luxton-Reilly，and B. Wuensche，Intelligent
tutoringsystems for programming education: a systematicreview. In Proceedings of the 20th Australasian Computing
Education Con- ference，pp. 53-62. ACM，(2018).
(2) 重松大志，松本慎平. 空欄補填問題によるプログラミ
ング学習課題の適切性及び難易度検証システムによる分析. 電気学会研究会資料, pages 29–30, (2022).
(3) 掛下哲郎，柳田崚，太田康介，穴埋め問題を用いたプ
ログラミング教育支援ツール pgtracer の開発と評価，情報処理学会論文誌教育とコンピュータ，Vol. 2，No.
2，pp.20-36 (2016)(4) 柏原昭博，久米井邦貴，梅野浩司，豊田順一，プログ
ラム空欄補充問題の作成とその評価，人工知能学会論文誌，Vol. 16，No. 4，pp. 384-391 (2001)(5) 松本慎平, 大下昌紀, and 買田康介. C 言語初学者及びその教授者のためのサーバ・クライアントに基づくプログラミング学習支援システムの開発. 電気学会
論文誌 C (電子・情報・システム部門誌),140(9):1096–
1109, 2020.