進歩の著しいコンピュータ科学にはさまざまな現代的テーマがあります。
Last Update
二年次選択必修科目
科学の方法
コンピュータ・
アーキテクチャ
アルゴリズムと
データ構造
二年次選択科目
アドバンスド
プログラミングA
アドバンスド
プログラミングB
多変数
カルキュラスA
多変数
カルキュラスB
離散数学基礎
コンピュータ
画像処理
組合せと確率
マルチメディア
プログラミング
コンピュータラボ
システム
ソフトウェア論
コンピュータ
コミュニケーション
情報と社会
実践
プログラミングC
トップページ
>
学科教育関連情報
> 各科目概要 二年次
必修科目
卒業に必ず必要な科目
選択必修科目
一、二年次の選択必修科目8科目中5科目以上を選択して修得
プレ特研A〜プレ特研Mのうちの1科目以上3科目まで選択して修得
選択科目
自由に選択可能(46単位以上修得が必要)
注:上記は概略です。厳密な説明が必要な在学生は大学配布の履修要項を見てください
科学の方法
春期
2単位
竹内富士雄
私たちの身の回りには時間とともに変わっていくものが色々あります。たとえば毎日の天気、車の動き等色々。それらの動きは「微分方程式」を使って記述できます。まず自然の法則を色々考慮して方程式を作り、そしてそれを解くことによって変化を理解します。あるいはそれが現実と合わなければ方程式の間違いや法則の間違いを訂正します。
この授業では身の回りにある運動する物体などを題材にして微分方程式を作ったり解いたりすることを学びます。解くには紙と鉛筆で解くこともあるし、コンピュータを使うこともあります。そして得られた解をわかりやすくグラフやアニメーションに表示することも勉強します。
自然科学に目を向け、実験、観測で得られた情報を定量化、整理をしてそこから法則性を見つけて演繹、検証をするという科学一般におこなわれる方法を学んで貰うことがこの授業の目的です。
↑ページのトップへ
コンピュータ・アーキテクチャ
春期
2単位
岡田憲志
コンピュータの中身がどうなっているのかを勉強します。
コンピュータは、プロセッサやメモリなどのICの塊である電子回路やハードディスクなどの機械装置などハードウエアと呼ばれる装置と、コンピュータの行うことが書かれた指令書であるソフトウエアからできています。ソフトウエアには、OS(オペレーティングシステム)や皆さんのよく使うWebブラウザ、そのほか沢山のアプリケーションソフトウェアなどのプログラムからできています。
例えば s=a+b; のような簡単なプログラムの足し算命令が、メモリーからどのように取り出され、どこで足し算だと解釈され、足し算実行の信号がどこへゆくのか? 足し算をする回路はどんなものなのか? 演算を速くする工夫は? など制御装置、演算装置、記憶装置の役割と仕組みをハードウエアとソフトウエアの役割分担を考えながら学んでいきます。
↑ページのトップへ
アルゴリズムとデータ構造
秋期
2単位
黒田直樹
コンピュータは急速な勢いで進歩を続けていますが、ソフトウエアへの要求も質・量ともに増え続けています。それに伴い、ソフトウエアを構成するプログラムも複雑になってきています。ソフトウェアを構造化して機能をパターン化しなければ、その生産性はコンピュータの進歩に追いつきません。プログラムがより問題を反映しやすいように計算モデルの中のデータの構造をより分かりやすく、豊富に用意しておけばモデルに対する計算のアルゴリズムもわかりやすいものになります。この授業はそのための基礎を学習します。
↑ページのトップへ
アドバンスドプログラミングA
春期
2単位
山田修司
プログラミング言語Cを用いた、高度なプログラミングの知識と技術とを修得することを目標としています。世界的なプログラミングコンテストというプログラミングの技能を競う競技大会があります。それに参加できるレベルの学生を育てるということも目標の一つです。
↑ページのトップへ
アドバンスドプログラミングB
秋期
2単位
鴨浩靖
要求が書かれた文章を読み、正確なプログラムを早く書く能力を身につけることを目標とします。特に、要求を正しく読み取り、過不足ないプログラムを書く能力に力点を置きます。要求された出力を要求されたとおりの形式で不足なく出力し、かつ要求されていない出力を勝手に行うことのないことや、プログラムが対応可能な入力サイズが、要求された最大入力サイズ未満でないことなど、プログラミングの正確性について学習します。
具体的には、ACM国際大学対抗プログラミングコンテストの過去の問題をひたすら解く演習を行って、これらについて取り組みます。
↑ページのトップへ
多変数カルキュラスA
春期
2単位
中神恵子
一年次での微分積分学A、Bでは、1変数の微分法、積分法を学びました。
この科目ではその続きとして、多変数の微分法、積分法を学びます。具体的には、多変数の偏微分、全微分、テーラー展開、陰関数、偏微分関数の応用等を扱います。
↑ページのトップへ
多変数カルキュラスB
秋期
2単位
中神恵子
多変数カルキュラスAでは、多変数の微分法を学びますが、この講義科目では、主として多変数の積分法を学びます。また、残りの時間でフーリエ変換の基礎を学びますが、コンピュータを用いながら視覚的に把握できるようにします。具体的には、重積分、累次積分、積分変換、積分の応用、フーリエ変換等を扱います。
↑ページのトップへ
離散数学基礎
春期
2単位
山田修司
離散とは、離れて散っている状態のことですが、それは1個2個と数えることができる状態と言い換えることもできます。離散的なもの、あるいは連続的な対象物の離散的な取り扱いについての数学が、離散数学です。たとえば、高校で習う順列や組み合わせなど、物の数え上げがそうです。さらに、物の個数だけではなく、物の間の関係とか対応とかも離散数学の対象です。この授業では、離散数学の基本となる考え方や計算方法を学びます。また、この授業は三年次で学ぶ離散数学A、Bの基礎ともなります。
↑ページのトップへ
コンピュータ画像処理
秋期
2単位
竹内富士雄
いまやコンピュータ上には絵や写真などがあふれており、JPEGやRGBという用語を見かけたことがあるはずです。これらはコンピュータで画像を取り扱う技術に関する用語で、この授業ではその内容と意味が分かるよう画像処理の基礎を学びます。
画像はコンピュータ内部表現の0と1とで視覚的な情報を表現したもので、実体は各要素が縦横に並んだ行列にすぎません。コンピュータはこのような対象を取り扱うのが得意ですから、この分野は近年非常に発達していろいろ面白い技術が山積しています。以下はその一例です。
・コントラストや明るさのせいで見にくい画像を解りやすくする
・ボケた画像をはっきりさせる、逆にあからさまな画像をちょっとぼやかす
・画像に入ったゴミを取り除く
・カラー画像の色調を変える
・画像データのファイルを圧縮して小さくする
・画像の中からある特別なものを認識する
(例えば指紋や虹彩の同一性を認識する、自動車の写真からプレートのナンバーを読み取る、など)
↑ページのトップへ
組合せと確率
春期
2単位
辻井芳樹
私達が目にする現象の多くはデタラメです。今日の天気が晴れのとき、明日の天気は晴れの時もあれば、雨の時もあります。サイコロの目も、何の目が出るか予想することは出来ません。このようなデタラメな現象を扱うのが確率論です。
また、コンピュータ科学の基礎である離散数学で色々な組合せの問題が出てきますが、確率論でも同じような問題を扱います。そこでこの講義では「組合せの問題」の基本的な技法を学びます。更に自然現象や社会現象では統計的な処理をする必要があります。その時に必要な知識が推定・検定です。推定・検定の基礎も学びましょう。
↑ページのトップへ
マルチメディアプログラミング
秋期
2単位
平井重行
最近、ソフトウェア開発・実行環境としてよく利用されるJavaを中心に、オブジェクト指向プログラミングの基礎と画像などのマルチメディアデータの扱いについて学びます。
Javaの言語と実行環境について基本的な知識を理解しながら、演習課題によってJavaプログラミングに慣れ、オブジェクト指向の基本を身につけることを初めの目標とします。その上で、ウィンドウやボタンなどGUI(グラフィカル・ユーザ・インタフェース)の処理方法について学び、図形や画像などグラフィクス描画などのマルチメディア処理のプログラミングおよびデータの扱いについて勉強します。
↑ページのトップへ
コンピュータラボ
秋期
2単位
岡田憲志・竹内富士雄
コンピュータを使用する目的として、例えば銀河の誕生を再現するシミューレーションなどの複雑な科学計算をさせたり、給与計算などの事務処理をするような、一台のコンピュータの中だけで完結する使い方があります。このような使い方をスタンドアローンユースと言いますが、もっと面白い使い方にオンラインユースがあります。これは、コンピュータを視聴覚機器(カメラ、マイクなど)、センサ(赤外線、温度、速度、位置、圧力など)や色々な測定器などと接続し、そこからデータ、信号などの情報を取り込みながら、それらを瞬時に処理(リアルタイム処理)して、外部に接続したロボットなどの自動機器を制御したり画像や音声情報として出力したりする使い方のことです。この科目では、このようなコンピュータ利用に関して2つのクラスに分かれて授業を行います。
音声実験のクラスでは、マイクから人間の声や、楽器の音をコンピュータに取り込みながらすぐにその波形を表示し、エコーをかけたり、逆読みにしたり、ドナルドダックの声にしたりして再生します。またこの音声データをフーリエ変換すると、あの犯罪捜査でおなじみの声紋を即座にカラー表示できます。音の取り込みから加工、声紋表示、簡単な人の識別などができるプログラムを自分で作ります。
レゴロボット実験のクラスでは、コンピュータを積んだLEGOブロックを使ったロボットを設計し、それを自分で書いたプログラムでコントロールする実験を行います。ロボットの部品やセンサが色々あるので独創的なものを作ることができます。サッカーロボット、自分で道を探しながら迷路を進むロボット、火星探査ロボットのようにどんながたがたの道も乗り越えるロボットなど、素晴らしいものができたらコンテストに応募しましょう。
↑ページのトップへ
システムソフトウェア論
春期
2単位
小林聡
コンピュータの性能はハードウェアだけでは決まりません。オペレーティングシステム(OS)と呼ばれる、縁の下の力持ちのソフトウェアがよく出来ていないと、コンピュータは性能を発揮できませんし、使いにくいシステムになってしまいます。
OSはハードウェアが効率よく動くようにコントロールしたり、たくさんのソフトウェアを順序よく実行させたり、といった働きをします。また、データを管理したり、ユーザがコンピュータを楽に操作できるように手助けしたりします。ニュースや雑誌でおなじみの"Windows"、"Mac OS"、"Linux"というのもOSの一種です。
この授業では、OSがどのように設計されているかを学びます。また、OSの機能をうまく利用して、日常の面倒な仕事を自動化する方法や、コンピュータの管理に役立つ技術も解説します。
↑ページのトップへ
コンピュータコミュニケーション
秋期
2単位
三好博之
今やパーソナルコンピュータはそれ一台で使われることは少なく、インターネットにつないで使うことが当たり前になっています。しかし一言でつなぐといってもそのつなぎ方はユーザからは見えません。しかしコンピュータネットワークのメカニズムを理解するためには、そのつなぎ方の手順であるプロトコルを理解することがその第一歩になります。この講義ではインターネットで標準的なプロトコルであるIP(Internet Protocol)を中心に、コンピュータネットワークの技術的な基礎を学びます。
↑ページのトップへ
情報と社会
秋期
2単位
三好博之
パーソナルコンピュータやインターネットが急激に普及してきたことにより、コンピュータは技術的な側面だけでなく、様々な社会的な側面に大きな影響を及ぼすようになっています。コンピュータ科学の専門家にとってもこれらの社会的な影響力を無視することはできません。むしろ専門家であるがゆえに、その技術を悪用しないだけのモラルが要求されます。
この講義では、社会学的な基本概念と共に、特に情報ネットワークに関連して起こる社会的問題について自ら考えるための基本的知識を学びます。
↑ページのトップへ
実践プログラミングC
春期
2単位
鴨浩靖
UNIXのシステムコールプログラミングの基本について演習を行います。
ユーザプログラムがカーネル(OSの核)からサービスを受けるために呼び出すのがシステムコールです。プログラムの文面にシステムコールが直接現れていない場合でも、ライブラリ関数を通して間接的にシステムコールを呼び出しており、プログラムの実行にはシステムコールが必ず伴います。その中で、システムコールを直接呼び出すプログラムを書くことは、システムコールプログラミングと呼ばれます。
ここで学ぶシステムコールプログラミングは、ネットワークプログラミングやOS開発に関するような、より進んだシステム開発を学ぶための基礎知識となります。主に入出力のシステムコールとプロセス管理のシステムコールについて、概ね以下の順序で学びます。ファイル入出力、子プロセスの呼び出し(同期、非同期)、標準入出力のリダイレクション、パイプ、シグナル処理、ユーザ情報などの取得。
なお、この演習ではLinuxのシステムを使用しますが、扱う内容はUNIX系OSに汎用的なものなので、それらでもそのまま通用する知識が得られます。
↑ページのトップへ