top of page
DSC01672.JPG

授業紹介

このページでは、知能情報システム工学科の授業について紹介します。一番下に大学公式の教員インタビューへのリンクも掲載しているので、あわせてご覧ください。

一年生で学ぶ科目

​線形代数学Ⅰ・Ⅱ

工学の諸分野における様々な現象を記述し解析する上で、線形代数学で学習する内容は必須のものとなっています。線形代数学で学ぶベクトル空間、線形写像、一次独立性などの概念を扱う際の計算の基礎となるのが行列とその基本変形です。行列とは、いくつかの数を縦横に並べたもので、行列とそれに関する種々の計算法を習得するのがこの講義の最初の目標です。具体的な行列の計算を通して、その背後にある『線形性』という基本的な考え方を身に着けます。 さらに、 平面や空間を一般化したベクトル空間と、ベクトル空間の間の線形写像を定義し、線形写像を行列を用いて表示することによりその性質を調べる方法を学びます。とくに、ベクトルの一次独立性、および、ベクトル空間の基底や次元、線形写像の像と核などの基本的な事項と計算法を学び、さらに、固有値と固有ベクトル、線形変換の対角化、内積空間などの概念と手法を習得することにより、線形代数学への理解を深めます。

微分積分学Ⅰ・Ⅱおよび演習

1変数関数の微分積分とその応用を学びます。微分積分学は自然現象や社会現象などの変化を数式で記述し、解析する学問です。統計学、物理学、化学、工学などに広く利用されています。高校で学んだ微分積分の考え方を発展させていきます。極限の考え方を理解し、高度な計算力を身につけるのが目標です。 まず実数の性質の中で連続性が微分積分の基本になっていることを説明します。微分は関数の変化を記述し解析する道具です。極限の考え方から出発して微分を定義し、その計算法を習得します。その過程で三角関数、逆三角関数、指数関数、対数関数などの関数の性質も学びます。 積分については、微分と積分はたがいに逆演算であるという微分積分学の基本定理を説明し、不定積分、定積分の計算法を学び、その応用として図形の面積や曲線の長さなどの意味と計算法を習得します。 さらに、多変数関数の微分積分に関する諸概念を理解し、習得します。また、演習をとおして確実な計算力を身につけることを目標とします。高等学校では扱われなかった概念が多く出てくるので、はじめはやや難しく感じられるかもしれません。しかし、多変数関数を用いることで多くの自然現象を記述することが可能となります。 講義では2変数関数を主に扱います。 2変数関数は一般に曲面を表していて、視覚的にも捉えやすい対象です。まず2変数以上の関数について偏微分を学び、応用として関数の極値の判定法について学びます。次に2重積分や3重積分を学び、応用として図形の体積を計算します。平面上の線積分についても定義し、最後に無限級数について学習します。とくに多変数の微分積分学では、その概念を図形的に理解することが重要となるので、できるだけ図形を描いて直感的に理解できるよう演習を行います。

幾何学

自然界にある物理量の多くは大きさと方向を持っています。例えば風は強さと方向があります。水の流れもそうです。これらの量はベクトル量と言います。これらのベクトル量は工学の世界でもしばしば現れます。では、これらを数学的にどのように扱うのでしょうか?本講義では、ベクトル量の数学的な取り扱いを中心に学びます。 例えば、川の流れがあり、岸に近いところは流れが緩く、川の中心部では流れが速いとします。この川の中に水車を入れると、水車が回転することは想像できるでしょう。ですが、どのように回転するかを、数学的に調べれるにはどのようにすればよいでしょうか? また、山の高さは大きさだけで、方向を持たない量です。この量のことをスカラー量と言います。ですが、山の傾きはベクトル量です。地図に記された山の等高線から傾きを想像することはできますが、数学的に調べれるにはどのようにすればよいでしょうか? これらは、本講義で扱う一例ですが、本講義ではベクトル量の数学的な取り扱いについて学びます。

微分方程式

