本文へジャンプ

学科概要
  • HOME
  • 学科概要
  • 学生による学科紹介

学生による学科紹介

3年生冬学期

計算量理論 | 今井浩
必修科目
この授業ではまず問題の難しさというものを定義する方法について考えます。これはチューリング機械を用いてなされることになります。その後よく知られている問題を難しさに応じて分類したり、同じような難しさの問題をまとめたりということについて議論します。この過程で現実に出現する多くの問題はかなり難しい問題のクラスであるNP困難に属することが分かるので授業後半はこのような問題を現実的な時間内でできるだけ正確に扱う手法について扱います。この手法としては近似アルゴリズム、問題の緩和、条件の追加などが解説されます。この分野は特に解決されていない問題が多く、授業内でよくそのような問題の紹介がなされ、自分たちが研究の最先端に近いところを勉強していることを実感することができます。 離散数学と同様に板書を主に用いて授業は進められ、板書を理解しながら授業を受けることが推奨されています。授業は教科書に完全に沿って行われます。授業では定理などの証明は部分的にしかやらないので、理解が及ばない部分や、説明がうまく理解出来なかったところなどは教科書を参照することで解決することができます。また演習は情報科学演習で積むことで理解を深めることができます。
連続系アルゴリズム | 須田礼仁
必修科目
この講義では、実数などの連続的な量を用いた計算を計算機で行うための様々な手法について学びます。 有限の資源しか持たない計算機では完全に求めることのできない値があります。例えば実数は最も近い浮動小数点数に丸めて表現され、無限級数はある項までで打ち切られて計算されます。このように実数などの連続的な量を用いた計算を計算機で行うには、数値そのものを表現するにも近似が必要であり、また計算を行うにも近似が必要になる場合があります。この講義では様々な近似計算アルゴリズムが紹介され、近似の精度や、計算にかかる時間やメモリ消費などのコストなどについても議論されます。 毎回の講義で出される課題では、アルゴリズムの一部の手計算や、誤差の見積もりやアルゴリズムの正しさに関する証明を行ったり、Newton法や数値積分といったアルゴリズムの実装を行ったりします。また付随する演習でも、非線形方程式の解の収束の加速やLU分解など、講義で紹介される多くのアルゴリズムを実装することになるので、アルゴリズムの理論的な裏付けだけでなく実際に解が求まる様子も理解することができます。
言語モデル論 | 小林直樹
必修科目
この講義ではプログラミング言語に関わる理論を学びます。 講義の前半では、プログラムはある規則に基づいて構成された文字列である、という発想からスタートし、文字列にプログラムとしての意味を与える手法について学びます。この手法は、プログラムの構文を抽象的に定義すること、それぞれの構文に意味を与えること、という2段階に分けられます。具体的な意味の与え方にはいくつかの方法があり、それぞれがインタプリタの設計やプログラム検証などの応用と関わりを持っています。 後半ではラムダ計算という計算体系を通じて、文字列による計算の表現について学びます。ラムダ計算では定数、関数、関数適用という3つの構文によって式が構成され、式の値を計算することは文字列の簡約によって表現されます。単純な構文ですが、真偽値や自然数などのデータ構造、再帰計算なども表現することができ、ラムダ計算は関数型プログラミングの理論的基礎にもなっています。また計算の一種の安全性を事前に保証する型システムについても学びます。 この講義によって、不動点演算子の実装や型推論つきインタプリタの実装など、情報科学基礎実験や関数型プログラミング実験で実装したさまざまなプログラムに対して理論的な説明が与えられ、仕様を満たすようにと四苦八苦して行ったプログラムの設計も理論的にすっきり理解することができるようになります。
知能システム論 | 相澤彰子
必修科目
本講義は、無機的な計算機に有機的な知能の概念を導入して、探索問題の効率化や、学習や推論など抽象度の高い解析を可及的高精度で行う知能システム全般の手法の知識獲得をめざすものである。履修者は初回講義で「人工知能とは何か?」という最も単純にして最も深遠な問いかけを受け、情報科学科の講義始まって以来の哲学的思考の淵に彷徨うこととなる。この問いに対しては通説となっている複数の定義が存在するが、詳しくはぜひ受講してお考えいただきたい。他にもこの講義では「知能」の測定法のチューリングテストや、その正当性への反論としての「中国語の部屋」の思考実験、そして探索アルゴリズムの汎用性の限界を示す「No Free Lunch Theorem (タダ飯はねえぞ定理)」など、情報科学らしからぬキテレツな話が度々登場して興味をそそられる。ただ当然ほとんどの時間は種々の具体的アルゴリズムについての学習なので完全理系脳の方もご安心を。前半は国立情報学研究所の相澤先生による多様な探索手法と命題論理についての解説、後半は同研究所の宮尾先生による種々の機械学習・推論と自然言語解析アルゴリズムについての解説となる。相澤先生の講義は比較的のんびりと進行するのに対し、宮尾先生は平木先生並のスピード講義となる傾向があるので、腱鞘炎にならないように注意しよう。
コンピュータネットワーク | 関谷勇司
必修科目
本講義は、今や社会基盤の一つへと急伸したインターネットを形成している技術の深い理解を目標とし、物理層からアプリケーション層まで、抽象具象を問わずネットワークを構成・保守するための幅広い見識を兼ね備えたマルチな人材の育成をめざしている。現在のインターネット環境で用いられるTCP/IPを主題とし、その構成概念から、輻輳制御などの具体的なアルゴリズムまで網羅的な解説がなされる。また構成技術のみならず、現在のインターネットが本質的に抱える脆弱性とそれにつけこんだ典型的な攻撃手法と対策、さらにはクラウドコンピューティングなどの比較的新しい概念にまでも説明が行き届いており、コンピュータネットワークに関する多角的な知識を存分に身につけることができるだろう。講義担当の関谷先生による伊集院光似の雄弁な解説は非常に分かりやすいと学生からも評判である。我々の学期 (平成25年度) ではCisco SystemsからゲストスピーカーのGregg Schudel氏を招聘してくださったりもした (ただ、ほとんどの学生が英語が理解できなかった模様)。