到達目標
1. 探索、整列など、基本的なアルゴリズムについて説明できる。B①
2. リスト、スタック、キューなどの基本的なデータ構造について説明できる。B①
3. 上記の各種アルゴリズムについて、C 言語でプログラミングできる。B②
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 探索、整列などについて、効率の良いアルゴリズムの説明ができる。 | 探索、整列などについて、アルゴリズムの説明ができる。 | 探索、整列などについて、アルゴリズムの説明ができない。 |
評価項目2 | リスト、スタック、キューなどのデータ構造の説明ができ、問題に応じて適切な構造を選択できる。 | リスト、スタック、キューなどのデータ構造の説明ができる。 | リスト、スタック、キューなどのデータ構造の説明ができない。 |
評価項目3 | 各種の問題について、適切なアルゴリズムを選択してC 言語でプログラミングできる | 各種アルゴリズムについて、C 言語でプログラミングできる。 | 各種アルゴリズムについて、C 言語でプログラミングできない。 |
学科の到達目標項目との関係
教育方法等
概要:
ソフトウェアを開発するには, 問題を計算機上で実現できる形に直す作業(データ構造) と, それを実際に効率よく解く手順を作成する作業(アルゴリズム) からなる. その基本的な情報構造であるデータ構造とそれらに関連するアルゴリズムについての理解を主たる目的とする.
授業の進め方・方法:
実用的なプログラミングを作る時に必要となるデータ構造とアルゴリズムの原理について, 主に教科書を通して理解する. また講義したデータ構造とアルゴリズムは、C 言語をプログラムを作成し動作を確認する.
注意点:
C言語を用いたプログラミングができることを前提とする。授業内で最低限の復習は行うが、基礎となる関連科目である「情報処理」および「コンピュータ基礎」の理解を深めておくことが重要である。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
アルゴリズムとは、授業計画 |
授業計画について理解している
|
2週 |
アルゴリズムの記述方法、C言語の復習 |
フローチャートによるアルゴリズムの記述ができる、C言語の基本データ型と配列の説明ができる
|
3週 |
計算誤差の取り扱い、計算量の概念 |
計算誤差、計算量について説明ができる
|
4週 |
線形探索 |
線形探索のアルゴリズムその計算量について説明でき、番兵法を利用できる
|
5週 |
線形探索のC言語プログラミング |
C言語を用いて線形探索のプログラムが作成できる
|
6週 |
二分探索 |
二分探索のアルゴリズムとその計算量について説明できる
|
7週 |
二分探索のC言語プログラミング |
C言語を用いて二分探索のプログラムが作成できる
|
8週 |
中間試験 |
|
2ndQ |
9週 |
答案返却とその解説、再帰の復習 |
再帰アルゴリズムの考え方を説明できる
|
10週 |
再帰アルゴリズムとそのC言語プログラミング |
簡単な再帰アルゴリズムを作成でき、それをC言語を用いて実装できる
|
11週 |
単純選択法、単純交換法 |
単純選択法と単純交換法の二種類のソートアルゴリズムを説明できる
|
12週 |
単純選択法、単純交換法のC言語プログラミング |
C言語を用いて単純選択法および単純交換法のプログラムを作成できる
|
13週 |
単純挿入法 |
単純挿入法のソートアルゴリズムを説明できる
|
14週 |
単純挿入法のC言語プログラミング |
C言語を用いて単純挿入法のプログラムを作成できる
|
15週 |
期末試験 |
|
16週 |
答案返却とその解説 |
|
後期 |
3rdQ |
1週 |
構造体の復習、リスト |
構造体、リストを説明できる
|
2週 |
ハッシュ法 |
ハッシュ法のアルゴリズムを説明できる
|
3週 |
スタック、キュー |
スタックおよびキューを説明できる
|
4週 |
ハッシュ法、スタック、キューのC言語プログラミング |
C言語を用いて、ハッシュ法、スタック、キューを用いたプログラムを作成できる
|
5週 |
木構造 |
木構造について説明できる
|
6週 |
二分木探索のアルゴリズム |
二分木探索のアルゴリズムについて説明できる
|
7週 |
文字列照合のアルゴリズム |
文字列処理のアルゴリズムについて説明できる
|
8週 |
中間試験 |
|
4thQ |
9週 |
答案返却とその解説 |
|
10週 |
シェルソート法 |
シェルソート法のアルゴリズムについて説明できる
|
11週 |
クイックソート法 |
クイックソート法のアルゴリズムについて説明できる
|
12週 |
シェルソート法、クイックソート法のC言語プログラミング |
C言語を用いてシェルソート法およびクイックソート法を用いたプログラムを作成できる
|
13週 |
ヒープソート法 |
ヒープソート法のアルゴリズムについて説明できる
|
14週 |
ヒープソート法のC言語プログラミング |
C言語を用いてヒープソート法を用いたプログラムを作成できる
|
15週 |
定期試験 |
|
16週 |
答案返却とその解説 |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 4 | 前2 |
代入や演算子の概念を理解し、式を記述できる。 | 4 | 前2 |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | 前2 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前2 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前2 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 2 | 前1 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 2 | 前1 |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 2 | 前1 |
主要な計算モデルを説明できる。 | 2 | 前1 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 前5,前7,前10,前12,前14,後4,後12,後14 |
評価割合
| 試験 | 課題への取り組み | 合計 |
総合評価割合 | 70 | 30 | 100 |
基礎的能力 | 0 | 0 | 0 |
専門的能力 | 70 | 30 | 100 |
分野横断的能力 | 0 | 0 | 0 |