日本ソフトウェア科学会第 41 回大会 (2024 年度) 講演論文集

プログラミングの写経型学習の欠点を補う翻訳学習法
の提案
平澤 巧望

篠埜 功

近年，高等学校でのプログラミング必修化に伴い，初学者向けのプログラミング学習支援の重要性が増している．初学者の学習法としてサンプルコードを書き写す写経型学習があるが，サンプルコードをそのまま打ち込むため思考を伴わない単調な作業となり，対象言語の理解が不十分になりがちである．この問題を解決するため，そのまま打ち込
むという部分を改善し，考えながら書き写すことができるように，別の言語へ翻訳しながら写経を行う翻訳学習法を提案する．芝浦工業大学 1 年生 13 名を対象に，翻訳学習グループと写経型学習グループに分けて実験を行った結果，翻訳グループはプログラミング知識とプログラミング能力が共に有意に向上し，写経グループはプログラミング能力のみが有意に向上した．ただし，プログラミング知識とプログラミング能力のどちらにおいても，得点の上昇幅の平均値について 2 つのグループ間で有意差はなかった．

ンプルコードをそのまま打ち込むため思考を伴わな

1 はじめにい単調な作業となり，対象言語の構文や意味について

近年，日本では，学習指導要領の改訂による高等学の理解が不十分になりがちである [5]．現在では写経校でのプログラミング教育必修化 [14] [15] やそれに伴型学習は例えば C や Java など，英語のアルファベッ

う大学入学共通テスト（以下では共通テストと呼ぶ）

トが主体の言語で行われることが多いと考えられ，までのプログラミング出題 [12] など，プログラミング学

た，写経型学習の効果に関する研究も同様である．

習が重要視されつつあり，プログラミングを学び始め

日本で用いられている学習用の言語では，日本語る人が増加傾向にある．

の文字が主体となる言語がいくつかあり，これらに関プログラミング初学者がよく行う学習法として，サする学習効果やプログラム理解に関する研究がこれ

ンプルコードを打ち込んで実行し，結果を確認するまで行われてきている．例えば，大部分が日本語のひ写経型学習がある．5. 1 節で述べるように，写経型学

らがなと漢字で書ける独自言語によるプログラミン

習を行うと対象言語の初学者のプログラミング能力

グ学習環境 PEN を用いて学習した結果，JavaScriptが向上する傾向が見られるが，著者らの知る限り，写で学習した場合と比べて，日本人にとって学習効果が

経型学習のみでプログラミング能力が有意に向上す

有意に高いことを示した研究 [10] や，大部分が英語のることはこれまで示されていない．写経型学習は，サアルファベットで書かれたプログラムと比べて，大部∗ An Approach to Learning by Translation to Address

the Shortcomings of Shakyo-Style Learning in Programming
This is an unrefereed paper. Copyrights belong to
the Authors.
Takumi Hirasawsa, Isao Sasano, 芝浦工業大学大学院理工学研究科電気電子情報工学専攻, Department of Electrical Engineering and Computer Science, Graduate
School of Engineering and Science, Shibaura Institute of Technology.

分が日本語のひらがなと漢字で書かれたプログラムの方が日本人にとって早く理解できることを示した研究[11] がある．また，情報に関する日本で実施される試験で用いられる言語で日本語の文字が主体となる言語もある．例えば，共通テストの科目「情報」のプロ
グラミングに関する問題の出題において，高等学校の授業で使用されるプログラミング言語が様々であることから，ある特定の言語でプログラミングを学んでいなくても全ての受験生がプログラムを読めるようにべ，4 節でその結果を提示し，考察する．さらに 5 節するために，日本語のひらがなと漢字を用いた共通テにおいて関連研究について議論する．最後に 6 節でスト用の言語（以下では DNCL2 と呼ぶ）が用意さ

まとめと今後の課題について述べる．

れることになっている [13]．高等学校の授業で用いられることがある Python 等の言語では英語のアルファベットが主体となっているが，Python 等と比べると

DNCL2 は大部分が日本語のひらがなと漢字で構成されているため，日本人のプログラミング初学者が読ん

2 翻訳学習法および翻訳学習サポートツールの提案
本節では，翻訳学習法を提案し，翻訳学習をサポートするツールを提案する．

