到達目標
(1) プログラム文法の基礎(クラス,オブジェクト指向)を理解する.
(2) プログラムを読み,その動作を説明できる.
(3) 基本的なプログラムを作成できる.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | プログラム文法の基礎(クラス,オブジェクト指向)を的確に理解している. | プログラム文法の基礎(クラス,オブジェクト指向)を理解している. | プログラム文法の基礎(クラス,オブジェクト指向)を理解していない. |
評価項目2 | プログラムを読み,その動作を的確に説明できる. | プログラムを読み,その動作を説明できる. | プログラムを読み,その動作を説明できない. |
評価項目3 | 基本的なプログラムを的確に作成できる. | 基本的なプログラムを作成できる. | 基本的なプログラムを作成できない. |
学科の到達目標項目との関係
教育方法等
概要:
情報化社会のなかでスマートフォンを始めとする様々な機器にソフトウェアが組み込まれており,現代を生きる人間にとって情報処理システムは無くてはならないものとなっている.本授業の大きな目標はそのような機器のなかでソフトウェアがどのように動作しているか理解できるようになること,および,自分自身で設定した仕様に基づいてソフトウェア開発ができるようになることである.そのために本授業ではC++言語を通してオブジェクト指向プログラミングの基本概念,および応用としてデータ構造とアルゴリズムの基礎を学ぶ.
授業の進め方・方法:
・ (1)~(3)の目標それぞれについて定期試験および課題演習にて評価する.
・ 60点以上(100点満点)を合格とする.不合格となった場合,それぞれの定期試験で30点以上得点し,課題が全て提出されている者に限り再評価試験を受験できるものとする.追認試験は実施しない.
・ 課題演習等(40%):レポートまたはプログラムの提出
・ 定期試験(60%):中間試験(30%),期末試験(30%)
注意点:
演習を数多くこなすことによってプログラムの動作を理解し慣れていくため,自分自身で考えながらプログラムを記述していくこと.他の人と話し合ってもよいが,最後は自分で判断して記述すること.本科目は学修単位科目であり,1回の授業(90分)に対して,180分以上の自学自習が必要である。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
基礎プログラミング2,3の復習 |
基礎プログラミング2,3で学習した内容の確認を行う.
|
2週 |
関数の多重定義と関数テンプレート |
関数の多重定義(オーバーロード)と関数テンプレートを理解する.
|
3週 |
カプセル化とコンストラクタ |
オブジェクト指向の基本概念とアクセス制限によるカプセル化,およびコンストラクタを理解する.
|
4週 |
クラステンプレートと動的配列 |
クラステンプレートおよび動的配列を理解し,std::vector の使い方を学ぶ.
|
5週 |
ソート |
様々なソートのアルゴリズムを理解する.
|
6週 |
二分探索木 |
二分探索木による探索を理解する.
|
7週 |
中間演習 |
第6回までの内容について演習を行う.
|
8週 |
中間試験 |
第6回までの内容について理解を確認する.
|
2ndQ |
9週 |
グラフと計算複雑性 |
グラフを扱った様々な問題の解を見つける困難さを理解する.
|
10週 |
数値計算 |
ニュートン法,最急降下法,ルンゲクッタ法を理解する.
|
11週 |
数理最適化 |
線形計画問題,凸計画問題,および単体法を理解する.
|
12週 |
機械学習(1) |
k近傍法,サポートベクトルマシン(SVM)を理解する.
|
13週 |
機械学習(2) |
人工ニューラルネットワークを理解する.
|
14週 |
期末演習 |
第13回までの内容について演習を行う.
|
15週 |
期末試験 |
第13回までの内容について理解を確認する.
|
16週 |
総括 |
本授業で学習したことをまとめ,定着させる.
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 3 | |
主要な計算モデルを説明できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
評価割合
| 定期試験 | レポート課題等 | 合計 |
総合評価割合 | 60 | 40 | 100 |
基礎的能力 | 0 | 0 | 0 |
専門的能力 | 60 | 40 | 100 |
分野横断的能力 | 0 | 0 | 0 |