授業内容・計画(詳細)の情報


ページを読み終えましたら、ブラウザを終了させてください。

【基本情報】
2018年度 春学期  
授業科目名 オブジェクト指向プログラミング
曜日 時限 火-2
テーマ C++言語によるプログラミングの応用
キーワード プログラミング C++ オブジェクト指向


【授業要旨または授業概要】
 
 この授業で取り扱うプログラミング言語はC++で,プログラミング基礎B(C++言語相当)の次のステップである。
 この授業では、データ構造・アルゴリズムの活用・オブジェクト指向の基礎を中心とした応用的なプログラミングスキルの習得を目標とする。内容は、データ構造(多次元配列、リスト)、サブルーチン(関数)処理の活用、ファイル入出力、構造体、ポインタ等、クラスの利用を学習する。
 実習では、具体的な処理目標を設定して上記の内容を組み合わせた実践的なプログラムの作成を行う。

 C++言語は,C言語をベースにオブジェクト指向などの様々な機能拡張を行ったプログラ
ミング言語である.非常に多機能かつハードウェアを詳細にコントロールできてプログラ
ムを高速に動かせる特徴を持つ.
 これらの特徴から,本格的なゲームソフト,組込み機器でのアプリケーションソフトウェ
ア,デバイスドライバなどの開発では必須のプログラミング言語として位置付けられてい
る.他のプログラミング言語と比較して学習しにくいと言われるが,他言語の特徴をほと
んどを含むので,習得後は他言語での学習が容易になる.

 この授業では,C++言語の応用的な内容を解説・実習することで,実践的なプログラミン
グができるようになることを目標とする.
 主な内容は,下記の分野となる.
 ・C++基本文法の復習
 ・制御構文の応用
 ・配列
 ・ポインタ
 ・構造体
 ・関数
 ・オブジェクト指向
 ・ライブラリの利用

 開発ツールとして, Windows上のVisual StudioおよびWeb上の開発環境を使う.開発ツー
ルの操作方法の習得もこの授業の内容に含まれる.


【学修の到達目標】
(1) 制御構文を使って,プログラムの流れを記述できる(自ら考える力,情報処理力)
(2) 配列や構造体を用いて、効率的なデータ入出力ができる(自ら考える力,情報処理力)
(3) ポインタを理解して,プログラム中で使いこなせる(自ら考える力,情報処理力)
(4) 関数を用いて,処理の分割と効率化を実現できる(自ら考える力,情報処理力)
(5) クラスを用いて,オブジェクト指向プログラミングできる(自ら考える力,情報処理力)
(6) ライブラリを用いて,実用的なプログラムを作成できる(成し遂げ力,情報処理力)
上記の到達目標の評価基準については、添付資料を参照のこと
添付ファイル:applied-cpp-matrix.pdf

【授業計画】
◆スケジュール
第1回: ガイダンス,学習環境の説明
第2回: C++言語の基本1(データと入出力,演算)
第3回: C++言語の基本2(制御構文,配列)
第4回: ポインタ1(変数とアドレス)
第5回: ポインタ2(配列,文字列でのポインタ)
第6回: 構造体1(構造体の基本)
第7回: 構造体2(ビットフィールド,共用体)
第8回: 関数1(関数の定義と呼び出し)
第9回: 関数2(ポインタ・配列・構造体による引数の利用)
第10回: オブジェクト指向1(クラスの基本)
第11回: オブジェクト指向2(クラスの詳細)
第12回: オブジェクト指向3(クラスの継承)
第13回: 入出力の応用(ファイル入出力等)
第14回: 標準テンプレートライブラリ(STL)の利用
◆予習・復習
第1回: ガイダンス,学習環境の説明
事前学習:シラバスを確認する。
事後学習:授業支援システムの操作を再確認しておく。

第2回: C++言語の基本1(データと入出力,演算)
事前学習:型の種類について再確認する。
事後学習:キャスト演算子の活用についてまとめる。

