北海道地区

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

プログラミング学習支援システムにおける問題のネットワーク化とダミーカード自動生成方法の提案
Networking between Problems in an Interactive Environment of Programmingand Automatic Generation of Dummy Cards
小林 陽昭*1, 倉山 めぐみ*2
Haruaki KOBAYASHI*1, Megumi KURAYAMA*2*1 生産システム工学科情報コース*1Production System Engineering Information Course*2 函館工業高等専門学校*2National Institute of Technology, Hakodate College
Email: 15071@hakodate.kosen-ac.jp
あらまし：我々は，学習者が日本語や C 言語の 1 処理が書かれたカードを並べることでプログラミングを作成し，システム側からのフィードバックを得ることで学習を進めていく学習支援システムの開発を行ってきた．現在，このシステムは，元のプログラムで利用するカードしか用意していないという問題点があるが，プログラムで利用しないカードを加えることで，より有効な学習を行えるようにしたいと考え，
ダミーカードを含むカードセットの用意手法を提案する．
キーワード：プログラミング， C 言語，日本語，カード，ダミーカード，ネットワーク

1.

しか生成できず，問題をよく読まずとも正解してしまう場合があるという課題がある．利用者により深く学習させるためには，正解カードに類似したダミーカードが必要である．ただし正解に類似したカードを手動で用意するには膨大な時間を必要とし，後から問題を追加することも難しくなってしまう．そのため本研究では，「ダミーカードの自動生成」を行
うための「問題の特徴の定量化」，「問題同士のネットワーク化」の手法を提案する．

はじめに社会の情報化に伴い，教育の現場においても情報化の推進が行われ，その一つとして，『プログラミング教育の推進』(1)が挙げられる．これにより，初等中等教育でもプログラミング教育の導入が行われることがすでに決まっている．しかし，技術者を育成していく過程では，以前から授業として行われており，演習の部分は教員の負担が大きくなってしまうなど，授業構成にはいくつか問題点があり，この問題を解決するために ICT を利用した自学自習など様々なプログラミング学習支援システムが開発されている(2)(3)．
また，プログラミング言語を使ったプログラミン
グを学習しているものの中には，プログラミングに苦手意識を持っているものも多く，一つの原因として，問題の意味は理解できるが，それをプログラム言語で記述することができないことが挙げられる．
そこで，この問題を解決するために，処理が書かれた単文カードを取捨選択し並べることでプログラミングを作成し，システム側からのフィードバックを得ることで学習を進めていく学習支援システムを開発してきた(4)(5)(6)．既存のシステムでは利用者が C
言語と日本語の 1 対 1 対応を理解することで C 言語を記述できるようになるとしており，利用者にこれを理解させるために以下の手順をとる．まず単文が空欄になった「日本語でのプログラム記述」を穴埋めする学習を行う．これを正解することで「日本語でのプログラム記述」を参考に単文が空欄になった「C 言語でのプログラム」を穴埋めする形式の学習を行う．これによって C 言語と日本語の 1 対 1 対応を理解することができる．
しかしこのシステムには，選択肢に正解のカード

2.

プログラミング学習支援システム

3.

ダミーカードの生成方法

先行研究において開発されたシステム(5)(6)は，画面左側に表示される空欄に画面右側にある複数のカードから適したカードを埋め，画面右下の判定ボタンを押すことでシステムによる正誤判定を行い，フィードバックが得られるというものである．
この画面は 1 つの問題につき問題画面 1（図 1）と問題画面 2 に分かれており，それぞれ問題画面 1 では「日本語でのプログラム記述」を日本語で穴埋めする形式の学習を，問題画面 2（図 2）では「C 言語でのプログラム」を問題画面 1 で完成させた「日本語でのプログラム記述」を参考に C 言語で穴埋めする形式の学習を行う．また，問題画面 1 において正解した場合のみ問題画面 2 の演習に取り組むことができ，不正解の場合はそれぞれの問題を正解するまでやり直すことができる．

利用者に問題をよく読ませ学習を促進させるためには，解答の選択肢にダミーの選択肢を混ぜ，利用者を混乱させることが有効である．ダミーカードには利用者を混乱させる目的の「正解カードと類似し15

北海道地区

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

頻出する特徴を用いた場合① 元の問題③ 類似する問題数②

図1

