情報科学科 野口 靖浩准教授
研究概要
本研究室の研究内容は,知的教育システムに関する研究,プログラミング学習やソフトウェア設計の学習支援に関する研究,同教師支援・学習活動の分析に関する研究,第二言語学習支援に関する研究を主に考えています.
学校教育の場に加えて,社会人向けの講座なども,重要な研究対象であり研究実践の場であると考えています.
プログラミング演習の学習者の活動の観測と分析に関する研究
初期のプログラミング学習がマンツーマンで行われることは稀で,少数の教師と多数の学習者の環境で行われることがほとんどです.その場合,教師からすると,誰がどのような内容で困っていて演習がうまく進んでいないのか,を把握できることが,直接的なサポートを行う上で非常に重要です.また,全体を通して,どの学習項目については理解が進んでいて,どの学習項目について理解が進んでいないかを把握することが,演習を適切にハンドリングすることや学習コンテンツを改善することに繋がります.
この研究では,学習者それぞれの演習状況を観測・収集し,困難に陥っているかどうか,困難に落っているとすれば,それがどのような箇所でどのような内容なのか,それは何を理解していないことに起因するのか,などを自動的に分析し,教師に提供する仕組みを提案しようとしています.

クラス図の自然言語化に基づくレビュー支援に関する研究
システム開発の場ではシステムの内部構造の把握と開発者間での設計共有の重要性が高まっており,UML等の設計記述言語でモデルを記述することや,記述されたモデルを読むことも増えています.クラス図を用いた設計の学習方法のひとつとして,与えられた要求仕様に基づいて考案したモデルをクラス図で記述し,それを相互レビューすることで学習する方法があります.しかし,初学者にとってはクラス図で記述されたモデルを読み取り,仕様と照らし合わせて誤りや設計漏れを発見することは簡単ではありません.また,クラス設計は解がひとつに定まらないため,互いの指摘の妥当性を初学者同士で判断することも難しい場合があります.また,初学者がこうしたい思っている設計が,そのとおりにクラス図に表現できているとは限りません.そこで,この研究では,学習者が記述したクラス図を自然言語に置き換えてフィードバックすることで,学習者の頭の中にある「こういう風な設計にしたい」という考えと,実際にクラス図に表現された内容,要求仕様で求められている事柄を自然言語で突き合わせて比較し,自己レビューできる仕組みを提供しようとしています.

テスト容易性に基づくプログラム設計分析・改善支援に関する研究
自分が記述したプログラムのモジュール構造について,それが良い設計なのかそうでないのか,また,良くないとすれば何が問題なのか,を理解し,改善することは重要です.しかし,普通のプログラミングの演習とは違い,設計の良し悪しは,作ったコードを動かした結果を見てみる,といった方法では判断できません.我々は,プログラミング自体の演習に比べて,設計の演習が難しい原因のひとつは,(学習者サイドで自律的に得られる)演習成果の良し悪しに対するフィードバックが少ないことに原因のひとつがあると考えています.そこで,本研究では,ソフトウェアモジュールのテスト容易性という観点に着目して,テスト「される側」のモジュールが,自動テストを実現できる設計要素を満たしているかを基準に,学習者にフィードバックを返す仕組みを提案しています.

演習課題の分析~改善を行えるWebシステムを作成し,分析~改善のステップを詳細に分解して,各ステップの学習者の選択からフィードバックを自動的に提供しています.また,自動テスト可能な設計への改善にはオブジェクト指向設計のアイデアを活用する必要があり,オブジェクト指向設計・実装への理解促進の貢献も視野に入れています.

本研究の成果としてプロトタイプシステムと学習コンテンツを公開しております.
現在利用できる学習コンテンツは,C言語のテスト容易性設計学習用コンテンツと,Java言語のテスト容易性設計学習用コンテンツ並びにモックを活用した設計改善学習用コンテンツです.
視点の異なる対象世界間の関係に基づくプログラミング学習支援システムに関する研究
プログラミングの初心者によくある問題として,あるアルゴリズムの概念的な説明は理解できていても,プログラムに実装しようとすると行き詰まってしまう場合があります.多くの学習者は何度も試行錯誤する中でプログラミングできるようになっていきますが,それはなぜでしょうか? もう少し明示的に概念レベル理解と実装レベルの理解を結びつけて明示的に学習する方法はないでしょうか?
本研究では,プログラミング学習者自身が開発しているプログラムの機能・構造・振る舞いを熟練プログラマの視点に基いてリアルタイムに可視化することでプログラミング学習を支援するシステムを実現します.また,熟練したプログラマ(プログラミングできる人)は,開発状況や障害に応じて注目する範囲や抽象度を切り替えて開発対象を分析することができますが,プログラミング初心者はこれができないため演習の段階で躓いてしまうことが多いため,適宜アシストする必要もあります.プログラミングを学習する段階で躓いて諦めてしまう人を 0 にするために研究を進めています.

野口 靖浩准教授
専門分野
知的学習支援システム(Intelligent Tutoring System)・プログラミング学習支援システム・学習データ分析(Learning Analytics)
主な担当科目
ソフトウェア設計技術, 情報科学実験A, コンピュータネットワーク, ネットワークプログラミング, 応用プログラミング