微分方程式では、我々の身の周りで生じている様々な現象を数学的に取り扱うための最も基礎的な考え方を勉強します。 一つの現象を説明するためには、まず、基礎とする変数 x (時間とか場所など)を定め、それに対応する x の関数と呼ばれる量 y = f(x) を考えます。これは、物理学や工学ばかりでなく、理科系の学問分野に共通の考え方です。 このときに重要なのは、y の値のみに注目するのではなく、y の x に関する“変化率”を注意深く取り扱うことです。この変化率 dy/dx によって、ある瞬間の変化の様子から未来の振る舞いを予測し、次に発生する可能性の高い事象を推論することができます。 現在では微分方程式の考え方を用いて人工知能が予測や推論を行い、実際に囲碁や将棋では人間を上回る能力を示しています。物理や工学のみならず、経済学や医学などの分野にも微分方程式の考え方が広がり、我々の社会が成り立っています。

コンピュータ基礎

コンピュータが二進数(0と1)で数値を表現していることを知っている人は多いと思いますが、その中がどんな構造になっていて、どうやって計算しているか知っていますか? 実は、コンピュータの中では数値だけでなく文字も二進数で表現します。真か偽かも二進数で表現します。プログラムや画像、動画など、コンピュータ上のすべてのものが二進数です。なんだか不思議ですね。 本授業の目的は、情報工学の専門家にとって必須となるコンピュータの基本構造や動作に関する基本的な知識を身につけることにあります。みなさんの身の回りのコンピュータがどのような構造でどのように動作しているかを紐解きます。 具体的には、この授業ではコンピュータ内での数やデータの表現と計算方法、コンピュータの基本構成やプログラムの動作原理、オペレーティングシステム、プログラミング言語やネットワーク通信など、コンピュータの動作に関する基礎を体系的に学びます。

プログラミングI・Ⅱ

いまやコンピュータはパソコンやスマートフォンだけでなく、電動歯ブラシやイヤホン、車や家、工場などあらゆるところに浸透しています。コンピュータに計算や処理をさせて問題を解く指示をプログラム、プログラムを設計して記述することをプログラミング、プログラムを記述するのに用いる言語をプログラミング言語と呼びますが、どんなに性能が良いコンピュータがあっても、正しいプログラムがないと期待通りの動きをしてくれません。また、プログラムの設計によっては、処理が遅くて使い物にならないことや、後々、修正や拡張がしにくいものになってしまうことがあります。 この授業では、現在、もっとも多く用いられており適用領域が広いプログラミング言語の一つであるC言語を用いて、読み手に分かりやすく、修正や拡張が容易な良いプログラムを書く姿勢を修得することを目指します。データ型、入出力、代入、繰返し、判定、配列、関数、ポインタ、データ構造など、プログラムを構成する様々な要素について学びますが、相性占いや円周率の計算、迷路探索など身近な題材を取り上げて、これらの要素の使い方をその背景も含めて理解できるようにします。そうすることで、ほかのプログラミング言語の習得が容易になったり、様々な場面で問題を効率的に解く手順を考える力を身につけられたりするでしょう。 さらに、基本的なC言語プログラムを実装・実行し、他人が書いた比較的短いプログラムを読んで使えるようになることを目指します。講義内容としては、C言語におけるエラーと型変換、ファイル処理と文字列処理、関数とプログラム構造、ポインタと配列、構造体などC言語に関する全域的な基礎知識を広く学びます。また、リスト構造や二分木など、データ構造の基礎についても学びます。 講義に際しては、座学での知識の教授とミニ演習ならびに定期試験により、C言語に関する知識と理解をより確実なものにします。 C言語をしっかりマスターすることで、他のプログラミング言語を学ぶ際に役に立ちます。プログラミング言語を理解し、使いこなすには、知識を詰め込むだけでなく、ソースコードを読み、実際に書いてみることが近道です。本講義で学ぶプログラミングをもとに、より発展的なプログラミング技術を身につけられることでしょう。

プログラミングⅠ・Ⅱ演習

