山梨大学電子シラバス>検索結果一覧>授業データ



授業科目名
担当教官
プログラミング言語論
渡辺 喜道
時間割番号
単位数
コース
履修年次
期別
曜日
時限
263217 2 F 2 後期 IV
[概要]
現在,ソフトウェアを容易に作成できるように,様々なプログラミング言語が提案されている.それらの言語は内部の構造や基本的な言語構成の観点からみると,数種類に分類できる.本講義では,様々なプログラミング言語の性質を学習する.具体的には,プログラミング言語には構文と意味があること,およびそれらがそれぞれの言語においてどのように定義されているかを理解することを目的とする.データ構造やアルゴリズムの表現法,プログラミングにおける重要な概念である構造化と抽象化が,それぞれの言語でどのように定義されているかを学習する.さらに,種々の言語に共通する概念や機能とそれぞれの言語を特徴付ける概念や機能があることを学び,プログラミング言語を客観的な対象物として取り扱う力を身につけることを最終目標とする.
[具体的な達成目標]
(1)少なくとも5つの主なプログラミング言語の名前が言え,それらの歴史的関係を説明することができる.
(2)多くの異なるプログラミングパラダイムが存在することを認識することができる.
(3)手続き,オブジェクト指向,関数,論理,並行のプログラミングパラダイムのそれぞれに対して,少なくとも1つの異なる特徴を認識することができる.
(4)少なくとも2つの異なるパラダイムを利用し,プログラムを設計,コード化,テスト,デバッグすることができる.
[必要知識・準備]
本講義を履修するためには,授業科目「情報処理及び実習」,「情報数学基礎」,「プログラミング入門」,「プログラミング入門演習」,「アルゴリズムとデータ構造I」,「アルゴリズムとデータ構造I演習」,「アルゴリズムとデータ構造II」,「アルゴリズムとデータ構造II演習」をあらかじめ履修し,それらの内容を十分に理解していること.
[評価基準]
評価基準はどの程度講義目標に達したかであり,評価は中間試験と期末試験,プログラミングに関するレポートで行う.提出期限を過ぎたレポートおよび報告内容が十分でないレポートは受理しない.それは限られた時間内に達成できた成果を重視するからである.配点は中間試験42%,期末試験42%,レポート6%である.
[教科書]
  1. 講義でプリントを配布する.
[参考書]
  1. ラビ・セシィ, プログラミング言語の概念と構造, ピアソン・エデュケーション, ISBN:4-89471-770-0
  2. Ravi Sethi, Programming Languages – Concepts and Constructs (2nd Edition), Addison-Wesley, ISBN:0-201-59065-4
  3. David A. Watt, Programming Language Design Concepts, John Wiley & Sons, ISBN:0-470-85320-4
[講義項目]
(01)プログラミング言語の歴史
(02)構文と意味(1) 構文の定義
(03)構文と意味(2) 意味の定義
(04)構文と意味(3) 式の評価
(05)手続き型言語(1) 代入
(06)手続き型言語(2) 種々のデータ構造
(07)中間試験
(08)オブジェクト指向言語
(09)関数型言語(1) Scheme入門
(10)関数型言語(2) Schemeプログラミング
(11)関数型言語(3) リスト処理
(12)関数型言語(4) 静的型検査
(13)論理型言語
(14)並行型言語
[教育方法]
・講義中に簡単な演習問題を解かせ,プログラミング言語の性質や特徴を体得できるように心がけている.
・講義ではプロジェクタを使い,説明している.また,講義中用いるスライドを紙媒体で配布し,講義を聴くことに集中できるようにしている.
・実際にコンピュータでの動作を実演している.
・プログラミングに関する課題を出し,様々なプログラミング言語のパラダイムでプログラミングができるように配慮している.
[JABEEプログラムの学習・教育目標との対応]
教育目標(A)技術者としての倫理に関しては,パラダイムの異なる様々なプログラミング言語が存在することを理解し,プログラミング言語の性質がソフトウェアに機能に依存することをを学ぶ.
教育目標(B)情報の表現手法と処理手法に関しては,プログラミング言語を設計するために必要な概念やアルゴリズムとデータ構造を学ぶ.この目標を達成することに重点を置いている.
教育目標(C)問題のモデル化と問題解決能力に関しては,プログラミング言語を構成するモデルとそのモデル化手法を理解し,プログラミング言語の文法と意味を学ぶ.
教育目標(D)ソフトウェアツールの習得に関しては,プログラミング言語の性質を理解し,問題に適したプログラミング言語が存在することを学ぶ.
教育目標(E)ソフトウェアライフサイクルに関しては,開発・保守運用に適したプログラミング言語が存在することを学ぶ.
[その他]
(未登録)