Special Seminar for Computer and Information Sciences - Kenji OHMORI

  • 2012 年度版 (2013年度版準備中)

Instructor

Goal and Theme

 LISP言語に並列機能とJAVA環境を利用できるにしたCloseureはこれからの並列処理言語として期待され、人工知能、WEBアプリケーションなどの分野に広く応用されることが期待している。ここでは、新しい時代に即したプログラミング言語について学ぶ。

Abstract

 輪講形式で進める。各人は割り当てられた章の説明を行うとともに、実際にプログラム例を示し、それを動作させ、デモを行う。

Schedule

通年

テーマ内容
1 Getting Started(1) 1.1 なぜClojureなのか 1.2 Clojureを書き始めよう
2 Getting Started(2) 1.3 Clojureライブラリの探索
3 Getting Started(3) 1.4 Lancetとは
4 Clojureひとめぐり(1) 2.1 フォーム 2.2 リーダマクロ
5 Clojureひとめぐり(2) 2.3 関数 2.4 var、束縛、名前空間
6 Clojureひとめぐり(3) 2.5 フロー制御 2.6 forループはどこにある? 2.7 メタデータ
7 ClojureからJavaを使う(1) 3.1 Javaの呼び出し 3.2 性能の最適化
8 ClojureからJavaを使う(2) 3.3 ClojureでJavaのクラスを作る 3.4 例外処理
9 ClojureからJavaを使う(3) 3.5 AntプロジェクトとタスクをLancet に追加する
10 シーケンスを使ったデータの統合(1) 4.1 すべてはシーケンスである 4.2 シーケンスライブラリを使う
11 シーケンスを使ったデータの統合(2) 4.3 遅延シーケンスと無限シーケンス 4.4 Javaをシーカブルとして扱う
12 シーケンスを使ったデータの統合(3) 4.5 特定の構造に特化した関数 4.6 Lancetのタスクにプロパティを追加する
13 関数型プログラミング(1) 5.1 関数型プログラミングの概念 5.2 怠け者になろう
14 関数型プログラミング(2) 5.3 もっと怠け者の勧め
15 中間まとめ 1 - 14回までのまとめを行う

授業外に行うべき学習活動

ClosureはLISPをベースとしているので、教科書をあらかじめ熟読するだけでなく、LISPの本も読んでおいてほしい

Materials

ハローウェイ著「プログラミングClosure]オーム社

References

竹内郁雄「初めての人のためのLISP]翔泳社

Evaluation Method

 授業での貢献度とレポートによる

前年度の授業改善アンケートからの気づき

 なし