2016年度 プログラミング第二 O   Programming II

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
情報工学科
担当教員名
德永 健伸  小林 隆志 
授業形態
講義     
メディア利用科目
曜日・時限(講義室)
火3-4(W933)  
クラス
O
科目コード
ZUS.S202
単位数
2
開講年度
2016年度
開講クォーター
3-4Q
シラバス更新日
2016年6月8日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

本講義では,プログラミング第一で学んだ手続き型プログラミングの考え方とは異なるプログラミングパラダイムに基づく関数型プログラミングとオブジェクト指向プログラミングについて,その基本的な考え方やその原理となっている計算のメカニズムについて説明する.プログラミング言語としてはSchemeとJavaを用いる.
解決しようとしている問題に応じて適切なプログラミングパラダイムを見極め,それに応じたプログラミング言語を用いてシステムを記述することは,システムの記述容易性,理解容易性,保守性などの観点から重要である.この講義ではプログラミング第一と異なる観点から問題を捉えることにより,異なるプログラミングパラダイムに共通の概念や相違点を理解し,問題に応じて適切なプログラミング言語を利用する能力を身につけることを目指す.

到達目標

(1) 再帰プログラムが書ける
(2) 関数型のプログラムが書ける
(3) リスト処理のプログラムが書ける
(4) 高階手続きが活用したプログラムが書ける
(5) Javaの基本的な文法を身に付ける
(6) オブジェクト指向のプログラムが書ける

キーワード

手続き抽象,データ抽象,可変データ構造,ストリーム,リスト操作,高階手続き,継続,クラスとインスタンス,継承,差分プログラミング

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

講義の最初に前回の講義内容についての小テストをおこないます.毎回の講義を復習し,事前に配布するハンドアウトには小問が含まれていますのでそれを事前に解いてみると講義の理解が深まるでしょう.また,この講義は情報実験第二と内容を同期しておこないます.この講義で学んだ概念を情報実験第二のプログラミングを通して使うことにより理解を深めます.

授業計画・課題

  授業計画 課題
第1回 プログラミング言語の系譜,Scheme概説 講義で指定する.
第2回 再帰プログラム,名前のスコープ,高階手続き
第3回 合成データ,データ抽象
第4回 リスト処理 (変換・フィルタリング・畳み込み)
第5回 代入,閉包(クロージャ)
第6回 環境モデル
第7回 遅延オブジェクト,ストリーム
第8回 継続
第9回 タグ付きデータ,メッセージパッシング
第10回 オブジェクト指向
第11回 Java概説
第12回 Java文法
第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/)

成績評価の基準及び方法

講義への貢献 (10%):質問する,質問に答えること
小テスト (30%):前回の講義内容に関する小テスト
期末テスト:上記到達目標について筆記試験をおこなう (ノート,参考書などの参照は不可)

関連する科目

  • CSC.T241 : 計算基礎論
  • ZUS.S201 : プログラミング第一
  • ZUS.S204 : 情報実験第二
  • ZUS.S301 : プログラミング第三

履修の条件(知識・技能・履修済科目等)

計算基礎論,プログラミング第一を履修していること.

その他

特になし.

このページのトップへ