楽しく学べて興味が深まる
教材を開発

一般に大学で実用的なプログラミングを学ぶ際の演習問題は、プログラムの実行結果が文字で出力されます。でも、それでは面白くはありません。そこで、もっと楽しんで学べる教材を開発しています。例えば、学生の卒業研究として一緒に開発した「マイクロマウスシミュレータを用いた学習教材」は、マウス(または車)が迷路のゴールにたどり着けるようJavaScriptのソースコードを編集する教材です。「Cプログラムの誤り訂正問題」は、C言語の誤りを含んだプログラムが画面に表示され、自分で誤りを見つけてすべて正しく修正するという、実際のプログラミング場面に即した教材です。これらは私の研究室Webページで公開していますので、興味があれば試してみてください。

他には、プログラミング演習でプログラムを作成する際に、途中で行き詰まってしまった学生を支援するツールを開発中です。プログラムを最後まで書けない人は、何を質問していいかも分かっていないことが多いのですが、支援ツールが教えるのは正解ではなく、あくまでヒント。チャットボットをいち早く採用し、対話しながら自分で考えて答えを導き出せる力をつけられるツールを目指しています。プログラムの完成後ではなく、プログラムの編集途中で誤りや行き詰まりを発見して支援するツールは、あまり研究されておらず、それだけに意欲を持って取り組んでいます。

迷路をクリアするようプログラムを組む
JavaScriptの教材

南山大学で受け持った授業が
研究の動機に

コンピュータに興味を持ったのは中学生の頃で、まだ一般家庭に普及する前でした。将来はプログラムを作ってみたいと思い大学で学ぶうちに、プログラミングを楽にする開発支援がしたいと考え、研究者になりました。南山大学で受け持ったプログラミング演習で、途中で手が止まって進まない学生や、自分から質問するのが苦手なタイプの学生を目の当たりにしてきました。教員側もTAを含めて数名しかいないので、学生全員に対応しきれないことも多く、「教育支援ツールがあれば便利だな」という考えが次第に強くなりました。そして、当時はあまり研究者がいなかった現在の研究分野へと軸足を移しました。

研究の中には、教員を支援するツールの開発もあります。一つは、学生が授業で使うノートPCの情報から、「途中でプログラミングが滞っている」などの状況を判定し、教員に提示するもの。また、1人の学生にプログラム修正のヒントを出した後で、同じヒントを必要とする学生がいた場合に、自動でその学生のPCに表示するツールも開発中です。ただ、完成前のプログラムから、学生が分からない箇所をいかに正確に判定できるのかは、難しい問題です。どんな場合にどのような誤りが多いかを明らかにするため、オンライン上で公開されている、さまざまな人が作成したソースコードも活用して、データサイエンス学科でも学ぶ手法を使い解析しようとしています。

授業で学生を教える教員を支援することも
研究テーマの一つ

論理的に考えれば
本質を見極められる

プログラムは書いた通りにしか動きません。それだけに、どう考えてプログラムを書くかが重要です。最初に学ぶことは決して難しくはなく、「順次・選択(分岐)・繰返し」を組み合わせれば、うまく動くはずです。それでも学習を進めるうちにつまずくのは、どう分解し、どう組み合わせたらいいかを論理的に考えることができていないせいです。それができる力を身につけてもらいたいというのが、私の研究の目指すところです。根本を理解できれば、同じような問題が出てきたときに応用できます。しっかり習得して技術力を高め、よりよいソフトウェアを作るためにも、まずは楽しく学び、興味を持ってもらいたいと思っています。

プログラミングを学んで身につく論理的思考力は、ソフトウェアに限らず日常生活、例えば旅行の計画などでも活かせる力です。仕事や生活で何か問題が起きた場合でも、論理的に思考すれば、表面的に対処するのではなく、何が難しくてそれが起きたかを深く考え、問題の本質を把握したうえで解決することができるでしょう。ソフトウェアやプログラミングに興味があるみなさんには、学びを通じて論理的思考力を磨き、そうした本質を見極められる人になってほしいと思います。