プログラミング演習(Lisp)

科目ナンバリング U-HUM22 18357 SJ11 開講年度・開講期 2021 ・ 前期
単位数 4 単位 授業形態 演習
配当学年 1-4回生 対象学生
使用言語 日本語 曜時限 水4・5
教員 櫻川 貴司 (人間・環境学研究科 准教授)
授業の概要・目的 プログラミング言語LISPによってプログラミングと記号処理の基礎的な演習を行う。LISPは記号的な人工知能などの研究にも使われている言語だが、人間の認知モデルの構築や法律の知識を計算機に詰め込む際など文科的な領域においても用いられている。また、実は初心者がプログラミングを原理的・本質的に理解するには適した言語でもある。
到達目標 再帰的データ構造とその探索、オブジェクト指向について基本を理解する。記号処理プログラムを書けるようになること。
授業計画と内容 以下の各課題をそれぞれ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処理系を用いる予定である。
成績評価の方法・観点 毎回のレポートによって評価する。出席率も加味する場合がある。
履修要件 メディアセンターのIDを取得し、ログインできること。受講者は計算機の基本的な使い方やリテラシーを身につけていることが望ましい。記号論理学についての演習を主に行うことを希望する履修者は、「数理論理学A」などを同時期までに履修することを勧める。
授業外学習(予習・復習)等 課題を授業中にこなせない場合には授業外で学習の必要がある。
参考書等 プログラミング言語Scheme, ケント・ディヴィグ著, 村上雅章訳, (ピアソン・エデュケーションジャパン), ISBN:4-89471-226-1
関連URL http://www.stdio.h.kyoto-u.ac.jp/~sakura/scheme/
PAGE TOP