でも理解しやすいと考えられる．
そこで，本研究では，写経型学習が単調になること

2. 1 翻訳学習法

によりプログラミング能力の向上が阻害されている

写経型学習において写経の手本となるサンプルコーと考え，これを解決するために，サンプルコードをそドに対して，異なるプログラミング言語でサンプルのまま打ち込むのではなく，考えながら書き写すことコードと同じ意味のコードを打ち込む学習法を本研ができるように，別の言語へ翻訳しながら写経を行う

究で新たに提案し，これを翻訳学習法と呼ぶ．翻訳学

学習法を提案する．この学習法を翻訳学習法と呼ぶこ習法の手順を以下に示す．

とにする．本論文では，日本人を対象とし，例として

DNCL2 から Python への書き換えについて扱う．
提案手法の有効性を評価するために，芝浦工業大学工学部の 1 年生およびシステム理工学部の 1 年生
合計 13 名を対象として，Python のサンプルコードをそのまま写経するグループと，DNCL2 のサンプル
コードを Python のコードに書き換えるグループの 2
グループに分けて演習を行い，それらの学習効果を比較する実験を行う．

1. サンプルコードの意味を意識しながら，サンプ
ルコードと同じ意味のプログラムを別の言語に翻訳し，打ち込む．

2. 翻訳が終わったら，実行結果を予想する．
3. 翻訳したプログラムを実行する．プログラム中の値や実行時の入力値を変えて実行結果の変化を見てもよい．2 の予想が間違っていた場合，1に戻る．

実験の結果，各グループにおいて学習前後でプログ本研究においては，サンプルコード（書き換え元

ラミング知識およびプログラミング能力の得点が学習のコード）の言語を DNCL2，実際に打ち込むコーの前後で有意に上昇したかどうかについて Wilcoxon

ド（書き換え先のコード）の言語を Python としたの符号順位検定を行った結果，プログラミング知識

場合について，学習効果の検証を行った．DNCL2に関して，翻訳グループは有意に得点が上昇したが，と Python の表記は似ており，DNCL2 プログラムと写経グループについては有意差がなかった．一方で，Python プログラムの対応関係の一部を表 1 に示す．

プログラミング能力に関しては，翻訳グループと写経

なお，入力を処理する関数について，DNCL2 ではグループのどちらにおいても有意に得点が上昇して【外部からの入力】となっている．これに対し，表 1 中いた．なお，プログラミング知識とプログラミング能に示した【外部からの整数入力】は，本研究において，力それぞれについて，各グループにおける得点の上

被験者やツールの利用者が理解しやすいと考えて関数昇幅の平均値に有意な差があるか，Mann–Whitney

名を DNCL2 から変更したものである．また，四則の U 検定を行った結果，どちらにおいても有意差は演算や比較演算，論理演算に用いる演算子は DNCL2なかった．

と Python でほとんど共通であるが，Python で割り

本論文の構成は以下の通りである．まず 2 節で，翻訳学習の方法および学習をサポートするツールについて述べる．次に 3 節で評価実験の内容について述

算の商を求める演算子が//であるのに対し，DNCL2
では ÷ である．

表1

DNCL2 プログラムと Python プログラムの対応関係

DNCL2

Python表示する ()

print()【外部からの整数入力】

int(input())

もし <条件式> ならば :｜ ...
そうでなくもし <条件式> ならば :｜ ...
そうでなければ :⌊ ...
<条件式> の間繰り返す :⌊ ...

if <条件式>:...
elif <条件式>:...
else :...
while <条件式>:...

3 評価実験
提案手法のプログラミング初学者に対する有効性を評価するため，芝浦工業大学工学部の 1 年生およびシステム理工学部の 1 年生合計 13 名を対象に，翻訳学習を行う GroupA の 7 名と，写経型学習を行う

GroupB の 6 名に分けて，芝浦工業大学において実験を実施した．
実験は，プログラミングの基本事項に関する一斉講義を 20 分間実施した後，プログラミング知識，プロ
グラミング能力に関する試験をした上で，グループ別の学習法により 30 分間のプログラミング演習を行い，再度プログラミング知識，プログラミング能力に
図1

ノートブックの記述の 1 例

関する試験を行った．試験時間は，プログラミング知
識に関する試験を 10 分，プログラミング能力に関す

