プログラム設計

科目基礎情報

学校 鈴鹿工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 プログラム設計
科目番号 0086 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 電子情報工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 教科書:「やさしいC++第4版」高橋麻奈著(ソフトバンク)参考書: 「C++実践プログラミング(第2版), Steave Oulline(著), 望月康司(監訳), O'REILLY, 「Effective C++(第2版)」, Scott Meyers (著), 吉川 邦夫(訳), アスキー,「プログラミング言語C++第3版」, Bjarne Stroustrup (著), 長尾 高弘(訳), アスキー
担当教員 箕浦 弘人,青山 俊弘

到達目標

プログラミングの基本となる諸概念について理解し,C++によって,関数,クラスを使った簡単なプログラムを作成することができ,初歩的な開発プロセスおよび設計手順等を理解している.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1各種制御文を用いて実践的なプログラムを書ける各種制御文を用いて基本的なプログラムを書ける各種制御文を用いて基本的なプログラムを書けない
評価項目2関数を用いて実践的なプログラムを書ける関数を用いて基本的なプログラムを書ける関数を用いて基本的なプログラムを書けない
評価項目3ポインタ,参照を用いて実践的なプログラムを書けるポインタ,参照を用いて基本的なプログラムを書けるポインタ,参照を用いて基本的なプログラムを書けない
評価項目4基本的なクラスを用いて実践的なプログラムを書ける基本的なクラスを用いて基本的なプログラムを書ける基本的なクラスを用いて基本的なプログラムを書けない
評価項目5継承を用いて実践的なプログラムを書ける継承を用いて基本的なプログラムを書ける継承を用いて基本的なプログラムを書けない
評価項目6基本的なデータ構造を用いて実践的なプログラムを書ける基本的なデータ構造を用いて基本的なプログラムを書ける基本的なデータ構造を用いて基本的なプログラムを書けない
評価項目7高度なC++文法を用いて実践的なプログラムを書ける高度なC++文法を用いて基本的なプログラムを書ける高度なC++文法を用いて基本的なプログラムを書けない

学科の到達目標項目との関係

教育方法等

概要:
プログラム設計では,C++言語の文法を会得し,C++言語を用いてプログラミングできる知識と技術を習得する.この授業ではC++言語のみではなく,プログラミング一般の方法やオブジェクト指向に関する知識についても学習する.また,演習を通じてC++言語仕様以外に,簡単な基本的なデータ構造やアルゴリズムについても学習する.
授業の進め方と授業内容・方法:
全ての内容は,学習・教育到達目標の<B>(基礎)に関連する.
授業は講義、演習、実習をバランス良く行う.演習と実習は習熟度別に選択となる.
「授業計画」における各週の「到達目標」はこの授業で習得する「知識・能力」に相当するものとする
注意点:
<到達目標の評価方法と基準>
 授業計画の「達成目標」1-20の確認を,これらの範囲を網羅した2回の中間試験,2回の定期試験と,レポートで行う.評価結果が百点法で60点以上の場合に目標の達成とする.
<学業成績の評価方法および評価基準>
前期中間,前期末,後期中間,学年末の4回の定期試験結果を80%,レポートを20%で評価する.それぞれの期間ごと100点満点で評価し,これらの平均値を小数点以下切り捨てたものを最終評価とする.各定期試験での再試験は行わない.また,12月に行われる情報オリンピックの成績を学業成績の評価に加えることがある.
<あらかじめ要求される基礎知識の範囲>プログラミング基礎,電子情報工学序論の知識が必要.また,課題は数学や物理を参考に出題するので,これらの基本的な知識が必要.
<レポート等> 授業の理解を深めるためと,プログラム作成技術を向上させるため,基本的に毎週,プログラミング作成のレポート課題を課す.

授業計画

授業内容・方法 週ごとの到達目標
前期
1週 1年の復習 1. 変数および, if, while, for, switchの各文法を使い、プログラムを作成できる
2週 関数1 2. 引数,戻り値の概念を理解し,値渡し,アドレス渡し,参照渡しの違いについて理解し、関数を使ってプログラムを作成できる
3週 関数2 3. 関数テンプレート,テンプレートクラス、関数のオーバーロードについて理解する
4週 アドレス,ポインタ 4. 変数がアドレスで指定されるメモリ領域を保持し,このアドレスとポインタとの関係を理解する
5週 配列とポインタ 5. 配列とポインタの関係を理解し,プログラムを作成できる
6週 スコープ,記憶寿命 7. 型と変数,記憶寿命とスコープの概念を理解し,プログラムを作成できる
7週 enum,typedef, 構造体 8. 列挙型,構造体のデータ構造について理解し,プログラムを作成できる
8週 中間試験 これまでに学習した内容を説明し、プログラム作成に応用できる
9週 動的なメモリ確保 9. 動的メモリを確保する必要性を理解し、動的メモリを使いプログラムを作成できる
10週 クラスとオブジェクト 10. クラスとオブジェクトについて説明できる
11週 クラスの定義, コンストラクタ 11. 簡単なクラスを作成し,プログラムを作成できる
12週 参照 12.参照の概念を理解し、説明でき、プログラムで利用できる
13週 継承 13. 継承,仮想関数の概念を理解し,派生クラスを作成してプログラムを作成することができる
14週 仮想関数,抽象クラス 14. 純粋仮想関数,抽象クラス,仮想クラス,多重継承の概念を理解する
15週 多重継承 上記14
16週
後期
1週 テンプレートクラス 上記3
2週 スタック 15. 基本的なデータ構造の仕組みを理解し、クラスを設計でき、利用することができる
3週 キュー 上記15
4週 連結リスト 上記15
5週 STL(データ構造) 上記15
6週 静的メンバ 16. 静的メンバ変数の概念を理解し、説明できる
7週 復習 これまでに学習した内容を説明できる
8週 中間試験 これまでに学習した内容を説明し、プログラム作成に応用できる
9週 ストリーム 17. ストリームの概念を理解し,入出力プログラムを作成することができる
10週 例外処理と名前空間 18. 例外処理および名前空間の概念を理解し,プログラムを作成できる
11週 演算子のオーバーロード1 19. 演算子のオーバーロードについて理解し,プログラムを作成できる
12週 演算子のオーバーロード2 上記19
13週 浅いコピーと深いコピー 上記19
14週 要求定義と設計1 20. プログラム開発プロセスを理解し,簡単なシステムの仕様策定,設計ができる
15週 要求定義と設計2 上記20
16週

評価割合

試験課題相互評価態度発表その他合計
総合評価割合80200000100
配点80200000100