JSiSE Research Report
vol.38,no.3(2023-9)

プログラミング演習における学習状況把握のためのペア学習の会話調査
海野芽美 *1 ,*1伊藤恵 *2

公立はこだて未来大学大学院,*2

公立はこだて未来大学

Pair Learning Conversational Research for Monitoring
Learning Progress in Programming Exercises
Megumi Unno*1 , Kei Ito*2*1

Graduate School of Future University Hakodate,*2

Future University Hakodate

In programming exercise classes, mentors such as instructors and TAs provide learning support to learners
with a limited number of personnel. In such situations learners might struggle or leave tasks unﬁnishedwithin the exercise duration. To address the above situations, learning situation monitoring and support
systems have been proposed. In this study, we aim to develop a learning situation monitoring and support
system that leverages conversation data among learners. This paper describes the investigation of learnerto-learner conversations conducted to realize this system.
キーワード：学習支援者支援, 協調学習, プログラミング演習

1

ただ TA を追加しても，学習者の数に対して少数のはじめにメンターで学習者の質問や相談に対応するために，学プログラミング導入教育では，演習形式の講義が行われることが一般的である．本研究における演習形式の講義とは，講義中に演習課題が出され，学習者が自習者の状況を把握して支援することが困難な場合がある．また，学習者が課題を解く過程でつまずいてもメンターに相談しない場合がある．

力で課題を解く授業形式のことである．Lahtinen ら (1)

このような課題に対処するために，メンターが演習によると，プログラミングを学習する上で，演習は座学の講義よりも有用である．

中に学習者の様子を把握しやすくするための学習状況把握支援システムが提案されてきた．学習状況把握支

演習形式の講義では，講師はメンターとして学習者からの質問に対応することや進捗が遅れている学習者を発見し支援をすることなど，学習者の状況に合わせた支援を行わなければならない．しかし，講師だけで援システムには，エラーログや操作ログから学習者のつまずきを検知してメンターに表示するシステム (3) や，学習者の進捗状況を整理してメンターに表示するシステム (4) などがある．

このような支援をすることが難しいため，追加のメンターとしてティーチングアシスタント (以後，TA) が導入されることが多い．

一方，プログラミング導入教育において，協調学習は有効である．吉野ら (5) によると，プログラミングの講義で初学者に協調学習による自学自習を実践したとTA に求められている役割は，授業外の支援や授業内容以外に関する質問にも対応すること，提出物の期日ころ，初学者のプログラミングに対する自信と興味の向上と，積極的な学習態度の換起が見られた．

や授業の評価基準について把握すること，学習者が行き詰った状態を学習者と一緒に解決する支援をするこ

そして，近年プログラミング導入教育においてペア学習の利用が増えている．McDowell ら (6) はプログラとなど多岐にわたる (2) ．
― 67 ―

ミング導入教育においてペアプログラミングは，落第いによるつまずきを含めたつまずきの把握支援を，プ可能性のあった者の単位取得，コードの質の向上に効ログラミング言語に依存しない形で実現することを目果があったと述べている．

指す．

本研究では，ペア学習を使った演習形式の講義を対象とする学習状況把握支援システムの提案を行う．そ2.2 ペア学習におけるつまずき分析に関する先行研究
ペアプログラミングにおけるつまずき解決の成功とのためには，ペアの会話から学習状況を把握する機能を考案する必要ある．本稿では，ペアの会話から学習状況を把握するシステムを実現するために行った会話失敗にみられる会話の違いが平井ら (7) によって分析されている．この研究は，つまずきの解決に成功するペアと失敗するペアの特徴の抽出を目的としていた．そ調査の結果について報告する．

して，ペアプログラミング中のペアの会話を分析対象2として，発話量，説明の繰り返し，ペアの両者が交互に関連研究発話できているかに注目していた．それによると，つ2.1 学習状況把握支援システム

