情報科学部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 | 2022 |
授業コードClass code | J0501 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 金1/Fri.1,金2/Fri.2 |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数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) |
(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]
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-3」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
講義は反転学習の形態を取るので、事前学習資料の内容を理解した上で、講義までに演習のプログラムについては各自で動かして動作を確認しておく。講義の最初に事前学習内容の理解度や課題の理解度のアンケートを実施し、事前学習及び課題のフィードバックを行う。講義中は主に課題のプログラミングを行い、TA及び教員により質問等への個別対応を行う。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
第1回[対面/face to face]:C/C++言語の導入
コンパイラとインタープリタの違いを学ぶ
C/C++の開発環境を理解する
最初のプログラムを作成し、実行させる
第2回[対面/face to face]:C/C++言語の基本形
インクルードファイルの書き方を学ぶ
main 関数の書き方を学ぶ
変数宣言について学ぶ
第3回[対面/face to face]:標準入出力
C言語の出力方法であるprintf の使い方を学ぶ
C++言語の標準入出力である cin, cout の使い方を学ぶ
第4回[対面/face to face]:算術演算子
C/C++における加減乗除の方法を学ぶ
演算子の優先順位について理解する
第5回[対面/face to face]:条件分岐
if else を用いた条件分岐のあるプログラムの書き方を学ぶ
switch 文について学ぶ
第6回[対面/face to face]:繰り返し制御
for, while を使った繰り返し方法を学ぶ
break, continueにより繰り返しの中断や継続を行う方法を学ぶ
第7回[対面/face to face]:文字列と配列
配列の宣言と利用方法を学ぶ
配列とメモリマップの関係について学ぶ
配列と文字列の関係を学ぶ
第8回[対面/face to face]:変数とメモリ
変数とメモリの関係について学ぶ
&演算子によりメモリアドレスを確認する方法を学ぶ
sizeof演算子により変数領域の大きさを求める方法を学ぶ
第9回[対面/face to face]:関数
関数定義と関数呼び出しの方法を学ぶ
プロトタイプ宣言について学ぶ
第10回[対面/face to face]:変数のスコープ
変数のスコープについて学ぶ
ローカル変数、グローバル変数について学ぶ
変数のメモリ割り当て方法の違いについて学ぶ
第11回[対面/face to face]:構造体
構造体の定義方法と参照方法を学ぶ
構造体とメモリの関係を学ぶ
第12回[対面/face to face]:ポインタ
ポインタとメモリアドレスの関係を学ぶ
ポインタ変数の使い方を学ぶ
ポインタと配列の関係を学ぶ
ポインタを使った構造体の参照方法を学ぶ
第13回[対面/face to face]:ポインタ演算
ポインタの加算について学ぶ
ポインタを引数にしたcall by reference による関数呼び出しの方法を学ぶ
第14回[対面/face to face]:ファイル入出力
ファイルのオープンとクローズ方法を学ぶ
ファイルへの値の書き出し方法を学ぶ
ファイルからの値の読出し方法を学ぶ
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
本授業の準備・復習等の授業時間外学習は、各週につき8時間を標準とする。
事前学習資料(映像・演習プログラム)について、必ず、講義前に各自で予習した上で演習プログラムを全て動かしておくこと。
講義中に完了しなかった課題は次週までの宿題となる。
テキスト(教科書)Textbooks
柴田望洋, “新 明解 C++ 入門”, ソフトバンククリエイティブ. 2017. ISBN: 978-4-7973-9463-4
参考書References
柴田望洋, “新・明解C言語 入門編”, ソフトバンククリエイティブ. 2014. ISBN: 978-4-7973-7702-6
成績評価の方法と基準Grading criteria
講義への出席と全ての必須課題の提出は成績評価の前提条件となる。
期末試験を実施し、理解度を評価する。
成績は、期末試験を70%、課題提出を30%で評価する。
学生の意見等からの気づきChanges following student comments
二年間実施した反転学習(事前に説明・演習を行い、講義の多くを課題プログラミングに充てる方式)について、学習効率や理解の面で良好な反応であったので、対面・オンラインに関わらず今年度も同じ形態で講義を進める。予習、講義中・GBCの質問をフルに活用して、効果的に学習を進めて欲しい。
学生が準備すべき機器他Equipment student needs to prepare
貸与PCを利用してプログラミングを行う
対面・オンラインにかかわらず、質問対応には Zoom による画面共有を使用するので、講義での指示に従い Zoom に接続すること
その他の重要事項Others
本講義の内容は、担当教員の企業研究所での実務経験により得た知見に基づき構成している