Programming Practice (Lisp)
Numbering Code | U-HUM22 18357 SJ11 | Year/Term | 2022 ・ First semester |
---|---|---|---|
Number of Credits | 4 | Course Type | Seminar |
Target Year | From 1st to 4th year students | Target Student | |
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 | 再帰的データ構造とその探索、オブジェクト指向について基本を理解する。記号処理プログラムを書けるようになること。 | ||
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 | 毎回のレポートによって評価する。出席率も加味する場合がある。 | ||
Course Requirements | メディアセンターのIDを取得し、ログインできること。受講者は計算機の基本的な使い方やリテラシーを身につけていることが望ましい。記号論理学についての演習を主に行うことを希望する履修者は、「数理論理学A」などを同時期までに履修することを勧める。 | ||
Study outside of Class (preparation and review) | 課題を授業中にこなせない場合には授業外で学習の必要がある。 | ||
References, etc. | プログラミング言語Scheme, ケント・ディヴィグ著, 村上雅章訳, (ピアソン・エデュケーションジャパン), ISBN:4-89471-226-1 | ||
Related URL | http://www.stdio.h.kyoto-u.ac.jp/~sakura/scheme/ |