研究テーマの設定を学生が主体的に行えるように,教員がサポートします.すなわち,まず本人に希望を出してもらい,それを基に面談しながら一緒に研究テーマを作り上げていく方針です.
新しいプログラミング言語
既存のプログラミング言語をより使いやすく拡張する研究や,特定の応用に特化したプログラミング言語を設計する研究などを行っています.例えば,使用される環境や状況に応じて実行されるプログラムのモジュール(部品)を自動的に切り替えられる文脈指向プログラミング,「時間変化する値」を保持する特殊な変数を通して,ロボットなど環境に応答するプログラムを簡潔に書けるリアクティブプログラミングなどの研究があります.
プログラミングの活動を支援するためのツール
新たなプログラミングの言語要素やパラダイムを採用することによって,それまで考えつかなかった,あるいは実現するのが困難だったプログラミング支援を可能にすることがあります.例えば,リアクティブプログラミングにおけるデバッグやリファクタリングのための支援に関する研究などがあります.
また別の観点から,今まで人が行ってきたプログラミングの活動のうち、コンピュータに任せられる部分はコンピュータに任せてしまうことができれば,プログラミングの作業はうんと捗ります.具体的には自動プログラム合成や自動プログラム修正などの研究に取り組んでいます.
新しい言語に基づくアプリケーション
新しいプログラミング言語を使用することによってソフトウェア開発がどのように変化するのかを調べるための事例に関する研究を行っています.例えばIoTやDigital Twinsなどの技術は,上述したリアクティブプログラミングとの相性が良いといえるでしょう.そうした事例を積み重ねていくことも,当研究室における大事な取り組みです.
過去の修士論文題目
- 分散永続時変値の精緻化に関する研究
- JavaScriptにおける永続シグナルの実現法の提案
- リアクティブプログラミングのためのGUIライブラリの提案
- 模範解答を用いた構造エラー箇所の指摘手法
- スマートフォンに向けた画面遷移プログラミング手法の提案
- パラメータ化されたSQL文の自動生成
- シグナルに基づくマイクロフロントエンドアプリケーションの実現法に関する研究
過去の卒業研究題目
- SignalJにおける集計計算の高速化
- 永続シグナルに対する時系列解析APIの提案
- 分散永続時変値におけるID自動登録機構の提案
- JavaScriptにおけるシグナルの実行効率の向上
- リアクティブプログラミングを用いた避難経路マップの実現
- ChatGPTを利用したプログラミング教育支援ツール
- DeepFixを用いたプログラムの自動修正の性能向上と教育現場での可能性
- 条件分岐の判定順序に誤りのあるコードに対する自動修正方法の提案
- ねらいに基づいたプログラミング教育のための支援手法の検証
- 入れ子構造を表現できる構文図式の実装と評価
- 実行されなかった文に着目したプログラム欠陥限局手法の実現
- リアクティブプログラミングにおけるコードの不吉な臭いの検出
- 永続シグナルを利用したUAV操作システム開発
- SignalJにおけるオブジェクトシグナルのpush型値伝播
- 永続時変値の分散化に向けた基盤システムの試作
- JavaScriptにおける永続時変値の実現法の提案
- オープンデータの活用を支援するプログラミング環境に向けたミドルウェアの試作
- 自動プログラム修正のためのスクリーニング処理に向けたソフトウェアメトリクスの提案
- 実行されない文に着目したプログラム欠陥限局手法の提案
- 模範解答を用いたコンパイルエラー出力法の高度化に関する研究
- Pythonにおけるオブジェクト列への集約リファクタリングの提案
- ビジュアル言語からテキスト型言語へのイベント処理の移行を支援する仕組みの提案
- デザインレシピに基づくプログラミング学習をガイドするシステムの提案
- プログラミング教育における模範解答を用いたコンパイルエラー出力法
- プログラミング学習のための入れ子構造を表現できる構文図式の提案
- クラス名における命名バグの検出手法
- 自動プログラム修正におけるスクリーニング手法に関する研究
- 全探索を用いたスケッチによるSQL文の自動生成
- TimescaleDBの分散データベース化に関する研究
- CMSと連携可能なCSSのライブ編集における編集結果保存方法の実現
- RxJavaを用いたObserverパターンの書き換え手法
- リアクティブプログラミングにおける実行履歴可視化手法の評価
- 3Dオブジェクトの滑らかな操作を実現するJavaScriptフレームワークの提案
- CMSと連携可能なCSSのライブ編集手法に向けて
- ねらいに基づいたプログラミング教育のための支援手法