現在の社会はコンピュータ無しでは考えられないくらい、コンピュータは社会の隅々まで浸透しました。コンピュータに希望通りの仕事をしてもらうためには、どうすれば良いのでしょう? プログラミング言語は、希望通りの動作をコンピュータにさせるための道具です。これまで、たくさんのプログラミング言語が誕生しました。現在使われていないものも含めると数百にもなります。その中で、C言語は、知能情報システム工学の初めに学ぶのにふさわしい言語です。 このプログラミングⅠ演習では、プログラミング言語Cを使い、プログラミングの世界に慣れ親しみます。また、コンパイラ・開発環境等の基本的な使い方についても習得します。具体的には、プログラムの作成から実行までの作業手順を習得することから始め、処理の実行・制御を行う各種構文を実習を通して身につけます。 演習では、プログラミングIの講義とも連携しつつ、毎回、テーマに沿った演習課題について、説明し、プログラムを作成します。3つのクラスに分かれた少人数制の授業により、プログラムの初心者でも無理なく学べるように工夫をしています。 本授業と並行して開講される「プログラミングⅡ」では、C言語に関する広汎な基礎知識を座学形式で学習します。これに対して「プログラミングⅡ演習」では、現実の問題を通じて、座学だけでは身につきにくい概念、設計スキルやプログラミング能力を習得します。本授業の到達目標としては次の3つです。 1つ目に、課題を達成するためのアルゴリズムを設計できることです。アルゴリズムとは、ソートや探索など、目的を達成するための手順を定式化したものです。一般に同じ目的を実現するためのアルゴリズムは複数あるため、それぞれの長所と短所を考察し、より良いアルゴリズムの設計を目指します。 2つ目に、C言語を用いてアルゴリズムを実装できることです。C言語はメモリ操作など、ハードウェアを直接操作できるため、汎用性が非常に高い言語です。常にメモリを意識してプログラミングする必要があり、ハードウェアの理解にも役に立ちます。 3つ目に、C言語プログラムについて、テスト・デバッグ・修正ができることです。プログラムにはバグがつきものです。本演習で出題される課題の実装に取り組み、問題のある箇所の発見と修正を繰り返し経験することで、自ら問題を発見する目を養います。

論理回路

0と1のみで構成される数学にブール代数があります。ブール代数では「1+1=1」となります。これは1が「真」、0が「偽」を指し、「+」が「または」を意味するためです。 たとえば命題Aを「身長が100cm以上である。」、命題Bを「8歳以上である。」とすると、論理和A+Bの真偽は、AまたはBのいずれかが真なら真となります(OR演算)。一方、論理積A・Bの真偽は、AとBがともに真のときのみとなります(AND演算)。テーマパークでジェットコースターに1人で乗れる条件はどのように定められているでしょうか。 NOT、AND、OR演算を基本回路とし、これらを組合せることで、より複雑な回路を合成することができます。さらに真偽を一時的に保持できる記憶回路を組合せることで、任意の論理回路を構成できます。 コンピュータは論理回路で実現されています。論理回路の講義では、論理演算の数理的な特性や論理回路の合成・解析に関する技術を学び、将来、電子回路やプログラムを思い通りに設計するために必要な基礎知識を身に付けます。

基礎電気回路

日々、何気なく使っているコンセント。ここには、商用電源と呼ばれる交流電圧が供給されていて、皆さんの生活をより快適にしてくれています。ドライヤーを差し込めば皆さんの髪の毛を早く乾かすことができますし、お母さんが作ってくれる食事だって、コンセントがなければ、その準備はものすごく大変なものになってしまうでしょう。 この講義では、皆さんがつなぐドライヤー、や、電車を動かすモーター、そして、照明として使われる電灯、などについて、エネルギーの受け渡し、という観点で、電気回路について学んでいきます。 一方で、直流を使う代表例が、スマホやパソコンの充電や、環境にやさしいLED電球。これらにどうやったら、商用電源と呼ばれる交流からエネルギーを供給することができるのか、といった身近な問題から、解説していきます。

基礎回路演習

