四国地区

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

ボードゲーム戦略を題材としたJava プログラミング演習における学生の取組み状況の分析
Analysis of Students’ Efforts in Java Programming Exercise
with Board-Game Strategy
花川 直己， 山田 航平， 富永 浩之
Naoki HANAKAWA， Kohei YAMADA， Hiroyuki TOMINAGA
香川大学工学部
Faculty of Engineering, Kagawa University
Email: s12t253@stmail.eng.kagawa-u.ac.jp
あらまし：問題解決型の応用プログラミングとして，ボードゲーム戦略を題材とする対戦形式での Java演習を提案し，実際の授業で実践している．支援システム WinG を開発し，提出された戦略同士を対戦させる予備大会を運営して，順位や戦績を公開する．試行錯誤的なプログラミングを体験させ，持続的な戦略修正への動機付けを行う．2011 年度からの実践の総括として，最終大会の結果について，戦績や達成状況など，各側面から分析する．
キーワード：応用 Java プログラミング演習,ボードゲーム戦略,大会形式の競争型学習,コード分析

1.

はじめに

大学情報系の応用的なプログラミング演習では，C++/Java 言語などオブジェクト指向の導入，ソフトウェア開発手法の実践などが中心となっている．しかし，提示した題材が学生の興味と程遠いと，具体的なイメージが湧きにくく，プログラミングの到達目標を描きにくい．そこで，知識情報処理の分野から，ゲーム戦略を題材とする演習が試みられている．
これには，競争型学習の要素も盛り込まれ，動機付けへの効果が期待される．
本研究では，ボードゲームによる対戦形式でのJava 演習を提案している[1]．ゲームは，五目並べに石取りを加えた五五を採用する．五五は，石を取ることで局面が大きく変化する．連と取という 2 つの勝利条件があり，それぞれに攻撃と防御の優先度が考えられ，初心者でも戦略の個性が出やすい．
戦略の作成手順は，戦略方針に従って，各枡の評価値を求め，最高点の位置を着手とする．評価値は，経験的に割り当てた値から，実戦を通して調整していく必要がある．また，局面パターンのより詳細な判別に基づいて精密化していく．学生には，プロトタイプのソースコードを提示し，最低限必要な処理をコメントで指示する．典型的な配置パターンの実装から始め，独自の局面分析に進んでいく．

2.

予備大会と最終大会作成された戦略同士を対戦させる大会を運営する
ために，大会運営サーバ WinG-CS を開発している．
WinG-CS は，提出された戦略プログラム同士を対戦させ，戦績や順位を公開する．演習期間中は，予備大会として，対戦結果を参考に，何度でも戦略を提出できる．締切時に各自の最強戦略で総当りの最終大会を実施する．これにより，試行錯誤的なプログラミングを通して，持続的な戦略修正を動機付ける．

145

2011 年度から，強さの指針として，3 段階の指標戦略を導入した．学生の競争意欲の刺激を図るため，具体的な目標として提示する．強さの段階(強・中・弱)ごとに，複数の指標戦略を用意する．2012 年度
からは，対戦相手のレーティングを考慮した重付勝点度(WWG)を導入した[2]．WWG によって，見かけ上の強さや相性によるバイアスを減らし，順位の妥当性を高めることができる．2013 年度からは，予備大会の終盤に間引対戦を試験的に導入した[3]．迅速に定期対戦の結果を反映し，戦略修正の繰返しを活性化させる．大幅な効率化に繋がり，学生からの評価も高かった．

3.

提出状況と得点分布

予備大会での提出状況については，図 1 の通りである．2012 年度は，戦略数が全体で 824 個，1 人当たり 18 個であった．2013 年度は，戦略数が全体で942 個，1 人当たり約 25 個となり，前年の戦略数を大きく上回った．最大で 150 個近い戦略を提出する受講者もいた．
最終大会での WWG の分布状況については，図 2の通りである．2011 年度は，WWG が 0.3 前後の戦略が最も多く，中上位に位置する戦略が少ない．2012年度は，下位から上位にかけて，人数が緩やかに減少しており，レベルが均されてきたといえる．2013年度は，下位の戦略が減少し，上位の戦略が増加している．一方で，WWG が 0.5 前後の，中位が減少しており，全体的に強さが二極化している．
予備大会での提出数と，最終大会での WWG の相関性について図 3 に示す．WWG と提出数には，中程度の正の相関があることがわかる．しかし，予備大会の提出数が少ないが，上位に位置する学生も存在している．これは，ローカルでの試行錯誤を熱心に行っているのではないかと考えられる．

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