まずき解決に失敗するペアは，成功するペアと比べて学習状況把握支援システムとは，演習形式の講義中会話の発話長が長く，説明の繰り返しが多い特徴が見にメンターが受講生の進捗や，つまずきを把握するこられた．平井らの研究では，つまずきが発生したときとを支援するシステムである．に限らず，プログラミング中のすべてを通した発話量

市村ら(3)の学習状況把握支援システムは，つまずいている学生の早期発見と多くの学生が共通に抱える問と発話内容の計測を行っていたため，つまずきの状況にあるペアの発話状態については不明である．

題の発見を目的として Web ブラウザ上で動く学習状況把握支援システムの提案を行った．市村らのシステム

3は，エラーログと操作ログをサーバ側で収集して解析し，メンターに提示するシステムである．市村らのシステムは，受講生が共通してつまずいているポイントを可視化している．この共通してつまずいているポイントを可視化することによって，メンターが受講生全体にヒントを与えやすくなる効果がある．しかし，市ペア学習の会話調査
本研究の最終目標は，ペア学習を使った演習形式の講義を対象とする学習状況把握支援システムの提案を行うことである．そのためにペア学習特有のリソースである会話から学習状況を把握することを試みている．
この節では，その一環として行ったペア学習時の会話を調査する実験について報告をする．

村らのシステムは，エラーが出た場合はつまずきとして検知できるが，ロジックによる出力結果の誤りをつ3.1 実験まずきとしてみることに対応していない．
井垣ら

初学者以上の学生を対象にペアでプログラミング課

は，進捗が相対的に遅れている学習者を早題を解く実験を行い，その時にされる会話の調査を行っ期発見しメンターが支援に入ることを目的として教育た．実験の目的は、ペア学習の際に行われる会話を調支援システムを提案した．このシステムでは，コード査し、その会話から得られる情報が学習状況の把握支数，課題ごとのコーディング時間，単位時間当たりの援にどのように活用できるかを検討することである．

(4)

エディタ操作数，課題ごとのエラー継続時間をもとにコーディング過程の可視化を行うことで，進捗が遅れ

3.1.1 実験対象
著者ら所属大学において，学部 1 年次開講の Process-ている学生の支援を行った．井垣らのシステムは，学習に利用している言語に依存しない点で優れている．一方，井垣らのシステムは，課題ごとに進捗の遅れを出力しているため，課題 1 問がより複雑になり，難易度が上がった場合に進捗が管理しにくくなる可能性がある．

ing 言語1 によるプログラミングを学ぶ科目「情報表現入門」を履修済みであり，学部 1 年次開講の C 言語を学ぶ科目「プログラミング基礎」を履修済みもしくは履修中の８名を対象とした．
ペアの編成は，実験実施者でランダムに組み合わせ

本研究では，学習者のつまずきの発見に会話から得られる情報を利用することによって，ロジックの間違た．ペアの組み合わせを表 1 に示す．
1 https://processing.org/― 68 ―

設問

表 1: ペアの組み合わせ
ペア 1

ペア 2

ペア 3

ペア 4

設問は，TechFUL3 というプログラミング学習のサイト上で出題されている問題を利用した．被験者に被験者 A

学部 1 年

被験者 B

学部 1 年

被験者 C

学部 4 年

3.1.3 結果

被験者 D

学部 2 年

発話量

被験者 E

学部 1 年

まずきの状態にあるペアの発話量を計測した．

被験者 F

学部 4 年

被験者 G

学部 4 年

被験者 H

学部 1 年は，C 言語を使って回答するように指示をした．

つまずきを以下のように 3 種類定義して，つ• エラーが発生している状態コンパイルエラーや，エディタ自体のエラーが発生している状態をつまずきとする．

• 問題の解き方がわかっていない状態
問題を解く方略を考えることができておらず，課題に着手できていない状態をつまずきとする．

