情報科学部Faculty of Computer and Information Sciences
OTR100KA-CS-197(その他 / Others 100)プロジェクト(春)Project
日高 宗一郎Soichiro HIDAKA
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2023 |
授業コードClass code | J0607 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 春学期授業/Spring |
曜日・時限Day/Period | 金3/Fri.3 |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | 2~3 |
単位数Credit(s) | 1 |
備考(履修条件等)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 | |
選択・必修Optional/Compulsory | |
カテゴリー(2022年度以降入学者)Category (2022~) | |
カテゴリー(2021年度以前入学者)Category (~2021) | |
カテゴリーCategory |
専門教育科目 専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
Through programming, partial implementation of interpreters depending on the grade and interests of the participants, synchronization between data by bidirectionalizing transformations, improvement of exiting implementations --- of a simple domain specific language for data transformations, the participants learn functional programming and consistency maintenance among data. Participants will also touch on how to construct robust infrastructure software.
Besides attending this course, students are expected to read the relevant chapter(s) of the text, implement and report progress of chosen themes, prepare interim and final presentations.
Students will be studying one hour for a class.
Final grade will be calculated based on, but not limited to, term-end submissions (report (50%), program (50%)), with prerequisites of having presented at the in-class interim and final presentation sessions, completion of in-class exercises as well as active in-class contributions.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
主にデータ変換を目的とした関数型の簡単な領域特化言語について、習熟度や興味に応じたプログラム記述、関数型言語による処理系(インタープリタ)の部分的実装、変換の双方向化によるデータ間の一貫性保持、既存の実装の改善等を通して、関数型言語のプログラミングや、データの一貫性保持等の概念を修得する。
到達目標Goal
主にデータ変換を目的とした関数型の簡単な領域特化言語について、プログラム記述、関数型言語による処理系(インタープリタ)の部分的実装、変換の双方向化によるデータ間の一貫性保持、既存の実装の改善等を通して、関数型言語のプログラミングや、データの一貫性保持等の概念を修得し、ロバストな基盤ソフトウェア構築法の考え方の一つにも触れる。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
情報科学部ディプロマポリシーのうち「DP3-1」と「DP4-3」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
前掲の目標にゼミ形式で取り組む。
データ変換言語としては簡単なリスト変換言語の他、グラフ問い合わせ言語やtree構造の同期のための領域特化言語等を取り上げることも可能である。言語の実装のための言語(メタ言語)としてはOCamlを予定しており、そのインストールを通して、言語処理系開発環境の整え方や、研究環境構築の方法論も扱う。
座学中心の授業の後テーマ選択を行い、各自実装に取り組み、成果発表の機会を設け、フィードバックする。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
第1回[対面/face to face]:説明会
プロジェクトの説明を行う
第2回[対面/face to face]:OCaml(1)
OCaml による言語処理系(インタープリタ)開発についての講義
第3回[対面/face to face]:OCaml(2)
OCaml による言語処理系(インタープリタ)開発についての講義
第4回[対面/face to face]:OCaml(3)
OCaml による言語処理系(インタープリタ)開発についての講義
第5回[対面/face to face]:データ変換言語(1)
データ変換言語についての講義
第6回[対面/face to face]:データ変換言語(2)
データ変換言語についての演習
第7回[対面/face to face]:開発環境構築
OCamlによる開発環境の設定
第8回[対面/face to face]:テーマ決定
既存テーマや各自の関心に基づくテーマから選定を行う
第9回[対面/face to face]:予備開発
簡単なサンプルプログラムの動作確認
第10回[対面/face to face]:進捗報告(1)
選定したテーマに各自取り組み進捗を報告する
第11回[対面/face to face]:進捗報告(2)
選定したテーマに各自取り組み進捗を報告する
第12回[対面/face to face]:進捗報告(3)
選定したテーマに各自取り組み進捗を報告する
第13回[対面/face to face]:進捗報告(4)
選定したテーマに各自取り組み進捗を報告する
第14回[対面/face to face]:成果発表およびレポート作成
履修者によるプロジェクトの成果報告
プロジェクトへの取り組みをまとめたレポートの作成準備
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
参考文献等の予習、選択したテーマに関する実装やレポート課題、成果発表準備などへの取り組み
本授業の準備・復習時間は、計1時間を標準とします。
テキスト(教科書)Textbooks
浅井健一 「プログラミングの基礎」サイエンス社 2007年2月
参考書References
OCamlについては何でも良いが、
五十嵐淳 「プログラミング in OCaml〜関数型プログラミングの基礎からGUI構築まで〜」技術評論社 2007年11月
などがある。
他はガイダンスや講義中に指示する。
成績評価の方法と基準Grading criteria
授業内の課題の提出を含めた積極的な参加と講義内の中間、最終成果発表を評価の前提とし、最終レポート(本文50%,プログラム50%)で総合的に判断する。
学生の意見等からの気づきChanges following student comments
プロジェクトに、より直結した資料等情報の提供。
演習時間の確保。
学生が準備すべき機器他Equipment student needs to prepare
プログラム開発やWeb上の資料の閲覧、レポート執筆のための貸与パソコン