情報科学部Faculty of Computer and Information Sciences
COT211KA-CS-201(計算基盤 / Computing technologies 200)プログラミング1(C/C++)(再)Programming 1(C/C++)
廣津 登志夫、佐藤 周平Toshio HIROTSU, Shuhei SATO
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2024 |
授業コードClass code | J0501-R |
旧授業コード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 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)
[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++ プログラムを作成することができる。
・変数とポインタ、メモリアドレスの関係を説明することができる。
授業で使用する言語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
※各回の授業形態は予定です。教員の指示に従ってください。
第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
本講義の内容は、担当教員の企業研究所での実務経験により得た知見に基づき構成している