音を聞くことや物を見ること等の人間の感覚は、アナログ信号で認識しています。しかしながら、アナログ信号は非常にノイズ(外乱)に弱く、その信号はすぐ劣化してしまうという欠点があります。一方、コンピュータ等の内部では、信号の正確な処理を行うためデジタル信号が使用されています。このように、人間と電子機器との関わり合いにおいては、アナログ信号とデジタル信号の両方が非常に重要になります。 皆さんの身の回りには、テレビや冷蔵庫などの家電や、パソコン、スマートフォンなどの情報通信機器など、多数の電子機器が存在します。これらの電子機器には計算を司るデジタル回路が内臓されていて高度な計算処理を行っていますが、それだけでなく、ダイオード、抵抗、コンデンサ、コイルなどの素子で構成されるアナログ回路も含まれています。 基礎回路演習では、これらの電子機器に含まれる基礎的なアナログおよびデジタル回路について学習します。具体的には、回路に信号を入力したときにどのような出力応答が得られるかについて、実際に回路を組んだりシミュレーションツールを使った実験により出力応答を求め、理論解析で求まる応答と比較して理解します。 この授業の目的は、身近な電子機器に含まれる回路を理解し、理解を深めることです。これにより、将来、複雑な電子回路を自ら設計することが可能になります。

知能情報システム工学概論

知能情報システム工学科では、超スマート社会を支える高度IT技術者・研究者の養成を目指しており、そのためには、情報工学及び電気電子工学における様々な分野の基礎を身につけることが必要となります。 そこで、本講義では、計算機システム、数理、知能、情報メディア、信号処理、通信、制御、デバイス等に分かれた各分野の担当教員から、それぞれの専門の立場にたって、知能情報システム工学に関する概要のみならず、各教員の専門に関連した内容を紹介してもらいます。 これにより、1年生のうちから知能情報システム工学の全体の外観を把握し、各自が進もうとする目標を定めたり、どのような基礎的な科目を履修すべきかなどを検討する材料とすることができます。また、各研究分野を牽引する専門家である各教員による最先端の研究に関連した話は、学生の皆さんの刺激となり、より積極的、自主的に勉強に取り組むためのモチベーションとなります。

二年生で学ぶ科目

線形システム

線形システムは回路理論・制御工学・信号処理などの基礎となる学問であり、その考え方は数学(微積分学、線形代数学、関数論等)をベースにしています。つまり、数学と工学を結びつけるツールでもあります。 本講義の目的は、工学を学ぶ際に重要となる複素数やその関数の取扱い、周波数の概念、およびシステムを解析するために必要となる線形システム(特にフーリエ変換やラプラス変換)の理論を身につけることです。 フーリエ変換やラプラス変換は、信号やデータ、つまり情報を「周波数」という観点から見つめることです。あらゆるデータは様々な振幅や周波数を持つ波の重ね合わせで表現することができます。線形システムでは、「信号やデータにどのような周波数がどれくらい含まれているか」を明らかにする方法を学びます。 これによって、信号やデータを加工(=処理)するための基礎を与える事ができます。古くは電気回路や電子回路、最近では音声認識やAIの処理系の基礎となる理論がまさに線形システムです。また、この考え方は表現方法を変えることでそのデータに含まれる(そのままでは隠れている)特徴を見つけだすデータサイエンスの基礎でもあります。今の情報化社会はフーリエ変換なしには存在できません。

情報理論

現在のコンピュータでは情報をデジタル(具体的には0と1の組み合わせ)で表現します。そのため、例えば英文字の情報を送るには、各アルファベットを0と1の系列に変換する必要があります。このとき、どのように変換を行ったら正確かつ効率的にデータを送れるでしょうか? 情報理論とは、効率的にデータを保存する仕組みや、誤りが少なく信頼性の高い通信の仕組みなど、情報通信システムを構築する際に必要な基本原理に関する学問です。 携帯電話やインターネットなどの情報通信のみならず、信号処理・統計・物理など、今日では私たちが日常的に利用している様々な技術が情報理論の上に成り立っています。 本授業の目的は、情報を変換する「符号化」の概念と基本的な符号化方法を学んだ上で、その性能の限界を与える重要な定理とその意義について理解することです。

数理統計学