2. 2 翻訳学習サポートツール

る試験を 20 分とした．

本研究では，実験のための環境として，Google Co-

実験では，Google Colaboratory のノートブックをlaboratory [1] を使用した．Google Colaboratory は，

実験協力者の人数分コピーして配布したり試験の答案

ブラウザ上のページへ Python コードを記述し，実を回収したりする作業を簡単にするために，Google

行できるインタラクティブな環境であり，ノートブッ社が提供している Learning Management System のクの 1 つである．ノートブックは，Python コードをGoogle Classroom を使用した．実験協力者には，実記述し実行できるコードセル，および画像，HTML，

験実施前に Google Classroom に作成された実験用のLAT X などを記述するテキストセルからなる．書き換クラスに参加してもらった．実験当日は，各自が持参え元のサンプルコードは，テキストセル内に記述ししたノート PC で Google Classroom にアクセスしてた．ノートブックの記述の 1 例を図 1 に示す．

プログラミング演習や試験の回答を行ってもらった．

E3. 1 プログラミングの基本事項に関する一斉講義
実験開始時に，一斉講義で使用する講義資料を紙で配布した．この資料に沿って，アルゴリズムの 3 要

次のプログラムを実行したとき，表示される数
字を半角で入力してください．

素である順次，分岐，反復を実現するための基本的な Python プログラミングの手法について，DNCL2

a = 3の表記を使った意味の解説を交えながら，20 分間のb = a * 2

一斉講義を行った．講義の内容を以下に示す．なお，

a = b + a * 2「Python プログラムを実行してみる」の部分では，

Google Classroom の資料として Google Colabora-

表示する (a)tory のノートブックを配布し，Python プログラム

1 から 10 までの整数を全て表示するプログラム

print("Hello, world!") をノートブック上で実際を作りたい．次のコードは正しいでしょうか．



に実行してもらった．

c = 0• アルゴリズムとは？

c < 10 の間繰り返す:• 順次処理と変数・代入⌊ 表示する (c + 1)

– Python における四則演算の書き方• 条件分岐 if– Python における条件式の書き方• 繰り返し while• Python プログラムを実行してみる
3. 2 学習前試験および学習後試験
本節冒頭で述べたプログラミング知識やプログラ
ミング能力に関する試験を学習前および学習後に同じ方式で行った．なお，各試験問題は，3. 1 節で挙げた知識で回答できるように作成し，講義で扱っていない知識を要する場合には注釈を加えた．また，各試験
では試験開始直前に問題用紙を配布し，試験時間中は講義資料等の参照を不可とした．

3. 2. 1 プログラミング知識
プログラミング知識の試験問題には両グループで

DNCL2 を用いた．試験問題の解答は，試験開始直前に Google Classroom の課題として配布した Google

Forms に入力し，送信してもらった．Google Formsには問題用紙と同じ問題が記載されている．プログラ
ミング知識の試験では，Google Forms および問題用紙に記載されている DNCL2 で書かれたプログラム
を読み，その実行結果に関する設問の解答を Google

Forms から入力してもらった．プログラミング知識に関する問題のうち 2 つを図 2 に示す．試験は 7 問から⃝ 正しい⃝ 正しくない



図2

プログラミング知識に関する問題の例

なり，試験時間は 10 分とし，12 点満点で採点した．

3. 2. 2 プログラミング能力
プログラミング能力の試験問題の回答は，試験開始直前に Google Classroom の課題として各実験協力
者にコピーを配布した Google Colaboratory のノートブックに入力してもらい，Google Classroom から提出してもらった．ノートブックには問題用紙と同じ問題が記載されている．プログラミング能力について，Google Colaboratory のノートブックおよび配布
した問題用紙に記載されている問題文で指定された

Python プログラムを作成してもらった．プログラミ
ング能力に関する問題のうち 1 つを図 3 に示す．試験は 6 問からなり，試験時間は 20 分とし，10 点満点で採点した．

3. 3 プログラミング演習
学習前試験の次に，プログラミング演習を行った．
プログラミング演習は，Google Classroom の課題として各実験協力者にコピーを配布した Google Co-laboratory のノートブックを使用して 30 分間行った．

図3

プログラミング能力に関する問題の例

GroupA の実験協力者には翻訳学習用，GroupB の実験協力者には写経型学習用のノートブックを配布し4 実験結果および考察

た．また，プログラミング演習の開始前には，学習の本節では，実験結果および学習後アンケートの結果

手順およびノートブックと同じサンプルコードが印刷を示し，考察を行う．

されている演習用資料を紙で配布した．
また，実験協力者には，プログラミング演習開始前

4. 1 実験結果に 2. 1 節で述べた翻訳学習の手順もしくは写経型学

ここでは，プログラミング知識，プログラミング能

習の手順について説明し，この手順に沿ってプログラ

力に関する実験結果および学習後アンケートの結果

ミング演習を行うように指示した．実行結果の予想がを示す．

合っていた場合は，以下のリストの順番で次のサンプ

4. 1. 1 プログラミング知識

ルコードへと進んでいく．

図 4 にプログラミング知識に関する試験問題の学

1. 順次処理と変数
2. 条件分岐の基本
3. 繰り返しの基本
4. 条件分岐の応用
5. 繰り返しの応用
6. 順次，分岐，反復の総合理解

習前後での各実験協力者の得点の変化を示す．また，
表 2 に各実験協力者における得点の上昇幅および各グ
ループにおける平均上昇幅を示す．
図 4 および表 2 に示す通り，得点が下がった実験協
力者，得点が変わらなかった実験協力者がそれぞれ見受けられるが，得点の平均上昇幅は両グループともに正の値となった．この得点の上昇が有意である

サンプルコードは，翻訳グループは DNCL2，写かを確認するため，GroupA と GroupB それぞれの経グループは Python で各項目ごとに 1 つずつ用意

実験協力者の学習前と学習後の得点に対して有意水した．

準 5%で Wilcoxon の符号順位和検定を行ったところ，

p 値は GroupA において 0.0292，GroupB において
3. 4 学習後アンケート

0.2071 であり，翻訳学習を行った GroupA は有意差

学習後試験の後，4. 1. 3 節で示す設問について，全があった．

ての実験協力者に Google Classroom の課題として配布した Google Forms から回答してもらった．

また，GroupB よりも GroupA の方が得点の平均上昇幅が大きく，この差が有意なものであるかを確認するため，表 2 のデータに対して有意水準 5%でMann-Whitney の U 検定を行ったところ，p 値は

図4

実験協力者ごとの学習前後のプログラミング知識に関する得点の比較

0.1746 であり，有意差はなかった．

図5

実験協力者ごとの学習前後のプログラミング能力に関する得点の比較示す．なお，No. 1，No. 2，No. 5〜No. 8 は「とても

4. 1. 2 プログラミング能力

そう思わない」を 1，「とてもそう思う」を 4 とした 1

図 5 にプログラミング能力に関する試験問題の学〜4 の 4 段階，No. 3 と No. 4 は「とても難しかった」

習前後での各実験協力者の得点の変化を示す．また，を 1，「とても簡単だった」を 4 とした 1〜4 の 4 段階，

表 3 に各実験協力者における得点の上昇幅および各グ

No. 9 は「〜の間繰り返すのように日本語で書かれてループにおける平均上昇幅を示す．

いる」を 1，「while のようにローマ字でプログラミン

図 5 および表 3 に示す通り，得点が下がった実験協
力者や得点が変わらなかった実験協力者がそれぞれ見

グ言語で書かれている」を 4 とした 1〜4 の 4 段階で回答してもらった．

受けられるが，得点の平均上昇幅は両グループともに

表 4 を見ると，設問 7「この学習法ならプログラミン

正の値となった．この得点の上昇が有意なものである

グ学習を積極的に実施できそうだ」に対して差が大きかを確認するため，GroupA と GroupB それぞれのく開いており，翻訳学習を行った GroupA の方が数値

実験協力者の学習前と学習後の得点に関して有意水が高い．この差が有意なものであるかを確認するため，

準 5%で Wilcoxon の符号順位和検定を行ったところ，

回答データに対して有意水準 5%で Mann-Whitneyp 値は GroupA において 0.0140，GroupB においての U 検定を行ったところ，p 値は 0.0380 であり，有0.0374 であり，両グループともに有意差があった．

意差があった．なお，No. 1〜No. 9 の他の質問項目にまた，GroupB よりも GroupA の方が得点の平均

ついても同様の検定を行ったところ，どれも有意差が上昇幅が大きく，この差が有意なものであるかを確なかった．

認するため，表 3 のデータに対して有意水準 5%で以上で示した選択式アンケートに加えて，自由記

Mann-Whitney の U 検定を行ったところ，p 値は述式の設問において，学習法の良かった点と良くな

0.2226 であり，有意差はなかった．

かった点および改善すべき点について回答してもらっ4. 1. 3 アンケート結果

た．翻訳学習を行った GroupA の実験協力者からは，

3. 4 節で述べたアンケートについて，No. 1〜No. 8

コードの意味を理解しながら演習を進めやすい点がの質問項目および各グループにおける回答の平均値と優れているが，演習時間がコードを覚えきるのに不十GroupA の平均値 − GroupB の平均値 によって求め分であったという意見が寄せられた．一方で，写経型られる差を表 4 に示す．また，設問 No. 9「サンプル学習を行った GroupB の実験協力者からは，写経す

コードを基に自分でプログラムを打ち込む学習法にる過程で自分が勘違いしているところに気づいたりおけるサンプルコードの内容について，学習に役立修正できたりする点が優れているが，サンプルコード

ちそうだと思うのはどちらですか？」に対する回答をを書き写すだけの作業になってしまい分からなくてもグループ毎，および実験協力者全体について図 6 に実行できてしまうことでできた気になってしまう点が表2

実験協力者ごとのプログラミング知識の得点の上昇幅

グループ

各実験協力者における得点の上昇幅

GroupA

2

4

5

0

7

-1

GroupB

3

1

0

-3

2

1

表3

1

2.57
0.67

実験協力者ごとのプログラミング能力の得点の上昇幅

グループ

各実験協力者における得点の上昇幅

GroupA

4

3.75

1.7

0.95

-0.8

3.25

GroupB

-0.5

0.2

1.95

2.75

3

0.75

表4

平均値

平均値

1

1.98
1.36

アンケートの質問項目および各グループの回答の平均値

No.

質問項目

1

プログラミングへの自信がつきそうですか？

2

本日使用した学習ツールによってプログラミングに対する以下の諸課題は解決しそうですか？

2a

自分が解決したい問題をどのようなアルゴリズムで解決できるか分からない

2.71

3.17

-0.45

2b

アルゴリズムが与えられていてもそれをプログラムで記述するのが難しい

2.57

3.00

-0.43

2c

プログラミングに触れる量が少なく，上達できない

2.29

2.83

-0.55

2d

print や while など，ローマ字で書かれた命令を覚えられない

2.86

3.00

-0.14

3

プログラミング演習の学習法が難しかった

2.29

2.33

-0.05

4

プログラミング演習の際，サンプルコードを読むのが難しかった

3.29

3.00

0.29

5

打ち込んでいるコードの意味を理解しながらプログラミングできた

3.43

2.83

0.60

6

この学習法なら学習がスムーズに進みそうだ

3.43

3.00

0.43

7

この学習法ならプログラミング学習を積極的に実施できそうだ

3.86

3.33

0.52

8

このツールを使うことはプログラミングへの苦手意識の克服に役立ちそうだ

3.29

3.50

-0.21

問題だという意見が寄せられた．

GroupAGroupB

平均値の差

2.86

3.33

-0.48

今後の課題として，今回の実験では少数の実験協力者に対して，30 分のみの学習時間で学習効果の評価

4. 2 考察を行ったため，実際の授業やプログラミング講座のよ4. 1 節で示したように，プログラミング知識の得点

うに時間をかけて長期的に学習を行った場合の効果にに関して，翻訳グループは学習前と比べ学習後は有意違いがあるかを調べることが挙げられる．

に上昇したが，写経グループには学習前後で有意差はなかった．一方で，プログラミング能力の得点に関

5 関連研究しては，翻訳グループと写経グループの双方で有意

これまで，初学者に対するプログラミング学習にに上昇した．また，プログラミング知識とプログラミ

ついて，写経型学習の学習効果や日本語文字を取りング能力のどちらにおいても，各グループにおける入れたプログラミング言語による日本人への学習効

得点の上昇幅の平均値には有意差はなかった．また，果，別のプログラミング言語へ移行する際の課題など

アンケート結果からは，翻訳グループの方が学習に積について様々な研究が行われてきた．ここでは，これ極的に取り組めそうだと有意に感じていることがわらの観点から主要な研究について概観する．まず 5. 1

かった．

節において，写経型学習の有効性と問題点およびそ図6

設問 No. 9「サンプルコードを基に自分でプログラムを打ち込む学習法におけるサンプルコードの内容について，学習に役立ちそうだと思うのはどちらですか？」に対する回答の解決策について述べる．次に，5. 2 節では，日本語写経型学習において，学習目的を明示することと実行

文字を使用して記述したプログラムによるプログラに至るまでの作業が滞りなく進むよう丁寧な支援を

ミング学習を提案した研究について述べる．最後に，行うことによって，躓きが多発する for 文に関して，

5. 3 節では，あるプログラミング言語のプログラムを

8 割以上の学生が理解した．

別のプログラミング言語のプログラムに書き換える

亀井らによる研究 [5] では，写経型学習において構学習法あるいは言語の移行に関し，その効果や課題に文や意味といったプログラミング知識の理解が不十分

ついて述べる．

になりがちであるという欠点を補うために，写経型学
習においてコードに微小な変更を加える摂動による

5. 1 写経型学習の有効性と問題点

学習法を提案した．彼らは，提案手法の例として，二菊池らによる研究 [6] では，普段プログラミングを項演算子に摂動を加えるプログラミング学習ツール

行うグループと行わないグループそれぞれにアルゴリを開発し，初学者を対象とした評価実験を行った．こズム理解課題とアルゴリズム実装課題を行わせ，プロの結果，演習問題を解く学習法を行ったグループより

グラミングの経験量と開発力の関連について調べた．

も，写経型学習に加えて摂動に基づく学習法を行った

この結果，普段のプログラミング経験は開発力への影

グループの方が，学習効果が向上したことを示した．

響が明らかに見られるが，アルゴリズム自体の理解

我々が過去に行った研究 [16] では，プログラミング

力にはプログラミング経験での有意差は認められず，初学者である高校生の多くはキーの位置を覚えてい一定以上のプログラミング経験があるとアルゴリズないことに着目し，プログラミング初学者の写経型ムを理解して実装することが可能である．

学習の効果向上を目的として，次に押すべきキーを岡本らによる研究 [4] では，プログラミング初学者

光らせながら写経を行う学習法を提案した．この学の写経型学習における問題点を作業遂行上の躓きと習法を実装したツールによる実験の結果，次に押す作業を介した理解に関する躓きに分類し，それぞれにべきキーを光らせることで，光らせない場合と比べ，対してコンパイル手順やエラー発見方法の手順が書

写経型学習のプログラミング能力向上の効果が有意かれており，さらに学習目的や学習方法を明示されてに高いことが示された．このことから，初学者がタイいる教材を開発した．この教材を用いた実験の結果，ピングに対する課題を抱えていることが写経型学習

のプログラミング能力を向上させる効果を抑制して英字で書かれている書かれている別のプログラミング

おり，写経型学習には一定のタイピング能力が必要で言語から書き換えることの学習効果については調べらあった．しかし，亀井らの研究 [5] および我々の過去れていない．これに対し，本研究では，DNCL2 からの研究 [16] において，写経型学習自体の有効性についPython へ書き換える学習を例として学習効果を調査ては調査されていない．

しており，この点においてこれらの研究と異なる．

上記のように，摂動や光るキーボードなど，写経と何かを組み合わせることで単なる写経と比べて学習

5. 3 別のプログラミング言語への書き換えや移行に関して検討を行った研究

効果が向上することがこれまで示されてきた．本研究は，翻訳しながら写経する新たな学習法を提案したものである．

間辺らの研究 [7] では，学習指導要領の改訂によって，生徒がプログラミングの学習経験を持った状態で高等学校に入学してくることを考慮し，C の学習経

5. 2 日本語文字を用いたプログラミング学習に関してさまざまな観点から検討を行った研究験を持つ生徒に対して Python を導入する授業の例として，C から Python へのプログラム書き換えによ中川ら [11] は，C 言語において識別子等に日本語をる方法を示した．この方式で授業を行った結果，約 8

使用する場合と使用しない場合で読解力を比較する

割の生徒が難しさを感じた．間辺らは，その要因とし実験を行った．この実験の結果，日本語の方が英語のて，既習のアルゴリズムの理解が不十分であること

2/3 程度の所要時間で読解できることが示された．

や，C から Python に書き換えるための思考とアルゴ

次に，西田ら [10] は，DNCL に拡張を加えた日本リズムを Python で記述するための思考とが混在して語ベースの独自言語によるプログラミング学習環境

しまったことを挙げている．一方で，この学習によっ

PEN を作成した．この環境を大学の授業で用いた結て，Python と C では表記が異なるもののアルゴリズ

果，JavaScript で学習した場合と比べ，プログラミムは同じであることに気づかせる効果が期待できるングの理解度の自己評価と試験の成績の双方で有意と述べている．

に高くなった．

また，Nischal らの研究 [2] では，ある言語を理解しまた，高野らの研究 [8] では，中高生にプログラミている職業プログラマが既習の知識を活用すること

ングの楽しさを学んでもらうために，自然言語を用いで，別の言語を簡単に習得することができるのかを明たプログラミング言語 Samoyed を提案し，プログラ

らかにするために，既習の知識が新しい言語の学習を

ムの動作原理が理解できるような言語処理系の構想

妨げるかどうかについて調査した．この調査の結果，を示したが，自然言語の曖昧性による問題が解決され既習の言語の構文などが新しい言語における学習内ていない．

容に干渉し，混同してしまうなどの事例が多数見ら

さらに，西村らの研究 [9] では，中学，高校の情報れた．

分野の授業で記述させるフローチャートだけでは C

さらに，Ethel らの研究 [3] では，学生がプログラ

言語のプログラムを記述するための情報が不足してミング教育の過程において言語の移行に関して課題いると考え，C 言語のプログラム断片を選択肢からを抱えているということに着目し，プログラミング初選択することでプログラムを書き，さらに日本語の文学者の学生が新しい言語を学ぶ際に，変数への代入との対応が見ることができる学習支援システムを開や while ループ，メソッドといった構成要素の理解

発した．

がどのように深まるかを明らかにするために，命令型

上記の研究においては，日本語文字を使用して記述の Python からオブジェクト指向型の Java に移行すするプログラミング言語の検討や開発がなされておる学生と，オブジェクト指向型の Java から命令型のり，また，従来のプログラミング言語による学習と比Python に移行する学生の学習について比較した．こべて学習効果が高いことも示されているが，大部分がの結果，学生は，Java と Python で構文が似ている

が意味が違う場合や，構文は異なるが意味は同じ場合に苦労していた．
上記の研究は，ある言語のプログラムを別の言語のプログラムに書き換える際に，C や Java から Python
といったような言語の構成要素が少し異なる言語間での移行について調査した．これに対し本研究では，言語の構成要素がほぼ同じである DNCL2 から Python
への書き換えを対象としており，上記の研究で指摘された表記の違いによる混乱が起こりにくくなると考える．

6 まとめと今後の課題
本研究では，プログラミング初学者を対象に，写経型学習の単調性を改善するするために，別の言語へ翻訳しながら写経を行う翻訳学習法を提案した．提案手法の有効性を評価するため，書き換え元のプログラム
が DNCL2，書き換え先のプログラムが Python である場合を例として，翻訳学習を行う場合と，Pythonの写経型学習を行う場合でプログラミング知識やプ
ログラミング能力について比較実験を行った．その結果，プログラミング能力の得点に関して，翻訳グルー
プと写経グループともに有意に上昇した．プログラ
ミング能力の得点に関しては，翻訳グループは有意に上昇したが，写経グループには有意差がなかった．
また，プログラミング知識とプログラミング能力のどちらにおいても，各グループにおける得点の上昇幅の平均値には有意差はなかった．これらのことから，
翻訳学習と写経型学習のどちらが学習効果が高いかについて示すことはできなかった．今回は短時間の実験であったが，長期的な学習で効果に違いがあるかを調査することが今度の課題として考えられる．
謝辞
本研究を進めるにあたり，評価実験にご協力いただ
いた芝浦工業大学工学部およびシステム理工学部の2024 年度入学の 1 年生 13 名の学生の皆様に感謝申し上げます．

