シラバス参照 |
講義概要/Course Information |
科目基礎情報/General Information |
授業科目名 /Course title (Japanese) |
プログラム言語論 | ||
---|---|---|---|
英文授業科目名 /Course title (English) |
Programming Languages | ||
科目番号 /Code |
COM506c COM506d | ||
開講年度 /Academic year |
2020年度 | 開講年次 /Year offered |
3 |
開講学期 /Semester(s) offered |
前学期 | 開講コース・課程 /Faculty offering the course |
情報理工学域 |
授業の方法 /Teaching method |
講義 | 単位数 /Credits |
2 |
科目区分 /Category |
専門科目 | ||
開講学科・専攻 /Cluster/Department |
Ⅰ類 | ||
担当教員名 /Lecturer(s) |
沼尾 雅之 | ||
居室 /Office |
西9-807 | ||
公開E-Mail |
numao@cs.uec.ac.jp | ||
授業関連Webページ /Course website |
www.nm.cs.uec.ac.jp | ||
更新日 /Last updated |
2020/03/12 07:57:56 | 更新状況 /Update status |
公開中 /now open to public |
講義情報/Course Description |
主題および 達成目標 /Topic and goals |
(a) 主題 プログラミングとプログラミング言語の基礎的な概念について学ぶ.OSからアプリケーションに至るまで,あらゆるソフトウェアシステムは,ある機能を実現するような動作をするように設計されるが,それを具体的に記述するために使われるのがプログラミング言語である.したがって,人間が理解しやすい高級言語であると同時に,計算機に対しては誤りなく動作を指定できるための厳密性が要求される. こうしたプログラミング言語の 役割,構造,意味論についての知識を得るとともに,命令型・オブジェクト指向型・関数型・論理型という代表的なプログラム言語について理解する.最終的にはそれぞれの言語が設計された背景にあるものの考え方にも興味を持てるようにする. (b) 達成目標 命令型、オブジェクト指向型、関数型、論理型のプログラミング言語における基本概念や特徴,違いを理解し、各プログラミング言語の代表例である、C、C++、Lisp、Prologにより簡単なプログラムが作成できるようになることを目標とする |
---|---|
前もって履修 しておくべき科目 /Prerequisites |
プログラミング通論,データ構造論. |
前もって履修しておくこ とが望ましい科目 /Recommended prerequisites and preparation |
特になし |
教科書等 /Course textbooks and materials |
おおよそ次の参考書に従うが,購入しなくても理解できるように講義する予定. ラビ・セシィ著「プログラミング言語の概念と構造化」アジソン・ウェズレイ これ以外に以下も参考にする. 大山口通夫,五味弘共著「プログラム言語論」コロナ社 |
授業内容と その進め方 /Course outline and weekly schedule |
(a) 授業内容 第1回:プログラミング言語の概要と歴史 第2回:言語と文法 第3回:命令型言語の特徴,計算モデル 第4回:C言語の基礎,代入,制御フロー,手続き,有効範囲 第5回:メモリ管理とスタックによる実行制御,小テスト 第6回:オブジェクト指向型言語の特徴,計算モデル 第7回:C++言語におけるカプセル化,クラスとインスタンス 第8回:クラス継承,抽象クラス,多様性,小テスト 第9回:関数型言語の特徴,ラムダ計算モデル 第10回:Lispの基礎,S式によるデータとプログラム,リスト構造 第11回:再帰関数と高階関数,Lispプログラミング 第12回:論理型言語の特徴,述語論理による計算モデル 第13回:Prolog言語の基礎,リスト計算述語 第14回:Prologの実行制御 第15回:期末試験とその解説 (b) 授業の進め方 講義中心で進めるが,プログラミング言語は,自分で書いてみて初めて本当に理解できるものである.したがって,学習した言語でプログラムを作成するレポートを数回課す予定である. |
実務経験を活かした 授業内容 (実務経験内容も含む) /Course content utilizing practical experience |
IBMにおけるLisp,Prologなど人工知能言語の開発環境の研究開発に携わった経験を基に,プログラミング言語の計算モデルの違いについての理解を深める |
授業時間外の学習 (予習・復習等) /Preparation and review outside class |
復習とプログラミング実習 |
成績評価方法 および評価基準 (最低達成基準を含む) /Evaluation and grading |
(a) 評価方法 期末試験,小テストで評価する.期末試験50%,小テスト2回で50% (b) 評価基準 以下の到達基準をもって合格の最低基準とする. (1)命令型、オブジェクト指向型、関数型、論理型プログラムの概念と特徴を理解していること (2)それぞれの言語で書かれたプログラムを大まかに理解できること (3)それぞれの言語で簡単なプログラムを作成できること. |
オフィスアワー: 授業相談 /Office hours |
特に設けません.講義の前後につかまえてくれても対応しますし,メールでの質問にも対応します.また,メールでアポイントをとっておいてもらえれば,来室も歓迎します. |
学生へのメッセージ /Message for students |
プログラミング及びプログラミング言語を理解することは,ITシステムを使う立場から作る立場になるための第一歩です.また,オブジェクト指向のように,世の中の考え方を変えるパラダイムシフトをリードした言語もあります. ぜひ,システムや言語を設計する喜びを味わってください. |
その他 /Others |
なし |
キーワード /Keyword(s) |
C,C++,Java,Lisp,Prolog |