プログラミング言語論

科目基礎情報

学校 豊田工業高等専門学校 開講年度 平成31年度 (2019年度)
授業科目 プログラミング言語論
科目番号 34212 科目区分 専門 / 選択必修1
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 4
開設期 後期 週時間数 2
教科書/教材 教科書は特に指定しない/【参考書】大山口通夫,五味弘『プログラミング言語論』コロナ社
担当教員 藤原 賢二

到達目標

(ア)計算モデルの観点からプログラミング言語を分類できる.
(イ)BNFを用いてプログラミング言語の文法を記述できる.
(ウ)命令型プログラミング言語の特徴と計算モデルを説明できる.
(エ)オブジェクト指向型プログラミング言語の特徴を説明できる.
(オ)関数型プログラミング言語の特徴と計算モデルを説明できる.
(カ)論理型プログラミング言語の特徴と計算モデルを説明できる.
(キ)プログラミング言語と処理系の関係およびエコシステムについて説明できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1代表的なプログラミング言語を列挙し,計算モデルの観点から分類できる.代表的なプログラミング言語を計算モデルの観点から分類できる.プログラミング言語を計算モデルの観点から分類できない.
評価項目2BNFを用いてプログラミング言語の文法を記述できる.与えられたBNFからプログラミング言語の文法を理解できる.プログラミング言語の文法を記述する方法を理解できない.
評価項目3命令型プログラミング言語の特徴と計算モデルを説明でき,命令型プログラミング言語を用いたプログラミングができる.命令型プログラミング言語の特徴と計算モデルを説明できる.命令型プログラミング言語の特徴と計算モデルを説明できない.
評価項目4オブジェクト指向型プログラミング言語の特徴を説明でき,オブジェクト指向型プログラミング言語を用いたプログラミングができる.オブジェクト指向型プログラミング言語の特徴を説明できる.オブジェクト指向型プログラミング言語の特徴を説明できない.
評価項目5関数型プログラミング言語の特徴と計算モデルを説明でき,Haskellを用いた簡単なプログラミングができる.関数型プログラミング言語の特徴と計算モデルが説明できる.関数型プログラミング言語の特徴と計算モデルが説明できない.
評価項目6論理型プログラミング言語の特徴と計算モデルを説明でき,Prologを用いた簡単なプログラミングができる.論理型プログラミング言語の特徴と計算モデルが説明できる.論理型プログラミング言語の特徴と計算モデルが説明できない.
評価項目7プログラミング言語と処理系の関係およびエコシステムについて説明でき,ソフトウェア開発に応用できる.プログラミング言語と処理系の関係およびエコシステムについて説明できる.プログラミング言語と処理系の関係およびエコシステムについて説明できない.

学科の到達目標項目との関係

学習・教育到達度目標 A2 ソフトウェア開発において,数理的理論に基づくスマートな設計ができるとともに,ハードウェアの基本動作を意識した設計ができる.
JABEE d 当該分野において必要とされる専門的知識とそれらを応用する能力
本校教育目標 ① ものづくり能力

教育方法等

概要:
これまでに学習してきたC言語,Java,Pythonの知識を基に,プログラミング言語がもつべき機能や,文法の記述方法について学習する.
プログラミング言語が計算モデルにより分類できることを学び,命令型,オブジェクト指向型,関数型,論理型のプログラミングについてそれぞれ計算モデルの観点から学習する.
授業の進め方・方法:
講義は座学形式を主体とし,Power Pointを用いて説明を行う.
注意点:
配布された講義資料に基づき,継続的な復習を行うこと.「情報科学」教育プログラムの選択必修科目である.

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 シラバスの説明
様々なプログラミング言語
様々なプログラミング言語の名称とその分類を説明できる.
2週 プログラミング言語と計算モデル プログラミング言語を計算モデルの観点から分類できる.
3週 プログラミング言語の構文 BNFを用いてプログラミング言語の文法を記述できる.
4週 命令型プログラミング言語(1):仮想機械と計算モデル 命令型プログラミング言語の計算モデルおよび構造化プログラミングについて説明できる.
5週 命令型プログラミング言語(2):データ型と型システム 命令型プログラミング言語におけるデータの扱い方を説明できる.
6週 命令型プログラミング言語(3):サブプログラム 命令型プログラミング言語における関数やモジュールなどの概念を説明できる.
7週 オブジェクト指向型プログラミング言語(1):OOPの特徴 クラス,カプセル化,ポリモーフィズムなどのOOPの特徴を説明できる.
8週 オブジェクト指向型プログラミング言語(2):設計原則 オブジェクト指向における設計原則を説明できる.
4thQ
9週 オブジェクト指向型プログラミング言語(3):動的型付け言語 動的型付けなオブジェクト指向プログラミング言語の特徴を説明できる.
10週 関数型プログラミング言語(1):関数とラムダ計算 関数型プログラムの特徴と計算モデルを説明できる.
11週 関数型プログラミング言語(2):Haskell入門 関数型プログラミング言語の計算モデルを説明できる.
12週 関数型プログラミング言語(3):モダンな言語と関数型プログラミング Pythonにおける関数型プログラミングについて説明できる.
13週 論理型プログラミング言語(1):述語論理と計算モデル 一階述語論理と論理型プログラミングの計算モデルについて説明できる.
14週 論理型プログラミング言語(2):Prolog入門 Prologを用いて簡単なプログラミングができる.
15週 プログラムの再利用:エコシステム エコシステムとは何か説明できる.
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミングプログラミング言語は計算モデルによって分類されることを説明できる。4後1
主要な計算モデルを説明できる。4後1,後4,後5,後7,後9,後13

評価割合

中間試験定期試験課題合計
総合評価割合305020100
専門的能力305020100