理工学部Faculty of Science and Engineering
COT300XE(計算基盤 / Computing technologies 300)プログラミング言語理論・設計Programming language theory and design
辻野 嘉宏Yoshihiro TSUJINO
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 理工学部Faculty of Science and Engineering |
添付ファイル名Attached documents | |
年度Year | 2021 |
授業コードClass code | H6067 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 集中・その他/intensive・other courses |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | |
配当年次Grade | |
単位数Credit(s) | |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
カテゴリー<理工学部>Category |
応用情報工学科 学科専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
We think everything using our language such as Japanese or English. In programming, it is true. This lecture presents the elements of imperative languages such as C language and their relationship to programming and software design. Moreover, other types of languages, that is, functional languages and logic languages, and some concepts, that is, object orientation and parallel/concurrent processing, are introduced.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
言語はものの考え方の枠組みを決める。それはプログラミング言語においても同じである。本講義では、まずC言語等の一般的な命令型言語の要素がどのようにソフトウェア設計及びプログラミングと関連しているかを理解する。また、命令型言語以外にもいろいろなプログラミング言語があることを学び、それらの言語の特徴を理解する。
到達目標Goal
(1)プログラミング言語の役割を理解する。
(2)命令型言語の基礎概念を理解し、ソフトウェア設計開発法との関連を説明できる。
(3)オブジェクト指向概念の特徴を説明できる。
(4)関数型言語の基礎概念を理解し、その構成要素と特徴を説明できる。
(5)論理型言語の基礎概念を理解し、その構成要素と特徴を説明できる。
(6)並行処理の基礎概念を理解し、その性質を説明できる。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち、「DP1」と「DP2」と「DP4」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
配付資料に基づいた講義形式で行う。
講義期間中数回の課題レポートを課し、その後の講義中で解説を行うことで理解を深める.
課題等の提出等の仕方は学習支援システムまたは授業中に別途指示する。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
なし / No
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
※各回の授業形態は予定です。教員の指示に従ってください。
第1回:プログラミング言語とは
高水準プログラミング言語の役割と特徴。アセンブリ言語との比較。
第2回:ソフトウェア設計法とプログラミング言語(1)
プログラミングの難しさ、プログラミングスタイル、それらに関連する命令型プログラミング言語の機能。
第3回:ソフトウェア設計法とプログラミング言語(2)
構造化プログラミング、段階的詳細化と、それらに関連する命令型プログラミング言語の機能。
第4回:ソフトウェア設計法とプログラミング言語(3)
手続きと関数、引数、スコープルール、モジュール化と、それらに関連する命令型プログラミング言語の機能。
第5回:抽象データ型
型理論、処理とデータ、情報隠蔽、モジュール化プログラミング。
第6回:オブジェクト指向
クラスとオブジェクト、継承、多態。オブジェクト指向分析/設計とオブジェクト指向プログラミング。UML。
第7回:実際のオブジェクト指向言語(1)
C++におけるクラスとオブジェクトの実際。
第8回:実際のオブジェクト指向言語(2)
C++における継承、多態の実際。
第9回:関数型言語(1)
関数、リスト構造。Scheme。
第10回:関数型言語(2)
高階関数。データの抽象化と関数の抽象化。
第11回:論理型言語(1)
関係、述語、単一化。
第12回:論理型言語(2)
Prolog。
第13回:並行処理(1)
プロセス間の関係。共有メモリ、メッセージパッシング、同期、クリティカルセクションと相互排除。
第14回:並行処理(2)
Adaにおける並行処理記述法。
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
毎回復習のために2時間程度の学習時間が必要である。また、課題レポートが課されたときにはさらに1,2時間程度の学習時間が必要となる。その他、最終レポート提出のために学習時間が必要である。
テキスト(教科書)Textbooks
教科書なし。配付資料をWebを通じて配布する。
参考書References
参考書なし。関連する書籍は講義中に紹介する。
成績評価の方法と基準Grading criteria
【評価方法】講義途中に課す課題レポート(20%)と期末レポート(80%)で評価する.と平常点(50%)とプログラム課題(50%)による
【評価基準】本科目において設定した達成目標を60%以上達成している学生を合格とする。
学生の意見等からの気づきChanges following student comments
なし
その他の重要事項Others
必要事項は学習支援システムを通じて連絡する。
学習支援システムを通じた連絡がないか、確認怠らないようにすること。