情報処理学会 インタラクション 2024
IPSJ Interaction 2024

2P-72
2024/2/28

ChatGPT を利用したプログラムの翻訳によるプログラミング学習手法の提案
中村隆之†1長谷川忍†2

概要：プログラミング言語の多くは英語を主体としている．最近利用されているプログラミング言語，例えば C#はコーディングルールにクラス名，変数名あるいはメソッド名をフルスペルで書く事が記載されており，英語ネイティブの学生にとっては可読性を増す効果がある．一方で，日本をはじめとする非英語圏の学生にとっては英語の理解度が原因となりフルスペルでの記載によりソースコードの意味を掴みにくくなっている可能性がある．日本語は特に英語と文法上の違いが大きく，プログラミング時に負担を感じる一因となっていると推測される．本研究では，ChatGPTを利用しソースコード中の英語で記述されている変数名，メソッド名等を日本語に翻訳し，翻訳前のコードと共に提示するコード翻訳システムを提案する．本コード翻訳システムを，日本語を母国語とする学生被験者 20 名に評価させた結果，より複雑な内容ではコード理解度が増す事が判明した．主観評価ではこのシステムを良いと答えた群と翻訳しないシステムを良いと答えた群が分かれ，翻訳ありのシステムを良いと答えた群は主観での英語理解度とプログラム理解度が低い傾向の群である事もわかった．

1. はじめに英語を母国語としてない人々はコードの読み書きや英語とプログラミングの同時学習という障壁に直面していること

本 研 究 は ， Large Language Model (LLM) の 一 つ で あ るを調査で示した．また，Guzman ら[3]は英語を母国語としChatGPT を利用し，ソースコードの英語部分を日本語に翻ない留学生のプログラミング学習者が言語の問題により授訳する事で日本語母語話者がソースコードを理解しやすく業外の学習に時間をかける傾向があることを報告している．

する手法に関する研究である．

特に日本語においては，英語とは語順の違いや表意文字で現在様々なコンピュータソフトウェアを開発するためのある漢字と表音文字であるひらがなおよびカタカナが混在プログラミング言語が利用されている．それらのプログラする等言語的な違いが大きいと考えられる．最近のビデオ

ミング言語はそれぞれの時代のニーズにあわせ，また目的ゲーム開発のように，ゲームエンジンが提供する機能が複に応じて再設計され，別のプログラミング言語と分化し進雑になり，ゲームエンジンが提供する API，クラス名や関歩している．

数名(メソッド名)が長い英語で記述されるケースもあり，プログラミング言語と同時にコンピュータの性能そのもさらにメソッド名は多くの場合動詞＋目的語のように日本のも日々向上しており，コーディングのルールもそれに合語とは語順も異なる．そのようなケースでは英語が理解でわせて変化している．FORTRAN，COBOL，C 言語といっきない事でプログラムの内容を理解できない傾向が特に強た言語が主流だった時代には変数名や関数名といった名前い可能性がある．

は，短い変数名や略された関数名を利用する事が一般的で本研究の目的は，日本語を母国語とするプログラング学習あった．しかし Visual Studio 等のコードエディタの補完機初心者に対して，他人のソースコードを理解しやすくする能等が一般的になった現在は長い変数名であってもミスな目的のシステムを開発する事である．具体的には，ソースく入力できるため，変数名，関数名，あるいはクラス名はコードの構造をそのままに ChatGPT を利用して日本語に可読性のために略されずフルスペルで定義される事が一般翻訳する．次に日本語に翻訳されたコードと同時に元のソ的となっている．C#の場合は .NET Framework での開発行ースコードを同時に閲覧できるようにする．開発したシス

うためのコーディングルールが定められ，その中でも基本

テムにより他人が書いた英語のソースコードの内容を日本的に変数名やメソッド名のフルスペルで記述する必要があ

語のプログラミング初学者にとって短時間で理解できるよる事が記載されている[1]．フルスペルで記載されていればうにする事が期待される．本研究ではそのシステムの有用省略される場合よりもコードの意味は理解しやすくなり可性と同時にデメリット等を確認する事が目的となる．

読性が上がると言える．
このような流れにより，英語が母国語の，あるいは英語で2. 研究手法

