2017年度 関数型プログラミング基礎   Functional Programming Fundamentals

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
情報工学系
担当教員名
德永 健伸  西崎 真也  井上 中順 
授業形態
講義 / 演習     
メディア利用科目
曜日・時限(講義室)
月7-8(W321)  木7-8(W321)  
クラス
-
科目コード
CSC.T263
単位数
2
開講年度
2017年度
開講クォーター
3Q
シラバス更新日
2017年3月17日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

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

到達目標

(1) 再帰プログラムが書ける
(2) 関数型のプログラムが書ける
(3) リスト処理のプログラムが書ける
(4) 高階手続きが活用したプログラムが書ける

キーワード

手続き抽象,可変データ構造,ストリーム,リスト操作,高階手続き,継続

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

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

授業の進め方

講義は担当教員による基本概念の説明とそれを実践で使いこなせるようにするためのプログラミングの実習から構成される. この二種類の講義は原則として交互におこなう.

授業計画・課題

  授業計画 課題
第1回 プログラミング言語の系譜,Scheme概説 講義で指定する
第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/)

成績評価の基準及び方法

プログラミング実習 (30%)
期末試験 (70%)

関連する科目

  • CSC.T241 : 計算基礎論
  • CSC.T243 : 手続き型プログラミング基礎
  • CSC.T253 : 手続き型プログラミング発展
  • CSC.T273 : オブジェクト指向プログラミング

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

以下の科目を履修していることが望ましい
CSC.T241 : 計算基礎論
CSC.T243 : 手続き型プログラミング基礎
CSC.T253 : 手続き型プログラミング発展

連絡先(メール、電話番号)    ※”[at]”を”@”(半角)に変換してください。

take[at]c.titech.ac.jp

その他

特になし

このページのトップへ