ゼミの紹介

主に学部4年生を対象としたゼミ

MLゼミ

目的

当研究室で研究開発を進めているSML#を使って様々なプログラムを作成することによって,関数型プログラミング言語の基礎を習得します.当ゼミでは,プログラミングの経験に関わらず,1から基礎を習得することを目的としております.よって,プログラミングの経験があまり無い方でも参加できます.

また,プログラミングに関する研究をしていく上で欠かすことのできないリテラシー(基本的なUNIXコマンドやemacsの使い方)を各学生が身につけることも当ゼミの目的です.

ゼミのスタイル

主な対象は学部の4年生です.外部(主に他大学や高専)から新たに配属される大学院生が参加することもあります.

最初は関数や基本的なデータ構造の使い方などの基本を身につけるために,本学1年生の創造工学研修のために用意された課題に取り組みます.各学生は,基本的なUNIXのコマンドやemacsの使い方を習得することを意識しながら(emacsでは基本的にはマウスを使わない等)これらの課題に取り組みます.

その後,より大きなプログラムを書く力とコンパイラに関する知識を身につけるために,簡単なインタプリタの実装に取り組みます.ゼミは週1回のペースで開催されます.各学生は自分が書いたプログラムをプロジェクタで写しながら説明し,理解の確認を行います.

ゼミで作る課題の例

  • 動的計画法(ナップサック問題)
  • 簡単なインタプリタの実装

ラムダゼミ

目的

このゼミでは,関数型プログラミング言語に関する研究を行う上で必要となるラムダ計算という計算体系について学びます.ラムダ計算に関するゼミは主に教科書*1に基づき進めていきます.また,論文*2を用いて型付きのラムダ計算や型システムについても勉強します.

当ゼミでは,これらの内容を基礎から習得することを目的としています.よって,専門的な予備知識は必要ありません.関連する学部の講義には,論理学,コンパイラ,オートマトン等があり,これらを履修していると学習がスムーズに行えますが,もちろん必須ではありません.

ゼミのスタイル

対象となる学生は主に学部の4年生です.外部(主に他大学や高専)から配属される大学院生が参加することもあります.

各学生は教科書や論文に基づく予習を行い,理解した内容を週1回開催されるゼミで報告します.報告は,各学生が理解した内容をホワイトボードに書きながら説明するスタイルで行います.

学部4年生のゼミ

目的

当ゼミは,学部4年生を対象としたゼミです.各学生が卒業研究として取り組む研究のテーマを決め,密度の高い研究に取り組んでもらうことが当ゼミの目的です.

ゼミのスタイル

当ゼミは学部4年生の後期から週1回のペースで開催されます.

卒業研究のテーマが決定するまで,各学生は自分が興味を持つ内容の論文を読み,その内容をまとめてゼミで発表します.テーマが決定したら,各学生はそのテーマに基づく卒業研究の進捗状況をゼミで報告します.その報告をもとに,指導教員から研究の進め方や論文の書き方などに関するアドバイスをもらうことで,スムーズに研究を進めることができます.報告のスタイルは,直接書いたコードをプロジェクタで写しながら説明する形式や,要点をホワイトボードにまとめる形式など学生によって様々です.

博士前期課程学生を対象としたゼミ

博士前期課程におけるゼミ

目的

当ゼミは,博士前期課程の学生を対象としています.各学生が取り組んでいる研究の進捗状況を確かめるとともに,外部発表にもつながるハイレベルな研究へと発展させることが当ゼミの目的です.

ゼミのスタイル

当ゼミは週1回のペースで開催されます.博士前期課程の1年生用と2年生用のゼミがそれぞれ設けられています.

主に各学生は,自分が取り組んでいる研究の進捗状況を報告し,スタッフから研究の進め方や方針についてアドバイスをもらいます.時には研究を進める上で必要となる知識を論文などを読んで習得し,その内容をまとめて報告することもあります.特に修士2年生は,修士論文の執筆も当ゼミで確認しながら進めていくことになります.

全員を対象としたゼミ

SML#ミーティング

目的

当研究室では,SML#の研究開発に取り組んでおります.SML#に最先端な機能を実装するためのプロジェクトが盛んに行われています.当ミーティングでは,SML#コンパイラの開発に興味を持つ者が集まり,プロジェクトの実現に向けたディスカッションや実際の開発に取り組みます.

ミーティングのスタイル

ミーティングの対象は主にスタッフと,SML#の開発に興味を持つ学生です.学生の参加は必須ではありません.主にスタッフを主体とし,プロジェクトの実現に向けた議論や開発作業に取り組みます.スタッフだけでなく,学生が開発の一部に携わることもあります.当ミーティングに参加することで,実際にSML#の最先端な研究に携わることができます.また,生のコンパイラのコードを見ることになるため,SML#コンパイラをより深く理解することができます.

輪読

目的

その時々でhotな話題や勉強してみたい内容が含まれた教科書や論文を読むことで,新たな知見を得ると同時に学術文献の読み方も学びます.

ゼミのスタイル

対象は当研究室に所属する全ての学生です.最初に,どんな文献を読むかを話し合いにて決定し,その後はその文献を全員で読みます.各学生に対して担当部分を割り当て,順番にその部分の内容をまとめて発表してもらいます.一方的に担当学生の発表を聞くだけでなく,随時質問などをしてディスカッションを行います.基本的には,英語の文献を読むため,英語の力を高めることにも繋がります.

最近取り上げたトピックの例

  • オペレーティングシステム
  • 頂点主体プログラミング
  • プログラムリファクタリング
  • セキュリティ

*1 計算論 計算可能性とラムダ計算(コンピュータサイエンス大学講座)高橋 正子 著 近代科学社 1991

*2 Tofte, Mads, Operational Semantics and Polymorphic Type Inference, 1988.