• ペア間の会話に問題がある状態
ペア両者の作業の手と会話両方が止まってしまっている状態や，片方が会話をしない状態などのコミュニケーションの問題をつまずきとする．
図 1: 実験の様子
発話量は，連続した発話を文字起こししたテキストデータの形態素数とした．例を表 2 に示す．発話量は，3.1.2 実験方法
被験者には，画面操作役を交代しながらプログラミングを行ってもらった．画面操作役の被験者は，実験実施者が用意したパソコンを利用してコーディングを行相手に対して発話したものに加えて，独り言も発話として計測した．なお，形態素数は，Yahoo!の日本語形態素解析4 を利用して算出した．
実験中には，表 3 のようなつまずきが見られた．表なった．被験者は，実験実施者が用意したパソコンとは別に，自身のパソコンを利用できるようにし，インターネットでわからないことを調べながらプログラミ

は，つまずきが発生したペアと，ペアごとに発生したつまずきの原因，つまずきの継続時間，つまずきが解決したかどうか，プログラミング中全体の発話量，つングに取り組んだ．

まずき継続中の発話量，プログラミング中全体のペア
実験手順

実験は，図 1 のように 1 組ずつ行い，以下間の発話比率，つまずき継続中のペア間の発話比率を示す．発話量はペアの両者の発話から算出した形態素の手順で実施した．

数とした．ペア間の発話比率は，ペア両者の発話のう1. 15 分ほどで被験者に対し，実験の概要と実験の手順を説明した．

ち，発話がより多かった方の発話の比率とした．発話比
率の小数点以下は切り捨てた．例えば，表中のつまず

2. 40 分間ペア学習を実施してもらった．10 分ごとイ

き 1 の場合，ペア 1 のペアに，文法知識の不足によるンターバルを設けて，画面操作役の交代を行った．

つまずきが発生し，10 分 15 秒間つまずきが継続して，未解決のまま終了したことを示す．そして，つまずき収集するデータ

予備実験では，ペア学習中の音声の録音と画面操作役の操作画面の録画を行った．録画は，Zoom2 のレコーディング機能を利用した．

継続中の会話のうち，より発話量が多い被験者 A が発話した比率は, 被験者 A の発話量 787 をつまずき継続中全体の発話量 (787+83) で割って 90%である．
3 https://techful-programming.com
4 https://developer.yahoo.co.jp/webapi/jlp/ma/

2 https://zoom.us

v2/parse.html― 69 ―

表 2: 実験中の発話例と発話量の算出
話者

発話の形態素解析結果

発話量

被験者Ａ

えー/、/どう/しよう/。/いや/、/ちなみ

19に/、/どういう/こと/やろう/と/思って/る/か/分かり/ます/？
被験者 B

よく/分かって/ない/。/２/個/目/の/for/

11が/。
被験者Ａ

うーん/、/そう/、/え/、/僕/の/方針/を85/、/これ/は/普通/に/伝えて/いい/の/か/な/。じゃ/、/ちょっと/伝えて/みて/、/そう/だ/な/。/ 文字/列/が/最初に/c/に/、/ss/か/、/ss/に/１/回/入って/いく/んだ/けども/、/この/ss/の/中/から/h/と/a/と/p/と/p/と/y/を/消し去り/続ければ/、/消し去り/続けて/消せ/なく/なれば/、/多分/その/数/が/答え/だ/と/、/僕/は/思って/。
被験者 B

うーん/。

2

表 3: 調査中のつまずきつまずきがつまずきのつまずき継解決し実験全体

つまずき全体のペつまずき発生したペ

原因

続時間

たかの発話量中の発話

ア間の発中の発話量話 比 率

比率

ア[%]
つまずき 1

ペア 1

文法知識の10 分 15 秒

未解決

2862:482

787:8385

90

01 分 05 秒

解決

2844:738

142:2779

84

25 分 55 秒

未解決

2844:738

1514:416

79

78

00 分 30 秒

解決

1783:2745 16:27

60

62

06 分 50 秒

解決

1783:2745 247:369

60

58

01 分 30 秒

解決

1926:2261 18:60

54

76

06 分 55 秒

解決

1926:2261 410:509

54

55

不足
つまずき 2

ペア 2

方針の未決
定

つまずき 3

ペア 2

文法知識の不足

つまずき 4

ペア 3

文法の間違
い

つまずき 5

ペア 3