世の中には誰がどのように言い始めたのか定かでない説が流布しています。1) 血液型A型の人は几帳面、2) 女性は地図を読むのが苦手、3) 筋トレで身長が伸びづらくなる、など一つでも耳にしたことがある人が多数なのではないでしょうか (もしかしたら遠い昔の廃れた噂になっていることもあるかもしれません…)。 それでは質問です。上記1) – 3)のうち、妥当なものはどれでしょうか?すべて妥当ではないとされている、が正解です(意地の悪い質問でしたね)。もちろん上記のことも日常会話で適当に口にする程度では問題はありませんが、みなさんが大学、大学院を卒業された後には上記1) – 3)を可能な限り正確に妥当でないことを示せるだけの能力を備える必要があります。 統計学は、可能な限り少数の仮定に基づき、得られたデータから最大限妥当な議論を行うための学問です。数学のツール、特には確率のツールを利用して、実用的なことに言及する学問です。本講義では数理統計学と名のつく通り、統計学の内容に加えて、一般的な統計学で学ぶ事柄の数学的背景も同時に学びます。 統計学を利用することで、上記1)-3)のような、妥当性が定かでない説を検証することが可能となります。統計学は純粋理論を除きほぼ全ての理学・工学において理解を深めるために必要不可欠なツールとなっています。

基礎情報数学

皆さんは、中学・高校で多くの時間をかけて数学を学んでこられたと思います。大学1~2年生でも数学の授業があります。しかし、ほとんどの方は「与えられた問題を解くこと」「試験で良い点を取ること」を目指した勉強を中心に、取り組んでこられたのではないでしょうか? 数学は、知能情報システム工学をはじめとする理工系の学問において、基本的な道具として必須のものです。また、社会や日常生活のさまざまな問題を解決する手段として、数学が役に立つ場面はたくさんあります。しかし現実には、卒業研究、大学院での研究、就職後の仕事において、習ったはずの基礎的な数学でさえ、応用できないケースが数多く見受けられます。 基礎情報工学の授業では、高校~大学1年で学んだ数学が、世の中の様々な問題にどのように応用できるかを、実例と演習を通して学びます。数学の授業や試験の問題は、条件が明確に与えられ、正解が唯一であるものが大半です。一方、現実世界の問題はそうではなく、条件や設定が不十分で正解が定まらないものがほとんどです。その中で妥当な解を求めることが要求されます。そのための考え方として、概算や近似の方法を習得することも、この授業では重視しています。

離散数学

情報工学において自分のアイディアを他の人に伝えるためには、数学の言葉を使って表現する必要があります。離散数学の講義では情報工学の専門家のコミュニケーションにおいて必要な数学的素養を身につけることを目標にしています。 具体的には、現代数学で必須の集合論の基礎から始まり、「同値関係」や「順序関係」と呼ばれる「等号」や「不等号」の一般概念を学びます。さらに、群・環・体といった代数学の基礎を扱います。特に、デジタルデータを処理する際に有効な、有限体について勉強します。 数学が情報工学で応用されている例として、公開鍵暗号の基礎や誤り訂正符号の基礎についても扱います。現代の情報技術の背後にいかに数学が役立っているか、実感できるでしょう。

信号処理論

スマートフォンを例に取りましょう。通話をするために発した声は、通話相手に届きます。ストリーミングで音楽を聽いたり動画を見たりします。写真を撮ったらインスタに上げたり、LINEで友達に送ります。これらのデータはすべて電波としてやり取りされています。 これらの処理をスマートフォン(実は中身はコンピュータ)は一瞬でしているわけですが、基本は本講義「信号処理論」で学ぶディジタル信号処理と呼ばれる技術です。音や画像は一度ディジタル信号にすることで、ソフトウェア的に処理が可能になります。雑音や騒音を消したり、データを圧縮して保存・伝送しやすくします。 また最近では、ディジタル信号処理と機械学習を組み合わせることで、対話型のサービス(iPhoneのSiriなど)や自動翻訳、また顔認識などの人工知能技術に応用されるようになっています。

電磁気学Ⅰ・Ⅱ

