データ構造とアルゴリズム

科目基礎情報

学校 阿南工業高等専門学校 開講年度 令和02年度 (2020年度)
授業科目 データ構造とアルゴリズム
科目番号 1712B01 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 2
開設学科 情報コース 対象学年 2
開設期 通年 週時間数 2
教科書/教材 アルゴリズムを、はじめよう(伊藤静香、インプレス)
担当教員 岡本 浩行,平山 基

到達目標

1.アルゴリズムの概念を論理的に説明できる。
2.整列、探索などのアルゴリズムについて説明できる。
3.コンピュータ内部でデータを表現するための様々な方法(データ構造)を理解し、説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安
到達目標1アルゴリズムの概念を理解し、各アルゴリズムをフローチャートやプログラムで実現できる。アルゴリズムの概念を理解し、論理的に説明できる。アルゴリズムの概念について論理的に説明できない。
到達目標2整列・探索等のアルゴリズムを論理的に説明でき、それらのアルゴリズムを用いて問題解決できる。整列・探索等のアルゴリズムを論理的に説明できる。整列・探索等のアルゴリズムを論理的に説明できない。
到達目標3様々なデータ構造の性質を理解し、プログラミングで適切に利用できる。様々なデータ構造の性質を理解し、説明できる。様々なデータ構造の性質を説明できない。

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

学習・教育到達度目標 D-1 説明 閉じる

教育方法等

概要:
基本的なアルゴリズムとデータ構造を学び、プログラミング言語を用いて実装することを通して、コンピュータエンジニアに必須の論理的思考能力、および問題解決能力を身に着ける。
授業の進め方・方法:
注意点:
アルゴリズムの考え方を重視するので、プログラミング言語は要点のみの説明となる。理解できない点は積極的に質問すること。授業中に課される課題や小テストを通じて、理解を深めること。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 制御の基本 アルゴリズムの概念を説明できる。
2週 制御の基本 制御の種類と構造化定理を説明できる。
3週 制御の基本 フローチャートを使用し、アルゴリズムを図的に表現できる。
4週 制御の基本 フローチャートを使用し、アルゴリズムを図的に表現できる。
5週 制御の基本 基本的なデータ構造(配列、リスト、スタック、キュー等)を説明できる。
6週 制御の基本 基本的なデータ構造(配列、リスト、スタック、キュー等)を説明できる。
7週 【前期中間試験】
8週 数学的問題のアルゴリズム 素数を求めるアルゴリズムを理解し、説明できる。
2ndQ
9週 数学的問題のアルゴリズム 素因数分解のアルゴリズムを理解し、説明できる。
10週 数学的問題のアルゴリズム 最大公約数を求めるアルゴリズムを理解し、説明できる。
11週 数学的問題のアルゴリズム 数学的問題のアルゴリズムに基づき、プログラムを作成できる。
12週 数学的問題のアルゴリズム 数学的問題のアルゴリズムに基づき、プログラムを作成できる。
13週 数学的問題のアルゴリズム 数学的問題のアルゴリズムに基づき、プログラムを作成できる。
14週 数学的問題のアルゴリズム 数学的問題のアルゴリズムに基づき、プログラムを作成できる。
15週 数学的問題のアルゴリズム 数学的問題のアルゴリズムに基づき、プログラムを作成できる。
16週 【答案返却】
後期
3rdQ
1週 ソートとサーチ ソートアルゴリズム(バブルソート、選択ソート、挿入ソート、シェルソ
ート、クイックソート等)を理解し、ソート処理を実行できる。
2週 ソートとサーチ ソートアルゴリズム(バブルソート、選択ソート、挿入ソート、シェルソ
ート、クイックソート等)を理解し、ソート処理を実行できる。
3週 ソートとサーチ サーチアルゴリズム(二分探索等)を理解し、サーチ処理を実行できる。
4週 ソートとサーチ サーチアルゴリズム(二分探索等)を理解し、サーチ処理を実行できる。
5週 ソートとサーチ ソートとサーチのプログラムを作成し、実行できる。
6週 ソートとサーチ ソートとサーチのプログラムを作成し、実行できる。
7週 ソートとサーチ ソートとサーチのプログラムを作成し、実行できる。
8週 【後期中間試験】
4thQ
9週 高度なアルゴリズム 関数やメソッドの概念や定義を理解し、プログラムに適用できる。
10週 高度なアルゴリズム 関数やメソッドの概念や定義を理解し、プログラムに適用できる。
11週 高度なアルゴリズム 再帰処理について理解し、説明できる。
12週 高度なアルゴリズム 再帰処理について理解し、説明できる。
13週 高度なアルゴリズム 確率的なアルゴリズム、基礎的な数値計算について理解し、プログラムを作成できる。
14週 高度なアルゴリズム 確率的なアルゴリズム、基礎的な数値計算について理解し、プログラムを作成できる。
15週 高度なアルゴリズム 確率的なアルゴリズム、基礎的な数値計算について理解し、プログラムを作成できる。
16週 【答案返却】

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前3,前4
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前3,前4
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3後9,後10
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。4前1,前2
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前3,前4
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前5,前6,前8,前9,前10
整列、探索など、基本的なアルゴリズムについて説明できる。4後1,後2,後3,後4
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4後1,後2,後3,後4
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4後1,後2,後3,後4
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4前5,前6
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4前5,前6
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4前5,前6
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4前5,前6
ソフトウェアを中心としたシステム開発のプロセスを説明できる。4後9,後10
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4前11,前12,前13,前14,前15,後5,後6,後7
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4前5,前6,後5,後6,後7,後13,後14,後15
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。4前11,前12,前13,後5,後6,後7,後9,後10,後13,後14,後15
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。4

評価割合

試験発表相互評価態度ポートフォリオその他小テストレポート課題合計
総合評価割合70000001515100
基礎的能力3500000101055
専門的能力35000005545
分野横断的能力000000000