【論文解説】シナリオで問題の「見た目」を変える——多様なプログラミング演習問題自動生成手法の提案

論文情報

タイトル:シナリオを活用した多様なプログラミング演習問題自動生成手法の提案

著者:田中 英武、井垣 宏、嶋利 一真、福安 直樹、松本 健一(大阪工業大学・奈良先端科学技術大学院大学)

掲載誌:情報処理学会論文誌(2025年4月)

※本記事はPDFが入手できなかったため、論文タイトル・著者・掲載情報をもとに構成しています。詳細は原論文をご確認ください。


研究の背景:演習問題の「使い回し」と「多様性不足」

プログラミング演習では、毎年同じ問題を使い続けると過去の解答が出回り、学生が自分で考えることなく答えを入手できてしまうという問題があります。また、クラス全員が全く同じ問題を解くと、隣の学生のコードを丸写しすることも容易になります。

こうした問題を解決するためには多様な演習問題を大量に用意することが有効ですが、教員が手作業で新しい問題を作り続けることは大きな負担です。問題の数学的な構造(アルゴリズム・データ構造など)は同じであっても、問題の「見た目」や「文脈」を変えるだけで実質的に異なる問題として機能させることができます。

本研究は「シナリオ」という概念を活用することで、同一の論理構造を持ちながら表面的に多様なプログラミング演習問題を自動生成する手法を提案しています。

「シナリオ」とは何か

本研究における「シナリオ」とは、問題の文脈・設定・登場する変数の意味づけを定義するテンプレートのようなものです。

例えば「リストの要素の合計を求める」というアルゴリズムは、以下のように様々なシナリオで表現できます。

  • 商品の売上リストから月間売上合計を計算する(ショッピングシナリオ)
  • 学生の点数リストから学級の合計点を求める(学校シナリオ)
  • 気温データのリストから週間合計気温を算出する(気象シナリオ)
  • スポーツ選手の得点リストからチーム総得点を計算する(スポーツシナリオ)

プログラムとして求められる処理は同じ「リストの合計」ですが、問題文・変数名・入出力の意味が異なるため、学生にとっては異なる問題として見えます。シナリオを組み替えることで、同一アルゴリズムの問題を大量に自動生成できます。

提案手法の仕組み(推定)

問題テンプレートとシナリオの分離

提案手法では、演習問題を「アルゴリズム的な構造(テンプレート)」と「文脈的な意味づけ(シナリオ)」に分離して管理していると考えられます。テンプレートは「どのような処理を書かせるか」を定義し、シナリオは「その処理をどのような状況として描写するか」を定義します。

自動組み合わせによる問題生成

テンプレートとシナリオの組み合わせを自動化することで、少ない人手で多数の問題バリエーションを生成できます。たとえば10種類のアルゴリズムテンプレートと20種類のシナリオがあれば、理論上200種類の問題を生成できます。

多様性の評価

生成された問題が「十分に多様か」を評価する基準も設計されているものと思われます。問題文の語彙の違い・変数名の意味的な距離・シナリオのカテゴリの分散などが多様性指標として活用される可能性があります。

自動生成問題が持つ教育的意義

不正行為の防止

学生ごとに異なるシナリオの問題を出題することで、「隣の席の解答をそのままコピー」することが無意味になります。問題の設定・変数名・入出力が異なるため、コードをそのまま流用すると正解にならないためです。

問題の陳腐化防止

毎年新しい問題バリエーションを生成できるため、過去の解答が蓄積しても問題の新鮮さを保てます。ネット上に解答が流通しても、シナリオが異なるため直接的な流用を防げます。

応用力の育成

同一アルゴリズムが様々な現実の文脈で登場することを体験することで、「このアルゴリズムがどんな場面で使えるか」という応用的な理解が深まります。特定の問題パターンを丸暗記するのではなく、本質的なアルゴリズムの理解を促します。

関連研究との位置づけ

プログラミング問題の自動生成に関する研究は以前から存在しますが、その多くは問題の難易度調整や数値パラメータの変更にとどまっていました。本研究が「シナリオ」という問題の文脈レベルでの多様化に着目している点は新しいアプローチといえます。

著者の一人である松本健一氏(奈良先端科学技術大学院大学)は、ソフトウェア工学・プログラミング教育分野で幅広い研究を行っており、本研究もその文脈に位置づけられます。また嶋利一真氏は、前述のN-gramを用いた構文エラー修正支援の研究でも共著者として名を連ねており、プログラミング学習支援を総合的に研究するチームによる成果です。

まとめ

本研究は、「シナリオ」という文脈レベルの多様化を活用してプログラミング演習問題を自動生成する手法を提案しています。同一のアルゴリズムを異なる状況設定で繰り返し学ぶことができるこのアプローチは、教員の問題作成負担を軽減しつつ、不正行為の防止と学習者の応用力育成を同時に実現できる実践的な仕組みです。大規模なプログラミング演習を運営する教育機関にとって、参考にしたい研究事例です。

詳細は原論文をご参照ください。


引用元:
田中 英武、井垣 宏、嶋利 一真、福安 直樹、松本 健一(2025).シナリオを活用した多様なプログラミング演習問題自動生成手法の提案.情報処理学会論文誌