電界と電気力線や磁界と磁力線などについては高校の物理で学んで、性質についてもある程度習熟していると思われます。知能情報システム工学科の電磁気学では、1年次で学習した数学や力学の知識を使って、高校で習った物語風の電磁気を精密科学として再教育することが目的であり、本講義は静止した電荷による電界の性質を学びます。また、工学部の電磁気学教育であることを意識して、現象を面白がるだけではなく、電界の計算や電磁気学の基本原理がどのように生活に生かされているかについても説明します。なぜ樹木に落雷し易いかや、車の中にいると安全な理由、さらには電気関連技術者にとって重要なシールとアースについてなどと関連する学問です。また、コンデンサマイクロフォンの原理とMEMSと呼ばれる電気と機械との融合技術にも電磁界学の知識が生かされています。 物理と数学が得意であったはずの学生でも電磁気学には手こずるかもしれません。物体の落下や慣性の法則などは日常的に経験できるが、電磁気学が対象とする電荷や電流は‘目に見えない’ために戸惑うことも多いことでしょう。‘場の概念’にいたっては日常の世界とかけ離れた概念と言えます。電磁気学Ⅰでは、演習と講義をバランスよく融合して、数式の‘食わず嫌い’を抑えると共にイメージ形成の困難さも解消するような講義を心がけています。 電磁気学Ⅱでは、我々の生活で重要な発電や電波の基礎について学びます。例えば磁石は鉄などを引き寄せます。一方、電流も鉄などを引き寄せます。すなわち電流が流れると磁石と同じ効果を発生します。これらは磁気的な力が作用しているといいます。本講義では、どのように電流が流れると、どのような磁界が生じるかを学びます。また、この磁気的な作用を応用することで、モータを作ったり、逆に発電機を作製することもできます。モータは電気のエネルギーを物理的なエネルギーに変換することが出来ます。 また、磁気的作用を学ぶことで電波を理解することもできます。電波の専門的な内容は3年生で学びますが、本講義ではこれらの基礎を学びます。 これらは電磁気学といいますが、本講義では電磁気学の中でも、電流がもたらす磁気作用や、発電、電波について学びます。

基礎電子回路

早く、思う存分、カラオケを楽しみたいな~。もしかしたらこれを読んでいる皆さんは今、受験勉強から解放されたい一心で、必死に勉強している時期かもしれません。この授業(基礎電子回路)では、そんな皆さんが無事大学生になった際、その希望を叶えるべく、カラオケの機構を解説します。 といっても、点数を上げるための歌い方、を教授するわけではありません。マイクを持って歌を歌えば、うまい人はうまく、そうでない人はそれなりの、それぞれの大きな音が、スピーカーから聞こえてきます。そんなのあたりまえ、と思いますが、実はここには、数多くの電子機器、中でもトランジスタという重要な電子部品が介在しています。 実はトランジスタは、カラオケだけにとどまらず、皆さんが持っているスマホやパソコン内に、それこそ星の数ほど組み込まれていて、皆さんが、画面やキーボードで操作するたびに、電気の力で一所懸命働いているのです。 これなしではこの世界が成り立たないくらい普及したトランジスタ、その動作機構を、本授業で理解できるようになります。

電子デバイス

現在の我々の生活にはコンピュータやスマートフォンが欠かせません。それらの中身がどのようなもので出来ているか、どのような原理で動作しているか、知っていますか? 自然界には、金属と絶縁体の中間の電気的性質を持つ半導体と呼ばれる物質が存在します。この半導体で一番有名なものがシリコン(Si)です。Siをウェハという薄い円板状に加工し、その表面にトランジスタや抵抗、コンデンサなどを配置し微細な配線で接続しながら、様々な機能を実現する電子回路を形成します。この電子回路が集積されたものを集積回路(IC)と呼びます。 現在のICで用いられるトランジスタでは、その特徴的な寸法がナノメートル(nm, 10-9メートル)であり、非常に小さいサイズです。サイズが小さくなればICに集積されるトランジスタ数が増えるため、より高性能な回路機能を表現することができ、ICの性能が向上します。エレクトロニクスと言われる分野では、半導体の中を動き回る電子の性質から、電子デバイスと呼ばれるトランジスタの動作を理解し、集積回路について学びます。これより、高性能なコンピュータを作るための基礎的な知識を獲得します。

計算機アーキテクチャ

