情報科学部Faculty of Computer and Information Sciences
COT211KA-CS-201e(計算基盤 / Computing technologies 200)プログラミング演習1(C/C++)Programming Mini-Projects 1 (C/C++)
廣津 登志夫Toshio HIROTSU
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | J0509 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 月2/Mon.2 |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | ○ |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) |
(1) 受講希望者 (受講検討中の者も含む) は、情報科学部学部Googleフォーム(https://forms.gle/ECvwxVe2NcxmrbTK9)で初回講義前までに希望申請をしてください。(※以下URLのご案内があるGoogleフォームとは異なるのでご注意ください。) (2) 以下のURLと教育開発支援機構事務局の案内に従って、履修希望の申請を行ってください。 https://www.hoseikyoiku.jp/risyu/index.html (3) 履修取消については、ご自身の所属学部の履修取消期間内に必ず同時に履修削除を行ってください。 |
実務経験のある教員による授業科目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)
[Course outline]
This is an introductory course to understand C/C++ programming Language. With writing middle-scale software using actual development environment, students will deepen their understanding for the scheme and processes of the software development.
[Learning Objectives]
Students expected to build middle-scale program using object-oriented manner.
[Learning activities outside of classroom]
Students will be expected to spend four hours to programm the exams.
[Grading Criteria /Policy]
Attending the class and submission of mandatory exams are prerequisite for the evaluation.
Final grade will be calculated according to the following process; final report (60%), and homework (40%).
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
ある程度規模の大きいプログラムを書くことを通じて、高度なソフトウェアをプログラミングすることに対する理解を深める。プログラミング言語の文法だけではなく、実行環境や開発環境を含めた汎用的なプログラミング環境に慣れ、実際的なプログラミングを学ぶ。
到達目標Goal
前段科目である「プログラミング2(C/C++)」で学んだプログラミング技術を用いて、目的に応じた中規模のソフトウェア(アプリケーション)が作成できるようになること。ソフトウェア開発の考え方や手順を理解ができるようになること。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち「DP2」と「DP4-1」に関連
授業で使用する言語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
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
1[対面/face to face]:導入
開発環境(Cygwin, Linux)の理解
2[対面/face to face]:文書処理プログラミング(1)
「人工無能」の基本インタラクションルーチンとマルチバイト文字の処理
3[対面/face to face]:文書処理プログラミング(2)
汎用アルゴリズムライブラリによるソートの実現
4[対面/face to face]:文書処理プログラミング(3)
n-gramの実現
5[対面/face to face]:文書処理プログラミング(4)
マルコフ連鎖を用いた文生成
6[対面/face to face]:文書処理プログラミング(5)
形態素解析を用いた文生成
7[対面/face to face]:文書処理プログラミング(6)
実装による実効性能の検討
8[対面/face to face]:パズルアプリケーションの実装(1)
基本的なユーザ操作と表示の実装
9[対面/face to face]:パズルアプリケーションの実装(2)
段階的な機能拡張
エラー処理やサイズ等の制約の緩和の実現
10[対面/face to face]:パズルアプリケーションの実装(3)
ソフトウェアの部品化による再実装
11[対面/face to face]:パズルアプリケーションの実装(4)
ライブラリを利用したソフトウェアの改良
12[対面/face to face]:パズルアプリケーションの実装(5)
自動解法とアニメーション表示による高度化
13[対面/face to face]:パズルアプリケーションの実装(6)
Wrapperクラスの設計と実装による発展的改良
14[対面/face to face]:まとめ
講義の演習全体の総括と質問への対応
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
本授業の準備・復習等の授業時間外学習は、各週につき4時間を標準とする。
準備学習として、前段科目であるプログラミング2(C/C++)の内容を復習し、十分に理解を深めておくこと。授業後の学習では、講義中に完了しなかったプログラミング課題およびレポート作成に取り組むこと。
テキスト(教科書)Textbooks
説明資料をオンライン配布する
参考書References
柴田望洋, "新・明解C++入門", ソフトバンククリエイティブ, 2017. ISBN: 978-4-7973-9463-4. (1年秋科目教科書)
柴田望洋, "新・明解C++で学ぶオブジェクト指向プログラミング", ソフトバンククリエイティブ, 2018. ISBN: 978-4-7973-9716-1. (2年春科目教科書)
冨永和人, 権藤克彦, "例解UNIX/Linuxプログラミング教室: システムコールを使いこなすための12講", オーム社, 2018. ISBN: 978-4-274-22210-8.
成績評価の方法と基準Grading criteria
講義への出席と全ての必須課題の提出は成績評価の前提条件となる。
各回で出題するプログラム課題に対する取り組み(40%)、およびレポート課題(60%)から総合的に評価する。
学生の意見等からの気づきChanges following student comments
特になし
学生が準備すべき機器他Equipment student needs to prepare
貸与PCを利用してプログラミングを行う。
対面・オンラインにかかわらず、質問対応には Zoom による画面共有を使用するので、講義での指示に従い Zoom に接続すること。
その他の重要事項Others
プログラミング1(C/C++)、プログラミング2(C/C++)の講義内容を理解していることを前提とする。
本講義の内容は、担当教員の企業研究所での実務経験により得た知見に基づき構成している。