広島大学シラバス

シラバスTOPへ
English
年度 2018年度 開講部局 総合科学部総合科学科
講義コード ANM10001 科目区分 専門教育科目
授業科目名 プログラム言語論
授業科目名
(フリガナ)
プログラムゲンゴロン
英文授業科目名 Programming Language
担当教員名 森本 康彦
担当教員名
(フリガナ)
モリモト ヤスヒコ
開講キャンパス 東広島 開設期 2年次生   後期   4ターム
曜日・時限・講義室 (4T) 火5-8:総C605
授業の方法 講義 授業の方法
【詳細情報】
講義中心に行う.講義では主にパワーポイントのスライドやアニメーションを活用し,
視覚的に理解しやすいように工夫しています.
 
単位 2 週時間   使用言語 J : 日本語
学習の段階 2 : 初級レベル
学問分野(分野) 25 : 理工学
学問分野(分科) 25 : 情報科学
対象学生 学部2年生以上
授業のキーワード 形式言語理論,オートマトン,関係代数,データベース 
教職専門科目   教科専門科目  
プログラムの中での
この授業科目の位置づけ
計算することとは何か,言語を理解することとはどういうことなのかを理解することで,世の中の計算機がなぜこのような仕組みで構成されているのかを理解できます.情報科学分野の基本必須科目です.言語学,認知科学,教育学とも関連深い科目です.講義の終盤では,ビッグデータやIoT時代で必須の情報検索技術を実習ととおして学びます.(終盤の内容は,旧「データマネジメント」という講義のダイジェスト版です.) 
到達度評価
の評価項目
総合科学プログラム
(知識・理解)
・当該の個別学問体系の重要性と特性、基本となる理論的枠組みへの知識・理解
・個別学問体系の密接な相互関係とその重要性を認識するうえでの必要な知識・理解
(総合的な力)
・柔軟な発想と構想力のもとに、課題を考察するために必要な知識・理解と能力・技能を組合せ、主体的に研究する能力 
授業の目標・概要等 我々が日常生活で使用している「日本語」,「英語」などの言語は人間同士がコミュニケーションを行うための重要なツールです.一般的に「言語」とは伝えたい何かを他者に伝えるためのコミュニケーションツールですが,そのなかでプログラム言語は,我々,人間の「指示」をコンピュータに伝えるために利用されているものです.コンピュータは人間が与えた「指示」に従って動作するが,通常,その「指示」はプログラム言語で記述されています.本講義では人間とコンピュータとの誤解ないコミュニケーションのために必要なプログラミング言語の基本概念,および,プログラム言語で記述された「指示」が,コンピュータの中でどのように処理されるかを解説してゆきます.また,(プログラム言語にとどまらず)「言語」一般に関する理論的考察を形式言語理論の基本概念をふまえて解説してゆきます.また,講義の終盤では,ビッグデータやIoT時代で必須の情報検索技術を実習ととおして学びます. 
授業計画 1. ガイダンス(授業の概説,進行計画.その他,最近のプログラム言語に関する面白い話題)
2. 言語理論慨説(コミュニケーション手段としての言語の持つべき機能とは)
3. 有限オートマトン(1)(簡単な言語認識装置とそれを用いた正規言語を認識するすくみ)
4. 有限オートマトン(2)(オートマトンの決定性,非決定性,最小化など)
5. 正規表現・正規言語
6. プッシュダウンオートマトン(文脈自由言語を認識できる言語認識装置)
7. 線形拘束オートマトンとチューリング機械(文脈依存言語を認識できる言語認識装置)
8. 文法
9. 文法と言語理論(文法と言語の表現力との関係とチョムスキー言語階層)
10. プログラム言語とコンパイラ(プログラムに書かれた内容をコンピュータはいかにして理解するか)
11. 中間テスト
12. 関係モデルと関係代数
13. 関係データベース演習(1)
14. 関係データベース演習(2)
15. 関係データベース演習(3)


中間試験(11月)期末試験(2月)以外に,講義後半に実践的な演習を実施する予定です.

番号は開講順序の目安で,実際の講義はカレンダー(学年歴)と学習効果を考慮してその内容を決めてゆきます.各年度の授業計画の詳細と講義資料はこの講義のホームページに公開する予定です.
 
教科書・参考書等 第1回目の講義で指示する.また講義の中で適宜参考書を提示する.
また,毎回の講義で参考となる資料をプリントとして配布する. 
授業で使用する
メディア・機器等
各回の講義時にプリントを配布します.
また,講義では主にパワーポイントのスライドやアニメーションを活用し,
視覚的に理解しやすいように工夫しています.
 
予習・復習への
アドバイス
予習の目安:
各回の教科書,参考書の関連項目に目を通しておく程度の予習をしておくと良い.
復習の目安:
1-5. 例題や紹介する練習問題を自分自身で解いてみること.各オートマトンの動作の様子は紙上で実際に模倣して理解を深めてください.
6. 日本語,プログラム言語,ファイル検索やインターネット検索などに使うパターンマッチなどの身の回りの言語それぞれについて,機能と表現力はどうなっているのか各自でよく考えてみること.
7. コンパイルする意味やその仕組みを中心に考えてみてください.
8-9. 情報活用基礎・演習,コンピュータ基礎論などで学んだ関連項目でこの授業に関わることはよく復習しておくこと.情報量,論理式,論理演算の例題を自分で解いてみること.
10-11,13,15. CPUとメモリの連携の様子を紙上で実際に模倣して理解を深めてください.例題として紹介する計算例のサンプルプログラムを実際にコンピュータで動作させてみるとさらに理解は深まります.
12-14. 計算機実験,コンピュータプログラミング等でプログラミング経験のある人はそれをよく復習してください.プログラム経験のない人はこの機会に簡単なプログラムを書いてみるとよい.
 
履修上の注意
受講条件等
特になし. 
成績評価の基準等 「中間試験」45%
「期末試験・演習」35%
「毎回の授業に対する質問状況など」20% 
メッセージ 学習の動機付けとして基本情報技術者等の資格の取得も検討してみてください.プログラミングの経験は講義内容の理解にとって必須ではありませんが,情報系の実験・演習あるいはコンピュータプログラミング等を受講して実際にプログラムを書くことによりさらに理解が深まります. 
その他   
すべての授業科目において,授業改善アンケートを実施していますので,回答に協力してください。
回答に対しては教員からコメントを入力しており,今後の改善につなげていきます。 
シラバスTOPへ