講義ではプログラミングとその周辺について,論理ゲートや機械語といったレベルから様々な高水準プログラミング言語まで,また具体的な現実のプログラミング言語から理想的なプログラミング言語による計算複雑さ・計算可能性の議論までを俯瞰する。さらに科学技術者倫理についても議論する。演習の時間には基礎からのプログラミング実習を行う。
この授業は数理・計算科学系でのすべての勉強・研究の出発点となるものである。
プログラミングの理論・技術の基礎を身に付ける。
プログラミング,機械語,高水準言語,制御構造,データ構造,計算可能性,プログラム検証,科学技術者倫理。
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
講義と演習を毎回行う。
授業計画 | 課題 | |
---|---|---|
第1回 | 導入。プログラミングパラダイム。 | 授業時に指示する。 |
第2回 | 論理ゲート,ブール代数。 | 授業時に指示する。 |
第3回 | 加算器,フリップフロップ。 | 授業時に指示する。 |
第4回 | 機械語。 | 授業時に指示する。 |
第5回 | 高水準言語,コンパイル。 | 授業時に指示する。 |
第6回 | 浮動小数点,計算の精度。 | 授業時に指示する。 |
第7回 | 制御構造(1)。条件分岐,繰り返し。 | 授業時に指示する。 |
第8回 | 制御構造(2)。函数定義,再帰。 | 授業時に指示する。 |
第9回 | データ構造(1)。組,リスト,パターンマッチング。 | 授業時に指示する。 |
第10回 | データ構造(2)。高階函数,多相性。 | 授業時に指示する。 |
第11回 | 計算複雑さ | 授業時に指示する。 |
第12回 | 計算可能性 | 授業時に指示する。 |
第13回 | 科学技術者倫理(1)。全体的な話題。 | 授業時に指示する。 |
第14回 | 科学技術者倫理(2)。計算機科学の話題。 | 授業時に指示する。 |
第15回 | まとめ | 授業時に指示する。 |
未定
未定
配点は期末試験(30%), プログラミング演習(60%),その他の演習(10%)。
この科目は数理・計算科学系の学生だけが履修できる。
情報リテラシ第一,第二(LAS.I111, LAS.I112)を履修していること,または同等の知識があることを条件とする。