教育を受けた学習者にとってはコードの可読性は以前に比本研究では，まずコード翻訳閲覧システムの開発を行う．

較して増している事が考えられる．しかし，英語と異なる

次にそのシステムについて日本語を母語とするプログラミ言語，例えば日本語を母国語とし英語に苦手意識を持つ学

ング学習者への有用性を評価する．最後にシステムの有用習者にとっては，英語のフルスペルで記述されたコードの性について分析する．

場合むしろ可読性が落ちている可能性もある．Guo ら[2]は，†1 東京工芸大学/北陸先端科学技術大学院大学†2 北陸先端科学技術大学院大学© 2024 Information Processing Society of Japan940

情報処理学会 インタラクション 2024
IPSJ Interaction 2024

2P-72
2024/2/28

2.1 コード翻訳システムの開発事が知られている．

対象とするコードはコメントおよび全ての変数，あるいは図 2 が実際にコード翻訳実験に利用した ChatGPT 向けの関数，クラス名が英語により記述されているコードを対象プロンプトである．本研究においては，コードの予約語にとする．本研究では条件に一致する言語処理系として，ゲあたる部分はそのままに，変数名，関数名(メソッド名)を日ームエンジン Unity 上で利用される C# 言語を用いる．

本語に変換するプロンプト設計方針としている．これは，コード翻訳システムの画面は図 1 のようなイメージであ

英語理解度が低いケースでコードの理解が妨げられる一因

る．ウインドウが左右に分かれており，左にはオリジナルがフルスペルで書かれた変数名やメソッド名なのではないのコード，右には対応する翻訳されたコードが表示されてかと考えられたからである．

いる．左右のウインドウの縦方向スクロールは連動してお実験時にコメントがあるとコード翻訳の評価に影響があり，右ウインドウでは同一行の対応する翻訳が確認できる．

るため本実験ではコメントは出力しないようにしている．

また，モダンなコードエディタでは一般的なシンタックスハイライトは左右画面とも有効となっている．シンタック
スハイライトとは，変数，予約語等を色分けやフォント属性変更する事でコードをわかりやすくする機能である．

図 2 コード翻訳用の ChatGPT プロンプト
2.2 コード翻訳システムの評価実験
本実験ではゲームエンジンである Unity 上の C#スクリ
プトを評価実験用の言語として採用した．そのため評価実験被験者募集の際に「ゲームエンジン基礎」の単位取得者である事を条件にスクリーニングを行なった．
「ゲームエンジン基礎」は実験者が所属する東京工芸大学ゲーム学科内で，1 年時後期に実施される Unity 等のゲームエンジンについて基礎を学ぶ授業である．被験者は 20 名とした．最後まで参加した被験者には 500 円相当の電子ギフトを謝礼として送付した．
被験者は 2 つのコード(コード A およびコード B)についてコードの内容を理解しているかどうかを問う設問(問題
図 1 提案システムのイメージ(コード B の一部)A および問題 B)に回答するテストを行い，そのコードの内容についての正答率と，回答開始までに要した時間を測定

実験用コード翻訳閲覧システムではコードの編集はできした．被験者は 2 つのコードについて内容に関する記述テないものとする．これは本コード翻訳システムでは，一つストを行った．2 つのコードの順序と，本システムによるのソースコードファイルを翻訳するのに数十秒から数分程翻訳の有無を先に行うか後に行うかの 2 通りで，被験者を度を要するためである．本実験ではコード翻訳は，静的に合計 4 つのグループにわけて実験を行った．4 つの被験者行われる．

グループの条件を表 1 に示す．これにより，コード A の評

本実験ではコードは HTML に変換される．変換時にシン価とコード B の評価を行う順序，および翻訳ありコードとタックスハイライトを行うライブラリとして highlight.js

翻訳なしコードの順序による効果を打ち消すことを意図し[4]を利用している．翻訳されたコードの一部は自動でハイている．

ライトが行われないため，手動でシンタックスハイライトを行っている．
コ ー ド 翻 訳 に は LLM と し て 代 表 的 な Open AI 社 のChatGPT (GPT 4)を利用する．ChatGPT は自然言語のテキス
トタスクだけではなくプログラムコードの処理等も可能な© 2024 Information Processing Society of Japan941