この講義により、コンピュータシステムがどのように構成されているのかを理解できます。その中心となるプロセッサ(CPU)で、ソフトウェア開発者が記述したプログラムを、コンピュータが理解できる言葉(マシン語)に変換し、そのマシン語命令がCPUチップの内部においてどのように解釈されて実行されていくのか、といったことがわかるようになります。 そして、新しいパソコンを購入するときなどに、性能の高いものを安く購入するために、その性能とはどういうことなのか、性能を向上させるために、これまでにどのような技術が考案され実用化されてきたのかについて解説します。 マシン語命令を実行するCPUチップの内部を設計し、実際に動作するものを作り上げることは、街づくりに似ています。何も無い荒れ野原から人が住める街を作るには道路を整備して、家屋建設に必要な物資を運ぶ経路を確保します。できた道路に横断歩道や信号機を設置して、ダンプカーや乗用車、オートバイ、人々がぶつからないよう安全に行き来できるようにします。同じように、CPUチップの設計でも、データパスというデータが流れる経路をまず作り、その上を流れる命令やデータをコントロールする回路を設計するのです。 この講義では、そのコンピュータの設計・実装に必要な基礎知識を身につけます。

アルゴリズム論

現在のコンピュータは、数ギガヘルツの周波数で動作しています。これを10ギガヘルツに上げた場合、光の速さであっても、1クロックの間に約3cmしか進むことができません。そのため、動作周波数を上げることより、コンピュータの性能を向上させるという手法は、限界に近づいています。それでは、どのようにすれば、コンピュータの処理能力を、さらに向上させることができるでしょうか? 並列化やパイプライン化を適用した、新しいハードウェアを導入することも一つのアイデアです。一方、高性能の「アルゴリズム」を開発するという、ソフトウェアの手法を適用することも、もう一つの解決方法です。コンピュータに処理をさせる際の手順を意味するアルゴリズムを工夫することで、コンピュータの処理能力を大幅に向上させることが可能になります。 本授業の目的は、高性能アルゴリズムを設計するための基本を身につけることです。そのために、まず、データを表現する「データ構造」の概念と基本的なアルゴリズムを習得します。次に、アルゴリズムの性能指標である「時間計算量」や「空間計算量」について理解し、最後に「NP完全」や「NP困難」といった手ごわい問題の存在を認識し、そのような問題を解決するための近似アルゴリズムについて学習します。

アルゴリズム序論

突然ですが、クラスにいる学生50人の身長 x1, x2, …, x50 から、クラスの平均身長を求めたいとします。普通の人は x1 + x2 + … + x50 を計算してから、それを 50 で割るでしょう。しかし、x1/50 を計算して、次に x2/50 を計算して…と進めていき、最後にそれらの 50 個の数値を足すことでも平均身長は正しく求まります。しかし、余分な手間がかかってしまいますよね。 さて、皆さんはアルゴリズムという言葉を聞いたことがあるでしょうか? アルゴリズムとは、コンピューターに何かをさせる手順のことです。上の話は、平均身長を求めるアルゴリズムを2つ比べて、前者の方が効率が良いと言っています。 コンピューターの高速な動作のためには、効率の良いアルゴリズムが非常に重要になります。例えば、数を小さな順に並べ替えるという単純な動作でも、100万個の数を並べ替えようとすると、効率の良いアルゴリズムでは1秒でできるのに、効率の悪いアルゴリズムでは数十分かかるというような事が起きてしまいます。 この授業では、効率の良いアルゴリズムとは何か、またどのようにして効率の良いアルゴリズムを作るかを学んでいきます。

知能情報システム工学実験

知能情報システム工学科に所属する学生は、2年次には「数理情報工学コース」と「電子情報工学コース」のいずれかを選択することになります。この「知能情報システム工学実験1A」は「数理情報工学コース」の専門科目として当該コースの幅広い専門分野への導入を提供します。 本実験では、数理情報工学コースの教員が担当する様々な実験・演習を通じて、実験を実施し、実験結果について考察し、そしてそれらをレポートにまとめる訓練を行います。 実験を通じて、計算機やプログラムの動作原理から、物理デバイス制御、Pythonプログラミングや統計データ処理、物理シミュレーションの実装といったように、ハードウェアからソフトウェアまで数理情報に関する専門分野の基礎的内容について幅広く触れることができます。 2年次にこの「知能情報システム工学実験1A」を履修したのち、3年次には「知能情報システム工学実験2A」でより踏み込んだトピックの実験を行います。一連の実験演習を履修することで、専門分野への理解を深めると同時に、自分の興味や適性を把握することができるでしょう。

教員インタビュー(先生大図鑑)

Department of Electrical Engineering and Computer Science (EECS)

Tokyo University of Agriculture and Technology (TUAT)

bottom of page