授業科目名(和文) [Course] |
<プログラミング言語Ⅱ> |
授業科目名(英文) [Course] |
<Programming Language II> |
学部(研究科) [Faculty] |
情報工学部 |
学科(専攻) [Department] |
情報通信工学科 |
担当教員(○:代表教員) [Principle Instructor(○) and Instructors] |
○國島 丈生 自室番号(2610)、電子メール(kunishi**c.oka-pu.ac.jp) ※利用の際は,** を @に置き換えてください |
単位数 [Point(Credit)] |
2単位 |
対象学生 [Eligible students] |
2年次生(平成22年度以前入学生) |
授業概略と目標 [Course description and Objects] |
リスト処理、再帰、型など、計算機工学において重要なソフトウェア技術について、型付き関数型プログラミング言語MLによるプログラムを用いて解説する。また、高階関数、多相など、C言語にはないが現代のプログラミング言語において重要な考え方についても解説する。 |
到達目標 [Learning Goal] |
以下の2点を理解することを目標とする。(1)リスト、木などの再帰的データ構造と、それを対象とする再帰的アルゴリズム (2)プログラミング言語の動作モデル、型、高階関数、多相など、ソフトウェアの基礎概念。具体的な目安としては次の2点が目標となる。(1) 実際にアルゴリズムを設計し、MLでプログラムを記述できるようになること (2) 講義で扱った範囲内で任意のプログラムの動作や型などの説明ができること |
履修上の注意 [Notes] |
履修の要件:C言語などの手続き型言語を最低一つ習得していること。「情報処理学<情報処理>」「プログラミング言語I (平成19~22年度入学生)」を履修していることが望ましい。 その他 :MLの処理系を動かせるようにしておくほうが望ましい。(演習室には準備済) |
授業計画とスケジュール [Course schedule] |
1. プログラミング言語の歴史、MLの位置づけ 2. 式、型 3. 変数、環境 4. 組、リスト 5. 関数 6. 再帰関数 7. パターン 8. 局所変数 9. 効率的な再帰関数 10. 高階関数 11. 型の多相 12. 新たな型の定義 13. 再帰的な型の定義、2分木 14. 2分探索木 15. 関数のカリー化 |
成績評価方法と基準 [Grading policy (Evaluation)] |
定期試験80%、学習態度20%により総合的に評価する。 |
教科書 [Textbook] |
教科書: 使用しない。公開可能な講義資料は以下のURLで公開予定である:http://kunishi-lecture-board.blogspot.com/ 参考書:「Elements of ML Programming (ML97 Edition)」, Jeffrey D.Ullman, Prentice-Hall |
自主学習ガイド及び キーワード [Self learning] |
各回の講義の最後に復習用の練習問題を提示し、次回の講義の冒頭で解答例を示す予定である。復習の際には、Standard MLを実際に動かしながら行うことを強く勧める。なお、Standard MLは情報通信工学科演習室では利用可能な状態になっている他、WindowsやMacでも動作する(http://www.smlnj.org から無償で入手可能)。 |
開講年度 [Year of the course] |
24 |