GeminiをCOBOLメンターにしてみた
チーム名：The Mainframe Squadアジェンダ
メンバー紹介
開発概要
開発テーマ１「GeminiにCOBOL参考書の問題を解かせる」
開発テーマ 2 「GeminiにCOBOLの問題を作成させる」
総括

メンバー
横川（入社１年目）

横山（入社１年目）

田名網 （入社２年目）
渡邊（入社３年目）

開発概要
開発の目的：
・COBOL初学者の悩みを解決するための、最適なプロンプトの作成
初学者：プログラムの実務経験がない、COBOL未経験者

経緯：・COBOL技術者の高齢化により、育成が困難になっていく
・来年以降の新入社員にCOBOL技術を引き継ぎたい・そのために、Geminiを活用してCOBOL学習をサポートしたい

開発内容
1.

GeminiにCOBOL参考書の問題を解かせる● 問題を解かせる● 回答の精度を上げる

2.

GeminiにCOBOLの問題を作成させる● 問題を作成させる● 問題の質を向上させる

1. Geminiに参考書の問題を解かせる
経緯：
●
●
●

COBOL初学者が参考書を使用して学習する場合を想定した。
参考書の問題を自力で解けない場合もある。
問題の解答をGeminiに手伝ってもらえれば学習の助けになる。

使用した参考書：●「標準COBOLプログラミング 第2版」 細島 一司
各章の最後に確認問題、参考書の後ろのページに解答が記載されている。

1. Geminiに参考書の問題を解かせる

1. Geminiに参考書の問題を解かせる

1. Geminiに参考書の問題を解かせる
パターン①
使用した機能：モデル：gemini-1.5-ﬂash-001
Temperature：1
マルチモーダル：マルチターン (chat)システム指示：あなたは長年 COBOLの技術者をしている COBOLのプロフェッショナルです。
あなたには新人に COBOLを教えるメンターになってもらいます。
プロンプト：＜参考書の問題部分をスキャンした pdf＞
問題9-1-1の答えを教えてください。解説もお願いします。

1. Geminiに参考書の問題を解かせる
パターン①レスポンス：

(1)
問題文：○
解答 ：○
解説 ：○

1. Geminiに参考書の問題を解かせる
パターン①
レスポンス：

(2)
問題文：○
解答 ：△
解説 ：△

×→ 乱アクセス1. Geminiに参考書の問題を解かせる
パターン①
レスポンス：

(3)
問題文：○
解答 ：○
解説 ：なし
(4)
問題文：○
解答 ：○
解説 ：なし1. Geminiに参考書の問題を解かせる
パターン①
レスポンス：

(5)
問題文：○
解答 ：×
解説 ：なし×→ 20バイト—
日本語のバイト数が異なる→ 25バイト1. Geminiに参考書の問題を解かせる
パターン①
レスポンス：

(6)
問題文：○
解答 ：×
解説 ：○

1. Geminiに参考書の問題を解かせる
パターン②使用した機能：モデル：gemini-1.5-pro-001
Temperature：2
マルチモーダル：マルチターン (chat)システム指示：あなたは長年COBOLの技術者をしているCOBOLのプロフェッショナルです。
あなたは新人にCOBOLを教えるメンターです。

プロンプト：<参考書をスキャンしたpdf>
こんにちは。わたしはCOBOLを勉強している新入社員です。
これらの資料はCOBOLの学習用テキストです。これらのテキストを使ってCOBOLの学習をしています。
以下はCOBOLの問題なのですが、答えがわかりません。解説してもらえますか？
＜問題文をスキャンしたpdf＞

参考書の内容をスキャンしたものを資料として与えた。

1. Geminiに参考書の問題を解かせる
パターン②
レスポンス：
・回答の精度は向上した。
・パターン①と同様の間違いが起きた。

補足は合っている1. Geminiに参考書の問題を解かせる
パターン③
プロンプト：

1. Geminiに参考書の問題を解かせる
パターン③
プロンプト：

9-1-1(5)_問題_解答.txt# 問題：
下記の成績レコードの大きさをバイト数で答えなさい。
```FD 成績ファイル.
01 成績レコード.
05 出席番号 PIC X(2).
05 氏名PIC N(10).
05 数学
PIC 9(3).
```# 解答
解答のポイント (日本語項目のバイト数)
25バイト ※2+10*2+3=25

1. Geminiに参考書の問題を解かせる
パターン③
レスポンス：

1. Geminiに参考書の問題を解かせる
パターン③
レスポンス：

