本講義では,プログラミング第一で学んだ手続き型プログラミングの考え方とは異なるプログラミングパラダイムに基づく関数型プログラミング言語Schemeとオブジェクト指向プログラミング言語Javaを用い,実際にプログラムを作成し,動作させることによって,これらのプログラミングパラダイムの基本的な考え方やその原理となっている計算のメカニズムについて理解を深めさせる.
解決しようとしている問題に応じて適切なプログラミングパラダイムを見極め,それに応じたプログラミング言語を用いてシステムを記述することは,システムの記述容易性,理解容易性,保守性などの観点から重要である.この講義ではプログラミング第一と異なる観点から問題を捉えることにより,異なるプログラミングパラダイムに共通の概念や相違点を理解し,問題に応じて適切なプログラミング言語を利用する能力を身につけることを目指す.
(1) 再帰プログラムが書ける
(2) 関数型のプログラムが書ける
(3) リスト処理のプログラムが書ける
(4) 高階手続きが活用したプログラムが書ける
(5) Javaの基本的な文法を身に付ける
(6) オブジェクト指向のプログラムが書ける
手続き抽象,データ抽象,可変データ構造,ストリーム,リスト操作,高階手続き,継続,クラスとインスタンス,継承,差分プログラミング
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
毎回の講義ではプログラミング作成の課題を数問出します.課題のプログラムを時間内に作成し,提出してください.講義終了後,プログラム例を公開します.次回の講義の冒頭では前回の課題についての簡単な解説をおこないます.
授業計画 | 課題 | |
---|---|---|
第1回 | 毎回プロラミングの課題を与える. | 講義で指定する. |
第2回 | 毎回プロラミングの課題を与える. | |
第3回 | 毎回プロラミングの課題を与える. | |
第4回 | 毎回プロラミングの課題を与える. | |
第5回 | 毎回プロラミングの課題を与える. | |
第6回 | 毎回プロラミングの課題を与える. | |
第7回 | 毎回プロラミングの課題を与える. | |
第8回 | 毎回プロラミングの課題を与える. | |
第9回 | 毎回プロラミングの課題を与える. | |
第10回 | 毎回プロラミングの課題を与える. | |
第11回 | 毎回プロラミングの課題を与える. | |
第12回 | 毎回プロラミングの課題を与える. | |
第13回 | 毎回プロラミングの課題を与える. | |
第14回 | 毎回プロラミングの課題を与える. | |
第15回 | 毎回プロラミングの課題を与える. |
特に指定しない.
・Harold Abelson and Gerald Jay Sussman,Structure and
Interpretation of Computer Programs, 2nd Edition, The MIT Press,
1996. (http://mitpress.mit.edu/sicp/)
和田英一 (訳) 計算機プログラムの構造と解釈 第2版 ,ピアソンエデュケーション,2000.
・Revised5 Report on the Algorithmic Language Scheme
(http://www.schemers.org/Documents/Standards/R5RS/)
・入門Scheme
(http://www.dinukai.org/programming/scheme/primer/scheme\_primer\_j.html)
・独習Scheme三週間
(http://www.sampou.org/scheme/t-y-scheme/t-y-scheme.html)
・もうひとつのScheme入門
(http://www.shido.info/lisp/idx\_scm.html)
・Kahuaプロジェクト,プログラミングGauche,オライリージャパン,2008.
・Gaucheリファレンスマニュアル
(http://practical-scheme.net/gauche/memo-j.html)
・結城浩,改訂第2版Java言語プログラミングレッスン,2005.
(http://www.hyuki.com/jb/)
・権藤克彦,Javaによるプログラミング入門,サイエンス社,2000年.
・JavaDrive --- Java 入門 ---
(http://www.javadrive.jp/start/)
・Ken Arnold, David Holmes, James Gosling,
The Java Language Specification (3rd Ed.)
(http://java.sun.com/docs/books/jls/)\\
柴田芳樹 (訳), プログラミング言語Java 第3版, ピアソンエデュケーショ
ン,2001.
・JDK 6ドキュメント
(http://java.sun.com/javase/ja/6/docs/ja/)
提出された課題へ解答 (100%)
ZUS.S202 : プログラミング第二を履修していること.
特になし.