問題画面 1（先行システム）

2 - 138

元の問題

2 - 13

類似する問題数

絞り込み項目2

絞り込み項目

変数が含まれる%dが含まれない入力が含まれる

int型 変数が含まれない

代入が含まれる

比較演算が含まれないポインタが含まれるputs()が含まれない

四則演算が含まれる繰り返しが含まれない%fが含まれる%fが含まれる

double型 変数が含まれる

double型 変数 が含まれる

図2

希少性の高い特徴を用いた場合

図 3 絞り込み項目とその結果ードと類似したカード」はネットワークで元の問題から距離が近く類似した特徴を持つ別の問題から引用する．しかし，システムの都合上，「同じ意味の違う関数」を用いても正しくプログラムが動く場合に正しく正誤判定ができないことがある．よって，「同じ意味の違う関数」をダミーカードとして引用しないこととする．

問題画面 2（先行システム）たカード」と，それをカモフラージュするための明らかにダミーだとわかる「正解カードと無関係なカード」の 2 種類を用いる．「正解と無関係なカード」
はシステムに登録してある問題からランダムに抽出するが，「正解と類似したカード」は類似した特徴を持つ問題同士をネットワーク化し，元の問題の近傍にある別の問題からカードを引用する．

4.

まとめ

本研究では，プログラミング問題をそれらが持つ特徴をもとにネットワーク化することで，システムでのダミーカードの自動生成方法を提案した．
今後の課題として，ネットワークで扱う問題の拡充，特徴の定量化の自動化，「同じ意味の違う関数」をダミーカードとして扱うための拡充，ネットワーク化方法の最適化などが挙げられる．

3.1 問題の特徴の定量化
問題同士をネットワーク化するためには，問題が「出力をする」や「変数を使用する」などどのような特徴を持っているかをフラグで管理する．これらを表にまとめ，3.2 以降で用いる．

5.

参考文献

(1) 文部科学省，”教育の情報化に関する手引き” （令和元年 12 月）
https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00117.html（2020 年 2 月，アクセス確認）(2) 兼宗 進 “小中高で必修化されるプログラミング教育とそれに向けた研究の紹介”, 電子情報通信学会 通信ソサイエティマガジン 2019 年 13 巻 2 号 pp.92-99(2019)(3) Nao Kono, Hisayoshi Kunimune, Tatsuki Yamamoto,
Masaaki Niimura ： Development and Evaluation of
Functions for Elementary/Secondary Programming
Education: The Visual Programming Environment "AT"，International Journal of e-Education, e-Business,
e-Management and e-Learning ，7(1)，pp.13-23，(2017)(4) 西山圭太，倉山めぐみ，“カードを利用したプログラミング学習支援システムの開発”，教育システム情報学会 2014 年度学生研究発表会予稿集，pp.9-10 (2015)(5) 西村宗一郎，花田理，倉山めぐみ，“日本語と C 言語をつなぐプログラミング学習支援システムの提案”，
電子情報通信学会技術研究報告，教育工学，Vol．118，
No．294， pp.39-42 (2018)(6) 大坂直輝, 倉山めぐみ, “プログラミング学習支援環
境における正解カード作成手法の提案” 教育システ
ム情報学会 2018 年度学生研究発表会予稿集，pp.7-8(2019)

3.2 問題同士のネットワーク化

3.1 で作成した表データを用いて，各問題の持つ特徴から問題同士をネットワーク化する．しかし元になる問題の持つ特徴すべてを同じく持つ別の問題が見つかる場合は少ない．そのため，元の問題と別の問題を比較する特徴を，システム内で希少性の高いものにすることで，類似した特徴の別問題を探索しやすくする．
（図 3）
図 3 の①は比較する元の問題名，②はそれとシステム内のほか全ての問題とを比較する項目，③は探索の結果判明した類似した問題の総数である．例に当てはめると，2-13 の持つ「変数」~「double 型変数」までの特徴を持つ問題をシステム内で探索したところ，8 問見つけることができたという意味である．

3.3 ダミーカードの自動生成3.2 で作成したネットワークをもとにダミーカードを生成する．ダミーカードは，明らかにダミーだとわかる「正解カードと無関係なカード」の 2 種類が必要である．
「正解と無関係なカード」はシステムに登録してある問題からランダムに抽出し，「正解カ16