Programming Practice (Lisp)
Numbering Code | U-LAS30 20007 SJ11 | Year/Term | 2022 ・ First semester |
---|---|---|---|
Number of Credits | 4 | Course Type | Seminar |
Target Year | All students | Target Student | For all majors |
Language | Japanese | Day/Period | Wed.4・5 |
Instructor name | SAKURAGAWA TAKASHI (Graduate School of Human and Environmental Studies Associate Professor) | ||
Outline and Purpose of the Course | プログラミング言語LISPによってプログラミングと記号処理の基礎的な演習を行う。LISPは記号的な人工知能などの研究にも使われている言語だが、人間の認知モデルの構築や法律の知識を計算機に詰め込む際など文科的な領域においても用いられている。また、実は初心者がプログラミングを原理的・本質的に理解するには適した言語でもある。 | ||
Course Goals | 基本的な記号処理プログラミングをできるようになる。再帰的なプログラムを書けるようになる。Min-Max法の基本、数式処理の基礎を理解する。ある程度の大きさのプログラムを書けるようになる。 | ||
Schedule and Contents |
以下の各課題をそれぞれ1~2週にわたって学ぶ予定である(一部割愛する場合があります)。 1. 簡単な式の値を求める 2. 変数と関数を定義する 3. 自分自身を用いて関数を定義する(関数の再帰的定義) 4. 内部データと文字列による表現の関係 5. 巨大な整数の演算、数値演算、並べ替え 6. さまざまなデータをLISPで表現し処理する方法 7. LISPによるオブジェクト指向的なプログラミング 8. 人工知能に関連する話題(木の探索とMin-Max法) 9. LISP in LISP 10. 遅延評価 11. 継続 12. 式の展開と論理式の標準形 13. プログラミング言語を拡張する(マクロ) コースの最初に受講の準備として、メイルの送受信、WWWブラウザの使用方法を復習し、UNIX(Linux)の基本的な使用方法を学ぶ。本演習では、LISPの多数の方言のうち、仕様がすっきりとまとまっているSchemeを使用する。 処理系はRacketあるいはJupyter上のScheme処理系を用いる予定である。 |
||
Evaluation Methods and Policy |
各課題についてのレポートにより評価する。平常点も加味する場合がある。 単位取得のための達成度: レポート課題のうち、基本的な課題について7割前後の得点が得られていれば単位取得が可能である。 応用的な課題の成績が良ければさらに高評価となる。 |
||
Course Requirements | 受講者はKUINSと教育用計算機システムの利用上のマナーを守る必要がある。 | ||
Study outside of Class (preparation and review) | 課題内容を授業中にこなせなかった場合、基本的な予習復習以外に授業外学習が必要となる。 | ||
References, etc. | プログラミング言語Scheme, ケント・ディヴィグ著, 村上雅章訳, (ピアソン・エデュケーションジャパン), ISBN:4-89471-226-1 | ||
Related URL | https://www.stdio.h.kyoto-u.ac.jp/~sakura/scheme/ |