到達目標
本講義の到達目標は以下の通り
1.プログラム言語の種類と用途を説明できる.
2.プログラムの翻訳のための構文図、BNF表記手法を説明できる.
3.簡易数式計算機を対象にしたコンパイル課程を説明できる.
4.講義中の発表やレポート作成と共に簡易数式計算機を実現するためのコンパイラプログラムを構築し,その手法や過程と成果および考察を整理して報告書にまとめることができる(C2-4).
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1
プログラム言語の種類と用途を説明できる。 | □プログラム言語の名前と用途および利用例について説明できる。 | □プログラム言語の名前と用途について説明できる。 | □プログラム言語の名前と用途について説明できない。 |
評価項目2
プログラムの翻訳のための構文図、BNF表記手法を説明できる。 | □翻訳技術の基本となる定義およびパーザ処理をBNFおよび構文図で表記できる。 | □翻訳技術の基本となる定義をBNFおよび構文図で表記できる。 | □翻訳技術の基本となる定義をBNFおよび構文図で表記できない。 |
評価項目3
簡易数式計算機を対象にしたコンパイル課程を説明できる。 | □コンパイル過程を具体例をあげて説明できる。
□簡易数式計算式をBNFおよび構文図で表現でき,パージングを行える。
□数式のコンパイルのため字句解析,構文解析,解析木,中間コード,アセンブリコードに変換する具体的な課程を例をあげて正確に説明できる。 | □コンパイル過程を説明できる。
□簡易数式計算式をBNFおよび構文図で表現できる。
□数式のコンパイルのため字句解析,構文解析,解析木,中間コード,アセンブリコードに変換する具体的な課程を説明できる。 | □コンパイル過程を説明できない。
□簡易数式計算式をBNFおよび構文図で表現できない。
□数式のコンパイルのため字句解析,構文解析,解析木,中間コード,アセンブリコードに変換する具体的な課程を説明できない。 |
評価項目4
講義中の発表やレポート作成と共に簡易数式計算機を実現するためのコンパイラプログラムを構築し、その手法や過程と成果および考察を整理して報告書にまとめることができる(C2-4)。 | □単元毎のレポートを正確にそして丁寧に作成し期限内に提出できる
□講義中の練習課題を解き、多数回発表できる
□簡易数式計算機を実現するためのコンパイルプログラムを構築でき、その手法を説明できる | □単元毎のレポートを作成し提出できる。
□講義中の練習課題を解き、発表できる。
□簡易数式計算機を実現するためのコンパイルプログラムを構築できる。 | □単元毎のレポートを作成し提出できない
□講義中の練習課題を解き、発表できない
□簡易数式計算機を実現するためのコンパイルプログラムを構築できない |
学科の到達目標項目との関係
実践指針 (C2)
説明
閉じる
実践指針のレベル (C2-4)
説明
閉じる
【プログラム学習・教育目標 】 C
説明
閉じる
教育方法等
概要:
プログラム言語は、人間の思考をコンピュータが理解できる言語で表現するための言語であり、コンピュータによる制御の基本となる。本講義では、特定のプログラム言語に依存せず、プログラムとは何か、プログラム言語とは何か、プログラムはどのように動くか、そして、プログラム翻訳における解析処理について講義を行う。また、プログラム言語の種類と用途と変遷についても述べる。工学的にはシステム開発あるいは新たな言語の開発などプログラミングに関する基礎となる。さらに演習として、仮想コンピュータ上で動作する簡単な数式プログラムをコンパイルし、実行するコンパイラの動作をトレースしてコンパイル過程を理解する。
この科目は企業でNCプログラムの解析ソフトウェア開発を担当していた教員がその経験を活かし,プログラム言語の構成からコンパイルおよび実装について講義形式で授業を行うものである。
授業の進め方・方法:
授業は講義を中心に行うが、講義中には練習課題を出し、受講生に回答してもらう。なおこの回答の回数は、受講態度に反映させる。また毎回の講義の後、レポート課題を出すことで、各講義の理解度を深める。さらに、講義の最後では括弧やべき乗、単項マイナスなどにも対応可能な「数式コンパイラ」のソースコードの解析を行い、動作や構成について理解し、最終レポートとしてまとめる。なお受講にあたってはC言語のプログラミング経験を有する方が理想であるが、無くても理解できる内容としている。
注意点:
1.この科目は学修単位科目であり、1単位あたり15時間の対面授業を実施します。併せて1単位あたり30時間の事前学習・事後学習が必要となります。
2.評価は課題20%、講義態度20%、定期試験60%とします。なお課題の提出は各課題100点で平均値の1/5の20点とし、授業態度は講義中における態度・発表の回数で判定します。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
プログラムとは何か |
ガイダンスとプログラム言語の必要性を説明できる。
|
2週 |
プログラム言語の必要性と記号化 |
プログラム言語とは何か,その位置付けを説明できる。
|
3週 |
プログラム言語の種類と用途 |
プログラム言語の種類,用途,歴史を調べ,主な言語の違いを説明できる。
|
4週 |
プログラム言語文法 |
BNFと構文図について説明できる。
|
5週 |
|
プログラムの構造について説明できる。
|
6週 |
プログラムの翻訳 |
コンパイラの位置づけとプログラムの構成要素全体について説明できる。
|
7週 |
プログラムの翻訳技術 |
字句解析とパージングについて説明できる。
|
8週 |
|
逆ポーランド記法と解析木について説明できる。
|
2ndQ |
9週 |
|
逆ポーランド記法に基づく計算手法について説明できる。
|
10週 |
|
構文解析について説明できる。
|
11週 |
|
コード生成について説明できる。 最適化について説明できる。
|
12週 |
プログラムの性能と品質 |
プログラム言語の性能と品質,稼働率について説明できる。
|
13週 |
数式言語のコンパイラ作成演習 |
簡単な演算を実行可能な言語について与えられた仕様を理解できる.
|
14週 |
|
簡単な演算を実行可能な言語についてBNF,構文木,パーザープログラムを作成し,報告書にまとめることができる.
|
15週 |
到達度確認 |
到達度チェックとアンケート
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 試験 | 発表・レポート | 相互評価 | 態度(発表回数) | ポートフォリオ | その他 | 合計 |
総合評価割合 | 60 | 20 | 0 | 20 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
専門的能力 | 60 | 20 | 0 | 20 | 0 | 0 | 100 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |