P1-11

思考言語を活用したプログラミング学習支援環境の実験的利用
Experimental Use of Programming Learning Support Environment
Using Thinking Language
中里 美夢*1，倉山 めぐみ*1
Miyuu NAKASATO*1，Megumi KURAYAMA*1*1 函館工業高等専門学校*1National Institute of Technology, Hakodate College
Email: 22708@hakodate.kosen-ac.jp
あらまし：我々は，プログラミング，特に C 言語を学ぶ段階で苦手意識を持っている学習者を対象としたプログラミング学習支援環境の開発を行っている．本環境では，C 言語だけでプログラムを組むのではなく，頭の中で考える言語（思考言語）を用いてプログラムを組ませ，それをもとに C 言語のプログラムを組ませることで学習者の苦手意識の克服を目指している．本研究では，既存システムに学習ログおよび解答時間の記録を行うための修正を行い，修正後のシステムを用いた利用実験を実施し，事前事後アン
ケートの結果と解答時間の変化，解答手順の分析によりその学習効果等を報告する．
キーワード：プログラミング，学習支援システム，C 言語，学習履歴1.

はじめに学校教育の分野では，情報化の推進に伴い，プログラミング教育が必修化された．特に技術者育成の過程においては，プログラミング言語を使いシステムの設計や開発を行う技術の習得が求められるため、授業内容に文法学習と演習を取り入れたプログラミング学習が実施されている．しかしながら，学習者が「問題の意味と構築すべき処理の流れは理解できるが，プログラミング言語に置き換えることができない」ことが原因で苦手意識を持ってしまうなどの課題が残されている(1)．これを解決するため，先行研究では，人が物事を考える上で使用している言語（以下，本稿では思考言語と呼ぶ）からプログラミング言語への変換を促す学習支援システムが開発されている(2)(3)．
本研究では，既存システムに学習履歴を記録するための修正を加え，学習者の習得レベル向上を目指すとともに，その利用実験を行い，学習効果を検証することを目的としている．

2.

プログラミング学習支援システム

2.1 プログラミング解決過程
先行研究(2)より，既存システムによるプログラミング解決過程は，図 1 に示す Polya の問題解決過程(4)を基に考案されている．Polya の問題解決過程とは，「問題を理解すること」「計画を立てること」「計画を実行すること」「振り返ってみること」のことを指す．これをプログラミング解決に置き換えると、「何を実行する」「どのように処理する」「プログラミングを行い，実行する」「デバッグを行う」という流れになる．この過程において，2 段階目から 3 段階目に進むには，自分で考えた処理をプログラミングによって実行できなければならないが，プログラミング言語への置き換えを苦手とする学習者にとっては躓きの原因になると考えられる．そこで，我々は思考言語とプログラミング言語を両方利用することでお互いの言語を対応付け，実際にプログラムを組む段階の支援を行うシステムの開発を行っている．

図 1 問題解決過程
2.2 システム概要
既存システムは，思考言語を日本語，学習するプ
ログラミング言語を C 言語とし，問題解答画面を図2,3 に示す. 問題解答画面①は日本語によるプログ
ラム記述，問題解答画面②は C 言語によるプログラ
ム記述であり，利用者は画面に表示されるプログラ
ムの処理が書かれたカードを記述内の空欄に当てはめ解答する. 問題解答画面①では，問題文に対して日本語によってプログラムされた部分の空欄に，正しい処理の流れになるように単文カードを当てはめると正解となる．この問題に正解すると問題解答画面②に遷移するが，問題解答画面②に表示される問
題は，問題解答画面①で解答した処理の流れをそのまま C 言語に置き換えたものである．さらに，画面上には前問で解答した日本語によるプログラム記述が示されており，C 言語の問題を日本語の問題と同じように解答することができる．このように，日本語と C 言語で記述されたプログラムの処理が同一のものであることを視覚的に認識させることで， C 言語記述のプログラムへの変換に対する抵抗を軽減させ，プログラミング技術の習得を促す．

― 59 ―

教育システム情報学会 JSiSE2023
第48回全国大会 2023/8/29-8/31

3.2 解答時間の計測
表示する解答結果のひとつとして解答時間を追加する．解答時間を計測することで，時間が長いほど利用者がその問題に苦手意識を持っていると判断できると考えたためである．また，同じ問題について日本語記述で解いた場合と C 言語記述で解いた場合の時間を比較することで，プログラミング言語への変換に対する抵抗を軽減させることができているかどうかを確認することも可能となる．

図 2 問題解答画面①4.

図 3 問題解答画面②3.

システムの修正

3.1 解答結果および解答手順の記録
本システムを独学支援の目的で利用する場合，利用者が自身で履歴の確認や学習計画の見直しを行い，改善していくことで習得レベルが向上する．そこで，本システムに学習履歴や解答手順を記録するための修正を行う．
解答結果の表示を行うには，利用者ごとに学習内容のログを残す必要がある．本システムはログがテキストファイルで出力するよう設計されているが，生成されたファイルが見当たらないため，テキストファイルの出力先を修正することでファイルの生成を行う．
出力されたログを図 4 に示す．ファイルは問題解
答画面①，②に解答するごとにそれぞれの解答結果に対して生成されており，利用者ごとに分かれている．また，ファイルには選択した問題とそれに対する解答，正誤判定の結果が記録されていることが確認できる．これを用いて，システム上に解答結果を表示する画面を作成する．また、ログ生成のためのプログラムを修正し，カードが空欄に当てはめられた際の空欄の場所と時間を記録することで、解答手順を表示する．

図 4 ログ画面

利用実験

4.1 実験概要
本研究では，既に C 言語の学習を行っている高専
2 学年 45 人を対象にシステムの利用実験を行う予定である．また本実験は，対象者にシステムを用いて学習してもらい，C 言語の学習を支援するシステムとして有用であるか，またどの程度の学習効果があるのかを調査することを目的とする．
本実験は，「事前アンケート」「システムの利用説明」「50 分間のシステム利用」「事後アンケート」の流れで実施する．なお，対象者は本システム上で出題される問題の範囲についての学習を終えているた
め，解答する問題は対象者の自己判断とする．
4.2 学習効果の検証
本実験では，事前事後アンケートの結果と解答時間の変化，解答手順の分析により学習効果の検証を行う．これらの方法は，学習前後で対象者の考えや問題の解き方などを比較できるため，C 言語への意識にどのような変化が現れたのか分析する方法として効果的であるといえる．

5.

まとめ

本研究では，Java 等で構成された既存システムに対し，ログを示したファイルの出力と，解答時間を計測するプログラムを追加するための修正を行った．
これにより，テキストファイルで出力されたログの確認と，解答時間の計測が可能となった．今後も課題を改善し，解答手順を含めた学習履歴をシステム上に表示することで本システムの改良を進め，計画している利用実験を有意義なものとしたい．
参考文献(1) 今泉俊幸,橋浦弘明,松浦佐江子,古宮誠一:ブロック構造の可視化環境によるプログラミング学習支援,電子情報通信学会技術研究報告 Vol.109,No.193,pp.45-50(2009)(2) 西村宗一郎,倉山めぐみ:思考言語とプログラミング言語をつなぐ学習支援システムの開発とその利用,日本教育工学会研究報告集 19(5), pp.193-196(2019)(3) 田中遥稀,倉山めぐみ:プログラミング学習支援システ
ムの開発と実験利用,教育システム情報学会 2021 年度
学生研究発表会予稿集,pp.15-16(2021)(4) Polya,G.How
to Solve It,Princection University
Press.(1945)― 60 ―