Following the procedural programming paradigm delivered in "Programming I", this course introduces different types of programming paradigm, namely functional programming and object-oriented programming. Through exercises of writing various types of programs by using Scheme and Java, the students will understand the principles behind these programming paradigms and their computational mechanism.
Using an appropriate programming paradigm and a programming language for a given problem is essential for realising software with respect to its description ease, understandability and maintainability. The aim of this course is to provide students with the ability to choose an appropriate programming paradigm for a given problem on the basis of deep understanding of common and different concepts among different programming paradigms.
At the end of the course students should be able to
(1) write recursive programs;
(2) write programs in a functional programming language (scheme);
(3) write programs handling list data structures;
(4) write programs using the higher order concept;
(5) write syntactically correct Java programs and
(6) write object-oriented programs.
procedure abstraction, data abstraction, variable data structures, stream, list processing, higher-order procedures, continuation, classes and instances, inheritance and difference programming.
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | ✔ Practical and/or problem-solving skills |
In each class, students are assigned several exercises of writing programs. The programs should be submitted within the class. After the class, suggested programs will be open to the students. A brief explanation of those suggested programs will be delivered in the beginning of the next class.
Course schedule | Required learning | |
---|---|---|
Class 1 | Students are assigned programming exercise every class. | Specified in the class. |
Class 2 | Students are assigned programming exercise every class. | |
Class 3 | Students are assigned programming exercise every class. | |
Class 4 | Students are assigned programming exercise every class. | |
Class 5 | Students are assigned programming exercise every class. | |
Class 6 | Students are assigned programming exercise every class. | |
Class 7 | Students are assigned programming exercise every class. | |
Class 8 | Students are assigned programming exercise every class. | |
Class 9 | Students are assigned programming exercise every class. | |
Class 10 | Students are assigned programming exercise every class. | |
Class 11 | Students are assigned programming exercise every class. | |
Class 12 | Students are assigned programming exercise every class. | |
Class 13 | Students are assigned programming exercise every class. | |
Class 14 | Students are assigned programming exercise every class. | |
Class 15 | Students are assigned programming exercise every class. |
Not specified.
・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/)
Submitted reports of the assignments (100%)
ZUS.S202 : Programming II
None.