情報処理学会 インタラクション 2024
IPSJ Interaction 2024

2P-72
2024/2/28

表 1 被験者グループ(4 グループ)条件「翻訳あり」が先「翻訳あり」が後問題 A が先グループ 1

グループ 2問題 B が先グループ 3グループ 4

3. 実験結果
この章では評価実験の結果を述べる．
3.1 翻訳システムありの場合となしの場合での得点比較
翻訳システムありの場合となしの場合において，被験者のコードの理解度を示す得点を比較した．比較は問題 A と2.2.1 評価実験に利用するコードについて

問題 B に分割して実施した．正規分布を仮定できないため実験に使われるコードは，ゲームの実装に利用される基本検定にはマンホイットニーU 検定を使用した．結果を表 2的なコード 2 つ(コード A,コード B)を準備した．両スクリに示す．

プトとも Unity 上の C# スクリプトである．
コード A は一般的かつ基本的なコードでプログラムの基

表 2「翻訳あり」「翻訳なし」それぞれの得点比較

本を理解している学生であれば理解できるレベルのコードである．一方コード B はコード A に比較するとやや複雑で，コードのライン数もコード A に比較して多い．

p値

翻訳あり(中央値)

翻訳なし(中央値)

問題 A 得点80

72.50.54

問題 B 得点80

27.50.04

以下はコード A の解説である．プレイヤーを前後左右に動かし，マウスでカメラを回転させる．マウスのボタンでプレイヤーがジャンプする．
以下はコード B の解説である．コードは敵キャラクターの簡易的な AI となっている．プレイヤーが一定範囲に近づくと，敵キャラクターを追いかける．プレイヤーが一定範囲から離れると，初期の位置に戻る行動をする．演出として，敵キャラクターがプレイヤーを見つけた時は警告を表すマテリアルに変更され，元の位置に戻ろうとする時はマテリアルも元のマテリアルに変更される．
2.2.2 アンケートによる評価
被験者は実験室にてアンケートに回答した．アンケート時には 2 画面のモニタの内上部画面にコードを示した．その提示されたコードがどのように動作するかを被験者に下部画面のアンケートフォームに記述回答させた．記述回答する時間には問題 A, 問題 B それぞれに 10 分間の制限時間を設けた．
事前に 2 つのコードのそれぞれについて記述内容の採点基準を設定した．同時に記述回答を開始するまでの時間を測定した．記述内容の採点と時間それぞれを，本コード翻訳システムを利用した場合とそうでない場合で比較した．
それにより，本システムの効果を検証する．問題 A(コードA に対応), 問題 B(コード B に対応)それぞれの満点は 100点となるように配点を行った．100 点の配点の内訳は以下である．コード全体が何の処理を行っているかの概要についての配点が 20 点，コード全体の処理についての項目毎に 30 点，コードのうち指定された一つの関数内の処理内容の記述が 40 点，それらの処理順が合っていれば追加で10 点としている．
また，コードの理解度を測るテスト問題の終了後に以下のアンケート項目を追加した．1) 主観による英語の理解度に関する設問(5 段階)，2) 主観によるプログラミングの理解度に関する設問(5 段階)，3) 翻訳ありと翻訳なしのシステ
ムどちらが良いか(7 段階)，4) 翻訳ありシステムについての自由記述，の 4 項目である．

© 2024 Information Processing Society of Japan

問題 A(プレイヤーキャラクターを操作するための一般的なコード)の場合は，翻訳システムありの場合となしの場合での得点には統計的に有意な差は認められなかった．しかし問題 B(敵キャラクターの簡易的な AI)の場合は，翻訳システムありの場合となしの場合で統計的に有意な差が認められた(p < 0.05)．問題 B の場合，翻訳ありの得点中央値は80 点に対し，翻訳なしの得点中央値は 27.5 である．これは問題 B に関しては，翻訳システムありの場合について翻訳なしの場合に比較し有意に得点が高い事を示している．
3.2 翻訳システムありの場合となしの場合での回答開始までにかかった時間の比較

翻訳システムありの場合となしの場合で，各被験者が回答に取り掛かるまでの時間を測定し，比較した．比較は問題 A と問題 B に分けて行なった．正規分布を仮定できない
ため検定にはマンホイットニーU 検定を使用した．結果を表 3 に示す．
表 3 「翻訳あり」「翻訳なし」それぞれの回答開始時間
翻訳あり(中央値)