4.

四国地区

参考文献
(1) 尾崎浩和, 富永浩之, 林敏浩, 山崎敏範: ボードゲー

戦略コードの分析と考察

本演習では，戦略同士の対戦による戦績をプログラムの外部評価として用いている．しかし，順位が高い戦略が，必ずしも質の良いソースコードとは限らない．そこで，定量的かつ自動的な内部評価の手法として，ソフトウェアメトリクスに着目する[4]．
特に，コードの量，冗長性，構造化，複雑度などを計測する．
ただし，戦略プログラムは，if-then 形式のプロダクションルールに近く，一般的なプログラムとは異なった特徴を有している．また，オブジェクト指向の特性や実行ライブラリの影響もある．そこで，絶対的な指標というより，他のコードから大きく逸脱した特異なコードを検出することに焦点を当てる．
現在，2013 年度の最終大会の戦略コードについて，WWG と各指標との相関性について分析している．
対象とする戦略コードの事前処理として，コメントや空行を削除したコードを用いる．
本論では，特にコードの量について述べる．具体的には，戦略コードの行数を用いる．図 4 は，行数と WWG について散布図を作成し，相関性を示したものである．下位陣は，200 行前後と行数が少なく，明らかな努力不足といえる．一方，上位陣は，200行から 500 行の行数を記述している．また，行数とWWG については，弱い正の相関がある．このため，図中の丸のような，同程度の WWG の戦略から大きく逸脱した，奇妙なコードの検出に利用できる．
現在，他のメトリクスに関しても，WWG との相関性について調査している．相関性があるものについては，同様の方法で奇妙なコードの検出を試みる．
複数のメトリクスを組み合わせることにより，より精密な検出が期待できる．また，各点と回帰直線の距離を標準偏差で割った回帰的指標を導入することも検討している[5]．

5.

ムの戦略プログラミングを題材とした Java 演習の支援システムの開発, 情処研報, Vol.2006, No.108, pp.1-8(2006)(2) 山田航平, 富永浩之: ボードゲームの戦略プログラミングを題材とした Java 演習支援 －指標戦略の導入と重み付き勝点度による結果分析－, 教育システム情報学会 研究報告, Vol.28, No.2, pp.127-134 (2013)(3) 山田航平, 富永浩之: ボードゲームの戦略プログラミングを題材とした Java 演習支援 －間引き対戦の導入と提出戦略の詳細分析－, 情処研報, Vol.2013-CE-124,
No.10, pp.1-6, (2014)(4) 花川直己, 山田航平, 富永浩之: ボードゲーム戦略を題材としたプログラミング演習支援 －最終大会の提出コードの特徴分析－, 信学技報, Vol.114, No.121,
pp.13-16 (2014)(5) 玄馬史也, 富永浩之: ポーカー戦略を題材とする応用
C プログラミング演習の支援と実践－大会運営サーバ WinT の提出状況とコード比較の機能の追加－, 情処研報, 2015-CE-128,1-6 (2015)

図 1 提出状況

図 2 得点分布

おわりにボードゲーム戦略を題材とする Java プログラミ
ング演習を提案し，支援システム WinG を開発している．数年にわたって，予備大会と最終大会を運営している．2013 年度の演習結果について，学生の取組み状況を分析した．外部評価として，予備大会の提出状況，最終大会の得点分布，両者の関係を議論した．内部評価として，ソフトウェアメトリクスに着目し，特にコードの行数について，WWG との散布図で，傾向を議論した．
今後の課題として，予備大会における WWG の推移，他のソフトウェアメトリクスと WWG の相関性などを分析する．相関性があるものに関しては，奇妙なコードの検出に利用する．複数のメトリクスを組み合わせ，より精密な検出を試みる．加えて，戦略コードの診断を学生側に提示し，大会中のフィードバックを促す．

図 3 提出数と WWG の相関性

図 4 コードの行数146