参 考 文 献[ 1 ] Google: Colaboratory へようこそ - Colab, https://colab.research.google.com/. 2024 年 6 月 21 日

参照.
[ 2 ] Shrestha, N., Botta, C., Barik, T., and Parnin,C.: Here we go again: why is it diﬃcult for developers to learn another programming language?,
Proceedings of the ACM/IEEE 42nd International
Conference on Software Engineering, ICSE ’20,
2020, pp. 691–701.
[ 3 ] Tshukudu, E. and Cutts, Q.: Understanding
Conceptual Transfer for Students Learning New
Programming Languages, Proceedings of the 2020
ACM Conference on International Computing Education Research, ICER ’20, 2020, pp. 227–237.
[ 4 ] 岡本雅子, 村上正行, 吉川直人, 喜多一: プログラ
ミングの写経型学習過程を対象としたつまずきの分析とテキスト教材の改善 : 作業の自立的遂行と作業を介した理解のための支援と工夫, 京都大学高等教育研究,
Vol. 19(2013), pp. 47–57.
[ 5 ] 亀井亮汰, 吉塚大浩, 篠埜功, 古宮誠一: 写経型学習の欠点を補う摂動を用いた理解度確認問題生成手法 ―二項演算子の事例に基づく有効性評価, コンピュータソ
フトウェア, Vol. 38, No. 1(2021), pp. 111–139.
[ 6 ] 菊池智, 濱本和彦: プログラミングの経験量が開発力に与える影響に関する研究, 人工知能学会研究会 第73 回 先進的学習科学と工学研究会, 2015, pp. 31–35.
[ 7 ] 間辺広樹, 長島和平, 並木美太郎, 長慎也, 兼宗進: Cの学習経験を持つ高校生への Python の授業導入事例, 情報教育シンポジウム 論文集 2019, 2019, pp. 256–262.
[ 8 ] 高野志歩, 田村みゆ, 富岡真由, 秋信有花, 倉光君郎:
擬似コードから考える自然言語を活かしたプログラミ
ング言語, 情報教育シンポジウム 論文集 2021, 2021,
pp. 147–151.
[ 9 ] 西村宗一郎, 花田理, 倉山めぐみ: 日本語と C 言語
をつなぐプログラミング学習支援システムの提案, 電子情報通信学会 教育工学研究会, 2018, pp. 39–42.
2018-11-ET.
[10] 西田知博, 原田章, 中村亮太, 宮本友介, 松浦敏雄: 初
学者用プログラミング学習環境 PEN の実装と評価, 情報処理学会論文誌, Vol. 48, No. 8(2007), pp. 2736–2747.
[11] 中川正樹, 早川栄, 玉木裕一, 曽谷俊男: 日本語プ
ログラミングの実践とその効果, 情報処理学会論文誌,
Vol. 35, No. 10(1994), pp. 2170–2179.
[12] 独 立 行 政 法 人 大 学 入 試 セ ン タ ー: 平 成 30 年
告示高等学校学習指導要領に対応した令和 7 年
度 大 学 入 学 共 通 テ ス ト か ら の 出 題 教 科・科 目 に つい て, https://www.dnc.ac.jp/albums/abm.php?d=510&f=abm00000301.pdf, 2021. 2024 年 6 月 17 日
参照.
[13] 独 立 行 政 法 人 大 学 入 試 セ ン タ ー: 令 和 ７
年 度 大 学 入 学 共 通 テ ス ト 試 作 問 題「 情 報 」の
概 要, https://www.dnc.ac.jp/albums/abm.php?d=511&f=abm00003141.pdf, 2021. 2024 年 6 月 17 日
参照.
[14] 文部科学省: 高等学校学習指導要領（平成 30 年告示）解説 情報編, https://www.mext.go.jp/content/
1407073_11_1_2.pdf, 2018. 2023 年 5 月 16 日参照.
[15] 文部科学省: 小学校プログラミング教育に関する概
要 資 料, https://www.mext.go.jp/a_menu/shotou/
zyouhou/detail/1416328.htm, 2018. 2023 年 5 月

16 日参照.
[16] 平澤巧望, 篠埜功: 光るキーボードを用いた写経型

プログラミング学習の支援, 情報処理学会論文誌 プログ
ラミング, Vol. 16, No. 2(2023), pp. 1–27.