プログラミング言語論

科目基礎情報

学校 豊田工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング言語論
科目番号 34212 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 4
開設期 後期 週時間数 2
教科書/教材 【教科書】猪股俊光,山田敬三『計算モデルとプログラミング』森北出版 ISBN:978-4-627-85471-0/【参考書】大山口通夫,五味弘『プログラミング言語論』コロナ社
担当教員 内山 慎太郎

目的・到達目標

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

ルーブリック

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

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

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

教育方法等

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

選択必修の種別・旧カリ科目名

選択必修1

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業
必履修

授業計画

授業内容・方法 週ごとの到達目標
後期
3rdQ
1週 シラバスの説明
様々なプログラミング言語
(復習:授業中に知ったプログラミング言語について調べる)
様々なプログラミング言語の名称とその分類を説明できる.
2週 プログラミング言語と計算モデル
(予習:教科書1章を読む)
プログラミング言語を計算モデルの観点から分類できる.
3週 プログラミング言語の構文
(復習:演習として提示したBNFの問題を解く)
BNFを用いてプログラミング言語の文法を記述できる.
4週 命令型プログラミング言語(1):仮想機械と計算モデル
(予習:教科書3章を読む)
命令型プログラミング言語の計算モデルおよび構造化プログラミングについて説明できる.
5週 命令型プログラミング言語(2):データ型と型付け
(復習:様々なプログラミング言語の型付けを調査する)
命令型プログラミング言語におけるデータの扱い方を説明できる.
6週 命令型プログラミング言語(3):サブプログラム
(復習:教科書3章を読む)
命令型プログラミング言語における関数やモジュールなどの概念を説明できる.
7週 オブジェクト指向型プログラミング言語(1):OOPの特徴
(予習:Javaのプログラミング方法について復習しておく)
クラス,カプセル化,ポリモーフィズムなどのOOPの特徴を説明できる.
8週 オブジェクト指向型プログラミング言語(2):設計原則
(復習:授業で紹介した設計原則についてインターネット等で検索し理解する)
オブジェクト指向における設計原則を説明できる.
4thQ
9週 オブジェクト指向型プログラミング言語(3):動的型付け言語
(課題:オブジェクト指向プログラミングの課題を行う)
動的型付けなオブジェクト指向プログラミング言語の特徴を説明できる.
10週 関数型プログラミング言語(1):帰納的関数
(予習:教科書4章を読む)
関数型プログラムの特徴と計算モデルを説明できる.
11週 関数型プログラミング言語(1):ラムダ記法と関数型プログラミング
(予習:教科書5章を読む)
関数型プログラムの特徴と計算モデルを説明できる.
12週 関数型プログラミング言語(2):Haskell入門
(復習:授業で説明したプログラムを理解する)
Haskellを用いて簡単なプログラムを作成できる.
13週 関数型プログラミング言語(4):モダンな言語と関数型プログラミング
(課題:関数型プログラミングの課題を行う)
Pythonにおける関数型プログラミングについて説明できる.
14週 論理型プログラミング言語(1):述語論理と計算モデル
(予習:教科書6章を読む)
一階述語論理と論理型プログラミングの計算モデルについて説明できる.
15週 論理型プログラミング言語(2):Prolog入門
(課題:Prologを用いたプログラミング課題を行う)
Prologを用いて簡単なプログラミングができる.
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミングプログラミング言語は計算モデルによって分類されることを説明できる。4後1
主要な計算モデルを説明できる。4後1,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
システムプログラムコンパイラの役割と仕組みについて説明できる。4後2,後3

評価割合

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