翻訳なし(中央値)

p値

問題 A 回答開始(秒)64640.68

問題 B 回答開始(秒)

4976

0.79

回答開始時間については，問題 A および問題 B どちらも，翻訳ありの場合となしの場合で統計的な有意差を認められなかった．
3.3 主観の英語理解度とプログラム理解度の相関プログラムに利用される英語の主観理解度と，プログラムの主観理解度について，スピアマンの順位相関分析を行った．その結果，英語の主観理解度とプログラムの主観理解度について有意な正の相関が見られた(ρ=0.62, p < 0.01 )．
3.4 「翻訳あり」「翻訳なし」のどちらが良いかの回答
翻訳ありが良いか無しが良いかについて被験者に 7 スケールで回答してもらった結果，頻度は図 3 のようになった．

942

情報処理学会 インタラクション 2024
IPSJ Interaction 2024

2P-72
2024/2/28

主観の英語理解度とプログラム理解度をそれぞれ縦軸，横のみからは読み取れないキーボードの WASD による前後軸に取り，「翻訳あり」が良いと答えた群(オレンジ)と「翻左右の移動が可能な事を回答中で述べている被験者が複数訳なし」が良いと答えた群(ブルー)をバブルチャートとしいた事が挙げられる．問題 A の得点に関しては，翻訳ありてマッピングした図になる(図 4)．の場合は中央値が 80 点，翻訳なしの場合は 72.5 点と問題B の場合と比較して大きな差はついていない．一方で，問題 B は翻訳なしの得点中央値が 27.5 点に比べ，翻訳ありの場合は得点中央値が 80 点である．本翻訳システムの効果により問題 B のプログラムの内容についての理解度が上がったものと考えられる．
4.2 翻訳システムの主観的評価
被験者が主観的に本翻訳システムについての評価を行った結果は，13 人はポジティブ(翻訳ありのシステムがよい)と評価し，7 人はネガティブ(翻訳なしのシステムのほうが翻訳なしが良い翻訳ありが良いよい)となった．どちらでもない，と回答した被験者は 0 名

図 3 「翻訳あり」「翻訳なし」どちらが良いかの評価

で，ポジティブな評価とネガティブな評価が分かれる事にどちらでもないなった．
図 4 を見ると，プログラム理解度，英語理解度が低い群

高いが「翻訳あり」が良いと答える傾向にあり，プログラム理解度，英語理解度が高い群は「翻訳なし」が良いと答える傾向にある事がいえる．
アンケート自由回答を分析すると，「翻訳あり」が良いと回答したグループではその理由として「翻訳されたほうがわかりやすい」「直感的に理解できる」「理解する時間が少なくなって理解しやすい」「同時に見ると何のコードかわか低いりやすい」という理由を挙げている．
低い

高い

一方で「翻訳なし」のほうが良いと回答したグループは，

図 4 翻訳ありが良い(オレンジ)と翻訳なしが良い(ブルー)「これまで見てきたソースは英語なので違和感」「書籍やネの分布ット上のソースは英語」「翻訳だと変数に誤解を招く表現がある」「日本語で書かれているとわからないものもある」

翻訳ありが良いと答えた群は主観での英語理解度とプログ「元々理解できるので英語しか見ない」のような理由を挙

ラム理解度が低い傾向にあることがわかる．

げた．

4. 考察

4.3 本翻訳システムの効果と今後の課題
図 4 および自由回答の結果を鑑みると，この翻訳システ

ここでは実験の結果から得られた事項について述べる．

ムはプログラムの理解度およびプログラムに利用される英4.1 翻訳システムによるコード理解度の変化

語の理解度が低い群に特に効果があるのではないかと考え翻訳システムありの場合となしの場合で統計的有意差がられる．今後実際に実装されるコード翻訳システムにおい認められたのは，問題 B であった．問題 B の回答にあたっては，コード翻訳はデフォルトでオフであるが，キー操作ては今回の実験条件では「翻訳あり」のほうがプログラムあるいはメニュー操作等によって起動し，元のコードと並の理解度が高くなった事が推測される．しかし問題 A では列で翻訳コードを閲覧できるようなシステムにすることに統計的有意差は認められなかった．

