アルゴリズム

科目基礎情報

学校 北九州工業高等専門学校 開講年度 平成29年度 (2017年度)
授業科目 アルゴリズム
科目番号 0125 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 制御情報工学科 対象学年 4
開設期 通年 週時間数 2
教科書/教材 【教科書】 「コンピュータ・アルゴリズム入門」、多田憲孝著、日本理工出版会 【参考書】 「新・明解C言語で学ぶアルゴリズムとデータ構造」、柴田望洋著、SBクリエイティブ
担当教員 谷口 茂

到達目標

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

評価割合

試験課題への取り組み合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000