到達目標
(ア)C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。
(イ)アルゴリズムとデータ構造がプログラミングの要であることを理解する。
(ウ)コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。
(エ)同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。
(オ)リスト構造、スタックやキュー、木構造などの基本的なデータ構造の概念と操作を理解し、プログラムで実装できる。
(カ)VisualC++による動的結果出力によって、アルゴリズムやデータ構造の理解を深める。
ルーブリック
| 最低限の到達レベルの目安(優) | 最低限の到達レベルの目安(良) | 最低限の到達レベルの目安(不可) |
評価項目(ア) | C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。 | C言語の文法とC言語によるプログラミングの基礎から上級までを理解する。 | C言語の文法とC言語によるプログラミングの基礎から上級までを理解できない。 |
評価項目(イ) | 配列や構造体、および、スタックやキュー、リストなどの基本的なデータ構造を理解し、プログラムで実現でき、さらに,様々なデータ管理に利用できる。 | 配列や構造体、および、スタックやキュー、リストなどの基本的なデータ構造を理解する。 | 配列や構造体、および、スタックやキュー、リストなどの基本的なデータ構造を理解てきない。 |
評価項目(ウ) | 同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解し、問題を解く過程を説明できる。 | 同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解している。 | 同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを理解できない。 |
学科の到達目標項目との関係
教育方法等
概要:
プログラムを設計するために重要なものは、アルゴリズムとデータ構造である。本科目では、C言語の文法、探索や整列のアルゴリズムを踏まえて、基本的なデータ構造として表、スタック、キュー、リストを学ぶ。そして、アルゴリズムやデータ構造の理解を深めるために、実際にC言語のプログラムを作成する。さらに、上級Cプログラミングとしてデータ構造を用いた実用的なアルゴリズムとVisualC++による動的結果出力方法を学習する。本科目は、講義と演習を交互に実施、プログラミング能力を身につけるものである。
授業の進め方・方法:
注意点:
プログラミングI, IIA, IIB, 上級CプログラミングAを修得していることが望ましい。適宜ノートパソコンを持参すること。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
シラバスを用いた授業内容の説明、ポインタ・構造体復習 |
C言語の文法とC言語によるプログラミングの基礎を理解している。
|
2週 |
基本的なデータ構造(1):表 |
基本的なデータ構造である表を理解している。
|
3週 |
基本的なデータ構造(2):スタック |
基本的なデータ構造であるスタックを理解している。
|
4週 |
基本的なデータ構造(3):キュー |
基本的なデータ構造であるキューを理解している。
|
5週 |
基本的なデータ構造(4):線形リスト |
基本的なデータ構造である線形リストを理解している。
|
6週 |
基本的なデータ構造(4):線形リスト(基本操作) |
線形リストの基本操作を理解している。
|
7週 |
基本的なデータ構造(4):線形リスト(応用・発展操作) |
線形リストの応用・発展操作を理解している。
|
8週 |
基本的なデータ構造(5):木構造 |
基本的なデータ構造である木構造を理解している。
|
4thQ |
9週 |
基本的なデータ構造(5):木構造(二分木)、中間試験 |
二分木を理解している。また、基本的なデータ構造を理解し、プログラムで実現でき、さらに,様々なデータ管理に利用できる。
|
10週 |
配列データ構造の可視化 |
配列データ構造の可視化を実現できる。
|
11週 |
探索・整列アルゴリズムの可視化 |
探索・整列アルゴリズムの可視化を実現できる。
|
12週 |
スタック・キュー構造の可視化 |
スタック・キューの可視化を実現できる。
|
13週 |
線形リストデータ構造の可視化 |
線形リストデータ構造の可視化を実現できる。
|
14週 |
木構造の可視化 |
木構造の可視化を実現できる。
|
15週 |
逆ポーランド記法、自己再編成探索 |
逆ポーランド記法、自己再編成探索について理解している。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 後14 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後11 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 後15 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | 後7 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | 後9 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | 後9 |
評価割合
| 中間試験 | 定期試験 | 課題 | 合計 |
総合評価割合 | 25 | 50 | 25 | 100 |
専門的能力 | 25 | 50 | 25 | 100 |