SIGHCI184で「プログラミング教育円滑化のための抽象的思考記述システム」というタイトルで登壇発表を行いました(又吉康綱)

   

夏バテと戦いながら生き延びてる中村研M1の又吉です.

2019年7月22日,23日に北海道大学百年記念会館で行われた第184回 ヒューマンコンピュータインタラクション研究会にて登壇発表させて頂きました.

発表内容

プログラミングの講義では,達成目標にまつわる課題を提示し,その課題を解決できるようなプログラムを作成させることが一般的ですが,作成できずに挫折する初学者も多くいます.これは,初学者が課題の解決を焦るあまりプログラムの構造に関連する抽象的思考を意識せず(できず)場当たり的にプログラミングを行ってしまい,結果として理解につながらないこと.また,その悩んでいる内容を初学者と教育者の間で共有できていないことが原因であると考えられます.

我々はこうした問題を解決するため,ツリーエディタとプログラムエディタを連動させ,構造を意識させるようなソースコードとそれに対するコメントを同時に記述できるようにするとともに,ツリーの葉の位置を入れ替えるだけでプログラムの構造を試行錯誤可能にする手法を提案しました.まずは,デモ動画をご覧ください!

背景

2020年度より小学校のプログラミング教育が必修化されるなど,プログラミングを学ぶ機会が増えつつあります.また,人工知能ブームなどもあり既に情報系学部学科への入学者数が増えており大学のプログラミング教育の重要さは増しつつあります.しかし,問題点が大きく2つあります.

TAに多くの質問が集中し,捌ききれない

私が通う先端メディアサイエンス学科もそうなのですが,100人規模のプログラミングの授業では,教師が直接個人を教えることは不可能なため,大学院生などの Teaching Assistant (TA) が授業のサポートを行うことが多いです.TAは,学生が質問する度に学生のソースコードを読み,どこでつまずいているのか理解する必要があります.しかし,それは簡単なことではないためとても時間がかかりコストが高く大きな負担になっています.

学生のプログラミングへの挫折

ここで初学者は,あとさきを考えずにいきなりソースコードを書き始めることで,的外れなプログラムを記述することがあります.この状態でTAに質問をしても,具体的な質問ができず,TAも理解することができません.また,このプログラムをTAが見たところで,TAはどこから,どう教えたら良いのか困ってしまいます.このような学生は,応用問題が解けなくなり,プログラミングに対して苦手意識を感じてしまい挫折してしまいます.

大学におけるプログラミング教育のフロー

目的

本研究の目的は,プログラミング教育におけるTAと学生との指導における,相互に理解可能なコミュニケーション円滑化手法を実現することです.本手法により,下記のようなことが可能になると期待しています.

  • TAにとっては,「ソースコードを読解する時間と労力の削減
  • 学生にとっては,「つまずきの解決と減少 / TAから適切な指導

抽象的思考

プログラミングの上達で重要なことは,煩雑な処理を分解し,抽象化や一般化を行う思考を鍛えることであり,抽象的思考と呼ばれています.また,小学校のプログラミング教育においても,プログラミングする前段階の思考力として抽象的思考をプログラミング的思考と呼び,教育の柱としています.

本研究では,プログラムを記述する前に,頭の中で考えている抽象的思考を可視化することで,TAと学生のコミュニケーションを支援します.

提案手法

提案する手法は,ソースコード内の日本語コメント1つ1つをノードとし,入れ子関係を親子関係とするツリーで表現したコードツリーからなります.まず,コードツリーでどこで何をやりたいのかを表現し,そのコードツリーで問題がないかどうかをチェックすることで,学生が何を理解していないのかをTAは把握することが可能となります.また,コードツリーとソースコードが結びついているので,ノードを追加,入れ替えをするとソースコードも自動的に入れ替えることが可能で,双方からの編集や並び替えが簡単になる手法です.画像の赤枠同士が対応しています.

コードツリーとソースコードの対応関係

プロトタイプシステム

この手法を用いたプロトタイプシステムを実装しました.FMSでのプログラミングの授業で使われているProcessingを記述言語に採用し,Webで実装を行いました.画面は大きく4つに分かれており,左にコードツリー,真ん中にソースコードのエディタ,右に実行画面,下にコンソールを配置しました.

プロトタイプシステムスクリーンショット

実験

プロトタイプシステムで実験した所,TAと学生に関して

  • TA:コードツリーを見ることで質問意図の理解がしやすい
  • 学生:コードツリーを使うことで思考や記述の支援が可能

ということが明らかになりました.今後は,システムの制約を減少させたり,システムを用いた効率的な指導方法や使い方を調査していきたいと考えています.

発表スライドと,原稿は下記にありますので詳細をご覧になりたい方はこちらをどうぞ.

発表スライド

論文情報

感想

初夏の北海道最高でした.今年の2月に卒業旅行で札幌雪まつりで来た以来で短いスパンでの北海道でしたが,冬の極寒とは違って,過ごしやすい上に,大通り公園ではビアガーデンだらけ!!!で最高でした!!!

朝市に海鮮丼を食べに行ったりもして,存分に満喫しました.

 

 - news, research , , , , ,