2016 Programming II

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Computer Science
Instructor(s)
Tokunaga Takenobu  Kobayashi Takashi 
Class Format
Lecture     
Media-enhanced courses
Day/Period(Room No.)
Tue3-4(W933)  
Group
O
Course number
ZUS.S202
Credits
2
Academic year
2016
Offered quarter
3-4Q
Syllabus updated
2016/6/8
Lecture notes updated
-
Language used
Japanese
Access Index

Course description and aims

Following the procedural programming paradigm delivered in "Programming I", this course introduces different types of programming paradigm, namely functional programming and object-oriented programming. The course presents the principles behind these programming paradigms and their computational mechanism. As representatives of the paradigms, Scheme and Java are used.

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.

Student learning outcomes

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.

Keywords

procedure abstraction, data abstraction, variable data structures, stream, list processing, higher-order procedures, continuation, classes and instances, inheritance and difference programming.

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Every class starts with a quiz session asking questions about the contents learned in the previous class. Students are strongly recommended to review and prepare for each class. Questions in the handouts will help your understanding. This course runs in parallel with the "Programming practices II" where students can understand the concepts delivered in this course through writing programs by using those concepts.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Typology of programming languages and overview of Scheme Specified in the class.
Class 2 Recursive programs, scope of names and higher-order procedures
Class 3 Compound data and data abstraction
Class 4 List processing (transformation, filtering and folding)
Class 5 Assignment and closure
Class 6 The environment model
Class 7 Delayed objects and stream
Class 8 Continuation
Class 9 Tagged data and message passing
Class 10 Object-oriented paradigm
Class 11 Overview of Java
Class 12 Java syntax
Class 13 Inheritance, override and overload
Class 14 Abstract class, interface, package and exception
Class 15 Input-output, strings manipulation and an example program

Textbook(s)

Not specified.
Handouts will be provided through the OCW-i system.

Reference books, course materials, etc.

・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/)

Assessment criteria and methods

Contribution to the course (10%): e.g. raising and answering questions in the class
Quiz (30%): examinations on the content delivered in the previous class
Final exam (60%): Examination on above mentioned outcomes

Related courses

  • CSC.T241 : Fundamentals of Computing
  • ZUS.S201 : Programming Ⅰ
  • ZUS.S204 : Experiments on Computer Science II
  • ZUS.S301 : Programming III

Prerequisites (i.e., required knowledge, skills, courses, etc.)

CSC.T241 : Fundamentals of Computing, ZUS.S201 : Programming Ⅰ

Other

None.

Page Top