1. Geminiに参考書の問題を解かせる
全体の評価：●●●●

PDFからでも完璧に問題文を読み取ってくれた(画像は△)。
1回目の解答が間違っていても、チャットで2回目以降指摘することで正しく訂正してくれる。
資料の追加・Geminiのバージョン変更により、解答の精度が少し上がった。
解答を与えた上で解説を求めると、ある程度信頼できる回答が得られた。

結論：
●
●

正しい資料や指摘、質問により、回答の精度が向上する。
間違いが起きる可能性があるため、メンターの補助として活用するのが有効。

今後の展望：
応用的な問題にもGeminiを活用できるようにしたい。

2. Geminiに初学者用の問題を作成させる
経緯：
COBOL参考書(テキスト)では、出題パターンが限定的で、解説が簡潔な場合があり、単体での学習効率が低い。
初学者の学習の手助けとして、出題パターンが多様で、解説が詳細な問題があれば、学習の効率が上がるのではないか。
作成させる問題は、学びやすいように穴埋め形式のものを採用した。
モデル：gemini-1.5-ﬂash-001
マルチモーダル ：シングルターン

2. Geminiに初学者用の問題を作成させる
まずはシンプルに！

システム指示：未定義
プロンプト：
プログラム未経験者に対する COBOL教育材料として、穴埋め形式の練習問題を作成してください。
解答も添えて出力してください。

2. Geminiに初学者用の問題を作成させる
出力例①

プログラム形式の穴埋め問題

PROGRAM-IDを予想させる問題

動作環境を予想させる問題

2. Geminiに初学者用の問題を作成させる
出力例②

学習ソースの影響 ?

2. Geminiに初学者用の問題を作成させる
次にシステム指示を活用してみる
システム指示：あなたは、新人研修と COBOLの専門家です。
プロンプト：
プログラム未経験者に対するCOBOL教育材料として、穴埋め形式の練習問題を作成してください。
解答も添えて出力してください。

2. Geminiに初学者用の問題を作成させる
出力例③
４つの部についてデータ項目の長さについて2. Geminiに初学者用の問題を作成させる
成果例
システム指示：あなたは、 COBOLの専門家で、 教師です。
プロンプト：COBOL初心者用の問題を以下のテーマで作成してください。
・COBOL言語の表について
・添字付けについて
・1次元の表について
この部分で・多次元の表について出題範囲を指定
・指標データ項目について・指標の条件式について・表引きについて希望するフォーマット：穴埋め選択問題
解答の位置：各テーマの下解答の解説：解答の下に詳しく記載する
出力の仕方など
不正解の選択肢の解説：その用語の意味を解説する
を指定
問題の数： 20個
参考テーマの記載：記載しない
参考サイト： https://www.cobol.co.jp/cobol-nyuumon/
ただし、生成した問題と解答が適切なものになっているかを、参考サイトを例に生成後に確認してください。

2. Geminiに初学者用の問題を作成させる
出力例④
指定された
お題の問題

解答としては、不適と思われるものが出力されている解答としては、不適と思われるものが出力されている

2. Geminiに初学者用の問題を作成させる
出力例⑤

2. Geminiに初学者用の問題を作成させる
出力例⑥：同様のプロンプトで Temperature を０にし、解答精度の向上を試みた。

問題と解答の精度が向上している。

2. Geminiに初学者用の問題を作成させる
出力例⑦：Temperature を０にし、出題範囲 を変更してみた。

変更した出題範囲に適した問題が出題されている解説などのフォーマットは維持されている。

2. Geminiに初学者用の問題を作成させる全体の評価：●●●COBOL初学者向けの難易度の問題が作成できた。
解きたい項目(出題する範囲)も操作できた。
演習問題作成のアイデア出しには有用。

結論：
●
●
●

穴埋め問題を作成することは可能。
初学者自身が問題を出力させて、そのまま解くのはおすすめできない。
教育監督者が初学者のフォローアップ教材として活用するなら一考の余地がある。

今後の展望：
自社システムに関するCOBOLプログラムをGeminiに学習してもらい、OJTのような社内業務のトレーニング問題を作成してもらう。

まとめ
●
●
●

プロンプトやシステム指示を工夫することで、GeminiをCOBOL参考書の学習や問題の作成に役立てることができた。
Gemini単体をCOBOLメンターにすることは難しいが、メンター(人間)の補助として活用することは可能。
初学者だけでなく、実際に業務を行う中級者以上の人が活用できるように応用していきたい。