アルゴリズ
ムの間違い

つまずき 6

ペア 4

大文字と小文字の間違いつまずき 7

ペア 4

アルゴリズ
ムの間違い

― 70 ―3.1.4 実験中の被験者の様子
ペア 1

表 4: ペア 1 の会話

このペアは，実験中に被験者 A が被験者 B に対して紙を用いて，プログラムについて説明する様子

話者

発話内容

被験者 A

char の配列。うーん、何だろう？なん見られた．プログラミングは，被験者 A が主導で進めでもいいや……、なんか ch とかでいており，被験者 B から途中「まったくわからない」といや。これは大きさは５個とかかな．

いう発言があり，プログラムの仕様が理解できていな

これを H と A と P と P と Y で初期化い様子だった．しかし，被験者 B はプログラミング終して。

了後に正解の解き方に近い方法について言及していた．

被験者 B

初期化？

つまずき発生中以外でも，被験者 A と被験者 B の発話

被験者 A

うん。=、その後、中括弧、中に h と量に偏りが発生していた．

a と p と p と y を、それぞれ char の形式で。

ペア 2

このペアは，被験者 D が主導でプログラミングを行っていた．実験中に被験者 D が被験者 C に対して紙を用いて，課題の解き方について説明する様子が被験者 B

char の形式？ん？

被験者 A

うん。何だっけ、シングルコーテーションつけながら。

見られた．途中，C 言語の文法についてインターネットで調べている様子が見られた．被験者 C は，被験者 D

うでないペアの特徴を表 4 や表 5 に示す会話内容から，の説明に対して，積極的に相槌を打っていた．つまず

ペア間のプログラミング知識が関係しているのではな

き発生中以外でも，被験者 C と被験者 D の発話量に偏いかと考える．発話量に偏りがあったペア 1 では，被りが発生していた．

験者 A が被験者 B よりもプログラミングの知識があり，コーディングを率先して誘導している様子が見られた．

ペア 3

このペアは，互いに意見を求め合いながらペアプログラミングを行っていた．例えば，被験者 E が課題の解き方について提案する前に，被験者 F に対して意見を求める発言をしていた．画面操作役になった被験者が，書いたプログラムについて自発的に説明している場面があった．
ペア 4

表 4 にあるように被験者 A が誘導する様子はあったが，被験者 B が意見を出してプログラミングを行う様子は見られなかった．一方，発話量に偏りがないペア 4 では，それぞれが方略の提案をしあっている様子が見られた．このことから，実際の演習授業ではコミュニケーションの問題を減らすために，ペアのプログラミングのこのペアは，互いに積極的に意見を出し合いながらペアプログラミングを行っていた．意見を求める発言がなくても，つまずきを解決するための方法について，意見を出していた．

知識に差がないように組む必要があることがわかった．
発話量の偏りとつまずき解決の関係

今回の実験では，つまずき発生中に極端に発話量に偏りが発生したつまずきが全 7 つのつまずきのうち 3 つあった．極端に発話量に偏りが発生したつまずきは，ペア 1 の文法知識

3.1.5 考察つまずき状況にの不足によるつまずきと，ペア 2 の方針の未決定のつあってもペア 3 やペア 4 のように発話量に偏りがないまずきと，文法知識の不足によるつまずきである．発

ペアと，ペア 1 やペア 2 のように発話量に偏りがある

話量の偏りが極端になったつまずきがあるペア 1 とペペアがいた．したがって，今回の実験では，発話量の偏ア 2 は，つまずき発生中以外にも発話量に偏りが発生りとつまずき発生の関係はみられなかった．発話量のしていた．そして，ペア 1 とペア 2 は出題した課題を偏りからつまずき状態を推定することは困難であるこ解決することに失敗していた．このことから，発話量とがわかった．に偏りがあるペアは，つまずきの解決に失敗しやすい

発話量の偏りとつまずき発生の関係

つまずき継続中に発話量に偏りがあるペアとないペペアであるとわかった．

アが発生していた．発話量の偏りが発生するペアとそ― 71 ―

