科目名 |
情報科学3 |
担当教員 |
星野 孝総 |
対象学年 |
1年 |
クラス |
学部:自然005 |
講義室 |
K−WS |
開講学期 |
2学期 |
曜日・時限 |
月1,木1 |
単位区分 |
選択 |
授業形態 |
一般講義 |
単位数 |
2 |
準備事項 |
|
備考 |
|
授業の詳細1 |
達成目標(概要) コンピュータリテラシー、情報科学1、情報科学2と、どのようにプログラムを記述するかという方法を学んできた.情報科学3Jではなぜ情報が処理できるかを学ぶ.今まで情報処理の「How」を学んできた皆さんに情報処理の理論である「Why」を学習してもらう.このためには、まず、現在に至るまで情報処理技術を推進してきた原理の歴史を学び、現在の情報処理技術が取り組んでいる方法や将来的な問題などを明らかにする.つまり情報科学3Jは今後学んで行く高度な情報システム全体に対しての理論的入門という役割を果たすものである. 具体的には、たとえプログラムが出来てもコンピュータで回答を得るまでに何万年もかかる問題や、一見簡単に記述できそうであってもプログラム自体が存在しえない問題もあるということを示す.このような問題は避けて通りたいし、避けられない場合は人工知能などの新しい考え方に立脚して克服できないか工夫したい.講義の前半では計算機の仕組みを学んだあとで、なぜ時間がかかるプログラムになるのかを体験的に覚えてもらう.さらに、人工知能的アプローチについても学ぶ. 講義の後半では、C言語によるプログラミングについて触れる.Pascalは優れた言語であるが、現在、実用的なプログラムの多くはC言語で記述されている.PascalもC言語もプログラムを作成する上での考え方は同じであり、これまでに学んだ PascalのプログラムをC言語で表すことは容易である. |
授業の詳細2 |
講義計画 1−2. マシンアーキテクチャ 情報科学3Jの概要を説明した後、チューリングマシンやフォンノイマンの歴史的意義を復習する.その後で、8088マイクロプロセッサのサブセットで動作するマイクロプロセッサを解説し、コンピュータアーキテクチャを理解する.次に、8088サブセットコンピュータのアセンブラを理解し、アセンブラプログラミングを体験する.
3ー5. コンパイラ Pascalをアセンブラに翻訳するに当たり、Pascalの平叙文を生成する構文生成ルールとその使い方を学ぶ.また、構文生成ルールに対応した意味論を定義し、Pascalの平叙文がアセンブラに翻訳されてゆく過程を学ぶ.
6. 演習 アセンブラ、構文規則、意味論を用いて簡単なPascalの平叙文がアセンブラになってゆく過程を演習する.このようにして出来るアセンブラを人間が見ると、不要なことも行っていることを学ぶ.
7. 計算量と問題の困難さ 計算量の増加にはオーダという計算概念があることを学ぶ.つぎに、いくつかのアルゴリズムがどのようなオーダになるのかを理解する.演算量の概算が多項式で表せる問題を多項式時間アルゴリズムと呼ぶことを学び、計算量がべき乗のオーダの場合には事実上計算不能であることを認識する.NP問題についても概念を理解する.
8. 計算不能 計算不能の準備として、背理法を復習し、実数の濃度が可算無限以上の濃度になる対角線論法を理解する.プログラムの自動停止問題など、プログラムの振る舞いを判定するプログラムはそもそもできないことを理解する.
9. 中間試験 これまでの理解度を調べる試験を行う.
10. 並列プロセッサ 計算困難な問題も並列プロセッサでは解けるだろうか.並列プログラムではリソースの奪い合いが発生し、これを制御するためセマフォを導入する必要があること、また、これにより通信プロセスに時間がかかることを理解する. |
授業の詳細3 |
11. 人工知能(AI) コンピュータは「理解」できるか、その理解は人間並みかと言う問題に挑戦する.このため、今まで学んだような算術演算ではなく、意味ネットワークというものを用いて全体を把握するということを学ぶ.
12. 推論とゲームの理論 意味ネットワークを用いると推論が出来ることを学ぶ.結局のところ探索問題に落ち着き、その応用としてゲームの理論を学ぶ.具体的にはニムゲームを用いて、ゲームの戦略(勝てる方法)を理解する.
13-16. C言語(入門) Pascalとの違いに注意しつつ、C言語のプログラムの書き方について学ぶ.分岐、繰り返し、および配列を用いたプログラムが記述できることを目指す.適宜演習を行う.
17. 最終試験 これまでの理解度を調べる試験を行う.
18. 最終テストの解説 |
授業の詳細4 |
成績評価: 出席(および随時簡単なテスト)15点、中間試験40点、最終試験45点、の合計100点とし、60点以上を合格とする.
テキスト: 「やさしいコンピュータ科学」 第5章、第9章〜14章、Alan W. Biermann(アスキー) また、必要な資料を随時配布する. |
授業の詳細5 |
成績評価 演習、中間試験および期末試験で達成目標への到達度を評価する. ◆C:達成目標の60%に到達した場合 ◆B:達成目標の70%に到達した場合 ◆A:達成目標の80%に到達した場合 ◆AA:達成目標の95%に到達した場合
◇テキスト 『やさしいコンピュータ科学』,Alan W. Biermann 著, 和田英一監訳(アスキー) 必要に応じて参考資料を配付する。参考書は講義中に適宜指定する ◇履修上の注意
◇備 考:なし
◇履修の前提となる科目:「コンピュータ・リテラシー」「情報科学1」、「情報科学2」 ◇履修前の受講が望ましい科目: なし |
授業の詳細6 |
|
授業の詳細7 |
|
授業の詳細8 |
|
授業の詳細9 |
|
授業の詳細10 |
|