科目名 |
情報科学3 |
担当教員 |
橘 昌良 |
対象学年 |
1年 |
クラス |
学部:自然003 |
講義室 |
K−WS |
開講学期 |
2学期 |
曜日・時限 |
月3,木3 |
単位区分 |
選択 |
授業形態 |
一般講義 |
単位数 |
2 |
準備事項 |
|
備考 |
|
授業の詳細1 |
授業の目的 現代社会では、切符の予約、預金の引き落としなど日常生活においてコンピュータによる処理が深く浸透している.工学部の卒業 生として今後、工業界で活躍していくためにはコンピュータが如何なる処理を行っているかを知っておくことは必須である.コンピュータが処理を行えるのは、 その中にプログラムが組み込まれていることによる.情報科学とは、プログラムの作成方法とその実行方法を習得するものである.情報科学2で学んだ初級のプ ログラミング技術を発展させるとともに、計算の原理についての知識を得ることを目的とする. |
授業の詳細2 |
授業の進め方 「情報科学 2」で学習した初級プログラミング技術を中級まで高めることを行う.具体的には、「関数の学習」、「総和」、「階乗」、「最大値」を求める技術を習得し、 「再帰」の考え方を理解する.また、「計算容易」、「計算困難」、「計算不能」など計算原理の内容について講義を行う. プログラミング技術の習得が段階的にできるよう、講義は次の順で進める. (1) 最初に今回の講義で学ぶプログラミング技術の概念を解説する. (2) 次に教科書の例題でその具体的使用法を体得する. (3) さらに、例題の一部を改変した練習問題を解くことにより理解を深める。例題、練習問題を解いている時にはTAが巡回しており、随時質問を受付け、また、適切なアドバイスを行うことによりスムーズにプログラミングができるようになっている. (4) 例題、練習問題の中で不明な箇所があった場合はe-Learningにより解決することもできる. (5) 講義の最後には本日、学んだことのまとめを行う. (6) 重要な単元については別途演習時間を設け、問題を多く解くことにより理解度を深める. なお、本講義では次の施策も用いている. (1) e-Learningは平日の午後6時以降、土曜日も使用可能であり、自習により理解を深めることができる. (2) 講義中に不明な箇所が解決しなかった場合は、希望することにより時間外にTAによる補講を受講することができる. 講義における段階的理解、および、上記の施策を活用すれば、プログラミング技術の習得が可能となる. |
授業の詳細3 |
達成目標 1.与えられた問題を解くために問題をアルゴリズムに落とすことができる. 2.数値計算、関数理解でといった演算系の概念が理解できプログラムが作成できる. 3.配列と再帰の概念が理解できプログラムが作成できる. 4.機械語についてコンピュータアーキテクチャとの関連において理解し,実際に計算がどのように進むかを理解する. 5.計算量の概念を理解し,計算容易な問題と計算困難な問題の区別をつけることが出来る. 6.どのようなコンピュータを用いても解けない計算不能問題が存在することを理解する. |
授業の詳細4 |
講義計画 1.関数の学習(教科書3章) 関数の学習とは、変数を変えて関数の値を反復計算することである.プログラミング技法としてはループがあり、ループの回し方、停止法、テスト法について説明する.また、種々の形をした関数の学習法を習得する.
2.総和(教科書3章)、階乗(教科書4章) 配列に格納された数の累算方法について説明するとともに、総和を求める実際の応用例を示す.また、ループを用いた階乗の計算方法を説明する.
3.最大値(教科書3章) 関 数の学習の項では、変数の値を変えて関数の値が変化する様子を観察することにより、関数の最大値を人間が見つけていた.ここでは、ループを循環する毎に関 数の値が前回より大きいか否かを検査する機能をプログラムの中に組み込むことにより、コンピュータが最大値を見出す技法について説明する.
4.再帰(教科書4章) 再帰とは、定義の対象となる関数がその定義の中で使われるものである.プログラム的には自分で自分を呼び出すサブルーチンがこれに相当する.
5.再帰(教科書4章) 再帰を用いた例として、階乗の計算、ソート法について解説する.
6.中間試験 関数の学習、総和、階乗、最大値、再帰での習得事項に関して中間試験を行う. |
授業の詳細5 |
7.機械語(教科書9章) 計算機アーキテクチャについて述べる.これを理解した上でプログラムの命令によりマシンレベルで如何に処理が進むかについて説明する.
8.アルゴリズムと計算量I(教科書第11章) かなり大きな計算量であっても合理的な時間内に計算できるという計算容易の概念について説明する。また、氏名、身長、体重からなるリストから、ある特定の身長と体重を持つ人の氏名を全部集める計算の例について解説する.
9.アルゴリズムと計算量II(教科書第11章) 計算容易の例として、複数の数を昇順に並べる問題を用いてこれに要するプログラム実行時間を調べる。さらに、計算式が情報検索の対象となるデータ数nの多項式であれば計算容易であることを説明し、先の複数の数を昇順に並べる問題がこれに該当するか否か議論する.
10.計算困難問題I(教科書11章) nの増加に伴い多項式よりも速い速度で実行時間が増加していく計算を計算困難な計算という。一例として多重ループ問題を取り上げ、計算時間を測定する.
11.計算困難問題II(教科書11章) 計算困難な例として配列使用による並列化、素因数分解を取り上げて説明する.
12.計算不能問題I(教科書13章) どのようなコンピュータを用いても解けない問題を計算不能問題という。Pascalのプログラムで計算できない計算不能関数、プログラムを読み取るプログラムを解説する.
13.計算不能問題II(教科書13章) 計算不能問題の例として、同値問題を取り上げる。また、計算不能性の証明について解説する.
14.計算の原理 計算容易、計算困難、計算不能など計算の原理について纏める.
15.期末試験 1.から5.および7.から14.の範囲に関して試験を実施する. |
授業の詳細6 |
成績評価 演習、中間試験および期末試験で達成目標への到達度を評価する. C:達成目標の60%に到達した場合 B:達成目標の70%に到達した場合 A:達成目標の80%に到達した場合 AA:達成目標の95%に到達した場合 |
授業の詳細7 |
テキスト 『やさしいコンピュータ科学』,Alan W. Biermann 著, 和田英一監訳(アスキー) 必要に応じて参考資料を配付する。参考書は講義中に適宜指定する. |
授業の詳細8 |
履修の前提となる科目:「コンピュータ・リテラシー(電子)」「情報科学1(電子)」、「情報科学2(電子)」 履修前の受講が望ましい科目: なし |
授業の詳細9 |
|
授業の詳細10 |
|