また，今回の実験によってペア間のプログラミング
表 5: ペア 4 の会話
話者

発話内容

被験者 H

p が２番目ですよね？これ。

被験者 G

p が２やね。

被験者 Hということは、これが半分になります

知識の差が大きいと，発話量の偏りが大きくなることがわかった．一般的にペア学習のような協調学習では，発話量に偏りが少ない方がコミュニケーションがうまくいっているとされる．そこで，今後の実験やシステ
ムを導入する際には，学習者間のプログラミング知識ね。
被験者 Gの差が小さくなるように組むことが理想である．

半分になるね。で、もし、Pって、例えば、他のやつがいっぱいあったとし

参ても、P が３個やったら、HAPPY は文

献(1) Essi Lahtinen, Kirsti Ala-Mutka, Hannu-Matti jarvinen :１個しか作れへんやん。てことは、0.5

A study of the difﬁculties of novice programmers, ASMとかなったときには切り捨てていいや

SIGCSE Bulletin, vol.37(2005), pp.14–18

ん。
被験者 H考(2) 時任集平, 中野康人, 中村洋右, 佐永田千尋:¡実践研究報

うん。ただ、これは、array は int 型で

告¿プロジェクト学習においてラーニングアシスタント作ってるので、多分、無言で切り捨てに必要な能力に関する考察, 関西学院大学高等教育研究,られるんじゃないですかね。

vo.7(2017), pp.89–97(3) 市村哲, 梶並知記, 平野洋行: プログラミング演習授業

無言時間

ペアプログラミング中にペアが無言になる時間があった．特に，ペアのうちどちらかが 90 秒以上における学習状況把握支援の試み, 情報処理学会論文誌,

Vol. 54, No. 12(2013), pp. 2518—2527.

無言の状態だった時間は，出題してすぐの時間かつま(4) 井垣宏, 斎藤俊, 井上亮文, 中村亮太, 楠本真二: プログラ

ずき発生中の時間のみであった．このことから，ペアミング演習における進捗状況把握のためのコーディンが問題を読んでいると考えられる時間を除いて無言状

グ過程可視化システム C3PV の提案, 情報処理学会論文

態が続いていた場合，つまずきの状態にいるペアを検誌, Vol. 54, No. 1(2013), pp. 330—339.

(5) 吉野志保, 舟生日出男: 学生の自律的な協調学習活動に出できると考える．

基づく課題解決型 C プログラミング演習の実践, 教育シ4

ステム情報学会誌, vol. 30, No. 3(2013). pp.226–231.

おわりにペア学習時に適した学習状況把握支援システムの提(6) MacDowell, C., Werner, L., Bullock, H., and Fer-nald, J.:
The Effects of Pair-Programming on Per-formance in an

案を目指し，ペアでプログラミングを行った時の会話調査を行った．発話の形態素数による発話量の偏りの調査では，ペアごとの発話の差が大きく，発話量の偏Introductory Programming Course,ACM SIGCSE BULLETIN, Vol. 34(2002), pp. 38—42.
(7) 平井佑樹, 井上智雄: ペアプログラミング学習におけるりから学習者のつまずき状態の推定をすることが難し状態の推定 つまずきの解決の成功と失敗に見られる会

いことがわかった．よって，学習状況把握支援システム

話の違い, 情報処理学会論文誌, Vol. 53, No.1(2012), pp.

では，発話量からつまずき状態にあるペアを検出する

72-–80.

ことは難しい．

(8) 末田清子, 抱井尚子, 田崎勝也, 猿橋順子：コミュニケー

今後は，会話内容に注目し，会話内容から得られた情報を学習状況把握支援システムに活かすための試行をする．その第一歩として，プログラミング中の学習者の会話に同期的に生成系 AI によるトピックの割り当てを行い，その情報をメンターに表示することで学習状況把握に与える影響を測る予定である．その結果を踏まえて，会話情報から学習状況把握支援を行う方法を検討していく．
― 72 ―

ション研究法, ナカニシヤ出版, 2011. pp174–175