第3回: C++言語の基本2(制御構文,配列)
事前学習:繰り返し処理について再確認しておく。
事後学習:for文の応用的な使い方についてまとめる。

第4回: ポインタ1(変数とアドレス)
事前学習:アドレスについて調べておく。
事後学習:ポインタの必要性についてまとめる。

第5回: ポインタ2(配列,文字列でのポインタ)
事前学習:NULL文字について調べておく。
事後学習:ポインタによる部分文字列操作ができるようにする。

第6回: 構造体1(構造体の基本)
事前学習:変数・配列と構造体に違いについて調べておく。
事後学習:typedefによる構造体の定義を記述できるようにする。

第7回: 構造体2(ビットフィールド,共用体)
事前学習:ビットフィールドの必要性について調べておく。
事後学習:共用体による基数変換のしくみを説明できるようにする。

第8回: 関数1(関数の定義と呼び出し)
事前学習:引数と戻り値について調べる。
事後学習:void型についてまとめておく。

第9回: 関数2(ポインタ・配列・構造体による引数の利用)
事前学習:引数でのポインタの利用について調べる。
事後学習:参照についてまとめておく。

第10回: オブジェクト指向1(クラスの基本)
事前学習:クラスと構造体の違いについて調べておく。
事後学習:クラスの定義とインスタンス化の流れをまとめる。

第11回: オブジェクト指向2(クラスの詳細)
事前学習:オブジェクト指向の特徴を調べておく。
事後学習:関数のオーバーロードについてまとめる。

第12回: オブジェクト指向3(クラスの継承)
事前学習:継承によって何が改良されるか考えてみる。
事後学習:基本クラスと派生クラスの記述ができるようにする。

第13回: 入出力の応用(ファイル入出力等)
事前学習:標準入出力とファイル入出力の違いを調べておく。
事後学習:テキストファイルの入出力手順をまとめる。

第14回: 標準テンプレートライブラリ(STL)の利用
事前学習:標準ライブラリに足りない要素を調べる。
事後学習:STLの呼び出しかたと活用についてまとめる。
◆集中授業の期間
 

【履修上の注意点】
・この授業は「プログラミング基礎B」の後続科目であるが、先修条件はない。
・「ICT入門」を履修済みであることが望ましい。
・「プログラミング基礎B」単位取得済みと同程度の知識とプログラミング経験があることを前提として授業を進める。
・ガイダンス時に,抽選または小テストで選抜を行う場合がある。

【成績評価の基準および方法】
成績は次の比率で評価する.
定期試験:60%,小テスト:20%,課題:20%
総合点を100点満点として,90点以上でS, 80点以上でA,70点以上でB,60点以上で
C,60点未満をEとする.ただし,出席回数が授業回数の2/3に満たない,または定
期試験を未受験の場合は/(評価なし)とする.

規定により、成績発表前(授業期間終了後や定期試験終了後)に、担当教員に対して
点数や成績を問い合わせても回答できない.


【教科書・参考書】
区分 書名 著者名 発行元 定価
参考文献 コーディングを支える技術 西尾 泰和 技術評論社 \2,470
参考書 やさしいC++ 第4版 高橋 麻奈 ソフトバンククリエイティブ \2,808
参考書 プログラミング言語C++第4版 ビャーネ・ストラウストラップ (著), 柴田 望洋 (訳) ソフトバンククリエイティブ \9,504
参考書 ロベールのC++入門講座 ロベール 毎日コミュニケーションズ \4,104
参考書 標準講座C++ 新装版 ハーバート・シルト(著), 柏原正三(監修) 翔泳社 \5,184


【その他の教材】
指定の教科書は無い.
テキストおよび補足資料は、授業支援システム上で公開する.


【担当教員への連絡方法】
質問は、授業時および下記の電子メールアドレスで受け付ける.
E-mail: kgsakata@tokai-u.jp
メール本文先頭に,学生証番号・氏名・授業名を明記すること.

PAGE TOP