学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2024 |
授業コードClass code | J0501 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 春学期集中/Intensive(Spring) |
曜日・時限Day/Period | 集中・その他/intensive・other courses |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | 2~4 |
単位数Credit(s) | 4 |
備考(履修条件等)Notes | |
他学部公開科目Open Courses | |
他学部公開(履修条件等)Open Courses (Notes) | |
グローバル・オープン科目Global Open Courses | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | ○ |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | 【(情報科学部所属以外の学生向け)「成績優秀者の他学部科目履修制度」の履修登録の流れ】 (1) 受講希望者 (受講検討中の者も含む) は、初回の授業までに「申請フォーム(https://forms.gle/ECvwxVe2NcxmrbTK9)」から履修したい科目を申請してください。 (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 |
【Outline (in English)】
[Course outline]
Students learn the basic skills for writing programs in Programing Language C/C++. They not only study the grammar of Programing Language C/C++, but also study the memory management and program execution architecture of current computer system.
[Learning Objectives]
Students expected to understand core concepts and functionality of C and C++. They also expected to build program using C-level core functionalities, such as control flow, function call, data structure and pointer.
[Learning activities outside of classroom]
Students will be expected to spend eight hours to pre/post study of the course including programming the homework and next week's pre-studying contents.
[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; term-end examination (70%), and homework (30%).
【Default language used in class】
日本語 / Japanese
【授業の概要と目的(何を学ぶか) / Outline and objectives】
この授業ではプログラミング言語C/C++を学び、これらを用いて簡単なプログラム作成を行う。ここでは単にプログラムを書くことだけが目的ではなく、C/C++によるプログラミングで重要となるプログラム実行時にどのようにメモリが利用されているかを理解することを重視する。コンピュータの仕組みを考えながら、プログラムがどのように動作しているのかを考え、正しく動作するプログラムとは何かを判断できるようになることをめざす。
【到達目標 / Goal】
・インタープリタ言語とコンパイラ言語の違いを説明できる。
・C/C++ のソースコードとコンパイルの関係を説明できる。
・if文、for文を使った C/C++プログラムを作成することができる。
・関数を使った C/C++ プログラムを作成することができる。
・構造体を使った C/C++ プログラムを作成することができる。
・変数とポインタ、メモリアドレスの関係を説明することができる。
【この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連) / Which item of the diploma policy will be obtained by taking this class?】
情報科学部ディプロマポリシーのうち「DP4-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. )
この講義はオンデマンド形式で実施する。週ごとに開示される講義映像を視聴し、その中で提示されている演習のプログラムを各自で動かして学習内容を理解する。そのうえで課題のプログラミングに取り組み、〆切までにそのプログラムを提出する。課題の提出・チェックや質問の方法については、CIS Moodle経由で指示する
【アクティブラーニング(グループディスカッション、ディベート等)の実施 / Active learning in class (Group discussion, Debate.etc.)】
あり / Yes
【フィールドワーク(学外での実習等)の実施 / Fieldwork in class】
なし / No
【授業計画 / Schedule】
授業形態 / methods of teaching:オンライン/online
※各回の授業形態は予定です。教員の指示に従ってください。
回 / No. | 各回の授業形態予定 / methods of teaching | テーマ / Theme | 内容 / Contents |
---|---|---|---|
第1回 | オンライン/online | C/C++言語の導入 | コンパイラとインタープリタの違いを学ぶ C/C++の開発環境を理解する 最初のプログラムを作成し、実行させる |
第2回 | オンライン/online | C/C++言語の基本形 | インクルードファイルの書き方を学ぶ main 関数の書き方を学ぶ 変数宣言について学ぶ |
第3回 | オンライン/online | 標準入出力 | C言語の出力方法であるprintf の使い方を学ぶ C++言語の標準入出力である cin, cout の使い方を学ぶ |
第4回 | オンライン/online | 算術演算子 | C/C++における加減乗除の方法を学ぶ 演算子の優先順位について理解する |
第5回 | オンライン/online | 条件分岐 | if else を用いた条件分岐のあるプログラムの書き方を学ぶ switch 文について学ぶ |
第6回 | オンライン/online | 繰り返し制御 | for, while を使った繰り返し方法を学ぶ break, continueにより繰り返しの中断や継続を行う方法を学ぶ |
第7回 | オンライン/online | 文字列と配列 | 配列の宣言と利用方法を学ぶ 配列とメモリマップの関係について学ぶ 配列と文字列の関係を学ぶ |
第8回 | オンライン/online | 変数とメモリ | 変数とメモリの関係について学ぶ &演算子によりメモリアドレスを確認する方法を学ぶ sizeof演算子により変数領域の大きさを求める方法を学ぶ |
第9回 | オンライン/online | 関数 | 関数定義と関数呼び出しの方法を学ぶ プロトタイプ宣言について学ぶ |
第10回 | オンライン/online | 変数のスコープ | 変数のスコープについて学ぶ ローカル変数、グローバル変数について学ぶ 変数のメモリ割り当て方法の違いについて学ぶ |
第11回 | オンライン/online | 構造体 | 構造体の定義方法と参照方法を学ぶ 構造体とメモリの関係を学ぶ |
第12回 | オンライン/online | ポインタ | ポインタとメモリアドレスの関係を学ぶ ポインタ変数の使い方を学ぶ ポインタと配列の関係を学ぶ ポインタを使った構造体の参照方法を学ぶ |
第13回 | オンライン/online | ポインタ演算 | ポインタの加算について学ぶ ポインタを引数にしたcall by reference による関数呼び出しの方法を学ぶ |
第14回 | オンライン/online | ファイル入出力 | ファイルのオープンとクローズ方法を学ぶ ファイルへの値の書き出し方法を学ぶ ファイルからの値の読出し方法を学ぶ |
【授業時間外の学習(準備学習・復習・宿題等) / Work to be done outside of class (preparation, etc.)】
本授業の準備・復習等の授業時間外学習は、各週につき8時間を標準とする。
映像資料で学習し演習プログラムを実行した上で、課題に取り組み〆切までに提出する。
【テキスト(教科書) / Textbooks】
講義テキストは CIS Moodle より配布するが、C++について網羅的に記載された書籍を持っておくことを強く推奨する(参考書に挙げた書籍以外でも好みに合ったもので構わない)
【参考書 / References】
柴田望洋, “新 明解 C++ 入門”, ソフトバンククリエイティブ. 2017. ISBN: 978-4-7973-9463-4
柴田望洋, “新・明解C言語 入門編”, ソフトバンククリエイティブ. 2014. ISBN: 978-4-7973-7702-6
【成績評価の方法と基準 / Grading criteria】
講義映像の視聴と全ての必須課題の提出は成績評価の前提条件となる。
期末試験を実施し、理解度を評価する。
成績は、期末試験を70%、課題提出を30%で評価する。
【学生の意見等からの気づき / Changes following student comments】
特になし。
【学生が準備すべき機器他 / Equipment student needs to prepare】
貸与PCを利用してプログラミングを行う
【その他の重要事項 / Others】
本講義の内容は、担当教員の企業研究所での実務経験により得た知見に基づき構成している