より，必要な人が必要な時に利用できるシステムにする事問題 A に比較すると，問題 B はコードが長く，やや複雑がよいのではないかと考えられる．

である．また問題 A は Unity のゲームプログラミングに特にプログラムの読解難易度が高いシステムで効果があおいてはプレイヤーキャラクターを操作する基本的なコーるとすれば，他人が記述したコードやシステム等を分析すドである．本実験の被験者が，Unity のプログラミングの基る際には効果的な可能性がある．

本を教える授業の単位取得者である事を条件にしている事

また本研究結果から得られる重要な知見として，プログラを考えると，問題 A は既によく見たコードのパターンであミングの理解に英語の理解力が関与しているという事も付り，問題 B に比べるとコード理解度に差がつきにくかった

け加える．プログラム理解と英語理解には正の相関があり，事も考えられる．この推測の根拠としては，このコード A

コード翻訳がプログラム理解に有効であるケースがある事© 2024 Information Processing Society of Japan943

情報処理学会 インタラクション 2024
IPSJ Interaction 2024から，日本人母語話者にとってみると英語がプログラム理解を妨げている可能性がある．その事も一因となり本コード翻訳システムがプログラムの内容理解を助けるツールとして機能していると言えるのではないかと考えられる．
本実験の被験者は，東京工芸大学芸術学部ゲーム学科の学生であった．今回の実験でも元々のプログラム理解度によって差が出ているため，他の被験者ではどのような結果になるかわからない．また今回の実験では翻訳コード生成時

2P-72
2024/2/28

Addison-Wesley Professional, 2005
Guo, Philip J. . Non-Native English Speakers Learning Computer
Programming: Barriers, Desires, and Design Opportunities.
Proceedings of the 2018 CHI Conference on Human Factors in
Computing Systems. 2018, p.1-14[3] Guzman et al.. Experiences of Non-Native English Speakers
Learning Computer Science in a US University. Proceedings of the52nd ACM Technical Symposium on Computer Science Education.
2021, p. 633-639[4] “highlight.js”. https://highlightjs.org/, (参照 2023-11-6).
[2]のプロンプトで翻訳される範囲を限定して全てのコードが日本語に置き換わらないようにしているが，完全に日本語に置き換わった場合どのような効果があるかは不明である．
例えば「int」「void」等の予約語は単純に日本語にするのではなく，「整数型変数」「帰値無型の関数」のように変換をしたほうが日本語としては可読性があがる可能性があるが，実際にはどのような変換をする事が日本人のプログラミン
グ学習者にとって効果的かについてはわかっていない．今回の翻訳システムではコード内のコメントについては検証対象外としたが，ChatGPT を利用すればコードにコメントを付加する事は容易である．コメント翻訳との相互作用についても今後検証の必要がある．これらを含めてコード翻訳システムをどのように改良すればよいのかは今後の課題である．また本コード翻訳システムが Unity C#以外のプログラミング言語でも有効性がある事が期待されるが，他のプログラミング言語であっても同様の効果が得られるかは今後調査する必要がある．

5. おわりに本研究では，日本人母語話者にとって英語理解の問題がプログラム理解に影響している事を仮説とし，ChatGPT を利用する事でコードの日本語翻訳と元のコードを並列で表記するシステムの有効性を検証した．
複雑度の高い Unity C#プログラムコードにおいてシステ
ムの有用性を確認した．英語理解度とプログラム理解度には正の相関がある事もわかった．また主観での英語理解度が低くプログラム理解度も低いグループにおいて，本システムを高く評価した事を確認した．
プログラミング学習において，学習者の母国語の問題はあまりフォーカスされる事がないが，本研究によりプログラミングで主に利用される英語への理解が日本人のプログラミング教育にとって重要である事を示せたと考える．
謝辞

本研究での実験にあたり，学生への告知等で協力を頂いた東京工芸大学ゲーム学科の教員諸氏にこの場をお借りして謝意を表明する．

参考文献
[1]

Cwalina, K. and Abrams, B..Framework Design Guidelines:
Conventions, Idioms, And Patterns for Reusable .NET Libraries,© 2024 Information Processing Society of Japan

944