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

科目基礎情報

学校 北九州工業高等専門学校 開講年度 2017
授業科目 アルゴリズムとデータ構造Ⅱ
科目番号 0006 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 1
開設学科 生産デザイン工学科(情報システムコース) 対象学年 3
開設期 後期 週時間数 2
教科書/教材 渡部 有隆,プログラミングコンテスト攻略のためのアルゴリズムとデータ構造,マイナビ出版,2015
担当教員 白濵 成希

到達目標

・各種ソートの特性を理解し,標準的な課題プログラムを作成することができる.
・二分探索木の巡回プログラムを理解し,作成することができる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
ソート与えられた課題に対して,適切なプログラムを作成することができる.各種ソートの特性を理解し,標準的な課題プログラムを作成することができる.各種ソートについて理解できない.
二分探索木二分探索木を定義し,挿入,探索,削除機能を実装することができる.二分探索木の巡回プログラムを理解し,作成することができる.二分探索木を理解できない.

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

準学士課程の教育目標 (A)①  数学・物理・化学などの自然科学、情報技術に関する基礎を理解できる。
準学士課程の教育目標 (A)② 自主的・継続的な学習を通じて、基礎科目に関する問題を解くことができる。
準学士課程の教育目標 (B)① 専門分野における工学の基礎を理解できる。
準学士課程の教育目標 (B)② 自主的・継続的な学習を通じて、専門工学の基礎科目に関する問題を解くことができる。

教育方法等

概要:
アルゴリズムの概要と計算効率の概念を理解し,汎用的なアルゴリズムとデータ構造に関して実際にプログラムを作成し動作を確認しながら学習する.
授業の進め方・方法:
テキストによる解説の後,実際にプログラムを作成し動作を確認する.その後オンラインジャッジの課題のプログラムを作成する.
注意点:
C言語の基本的な知識が要求される.必要に応じてC++にも触れる.

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 再帰関数 再帰関数の概念を理解し,課題プログラムを作成することができる.
2週 分割統治法 分割統治法の概念を理解し,課題プログラムを作成することができる.
3週 全探索 再帰を用いて全探索を行うプログラムを作成することができる.
4週 マージソート マージソートのアルゴリズムを理解し,課題プログラムを作成することができる.
5週 パーティション
配列のパーティションを行うプログラムを作成することができる.
6週 クイックソート
クイックソートのアルゴリズムを理解し,課題プログラムを作成することができる.
7週 計数ソート 計数ソートのアルゴリズムを理解し,課題プログラムを作成することができる.
8週 中間試験
4thQ
9週 木構造 効率的なアルゴリズムとデータ構造を実装するための基礎としての木構造を理解することができる.
10週 二分木 二分木のプログラムを作成することができる.
11週 木の巡回 二分木を体系的に巡回するプログラムを作成することができる.
12週 二分木探索木:挿入 二分探索木に新たに値を挿入するプログラムを作成することができる.
13週 二分木探索木:探索 二分探索木から与えられたキーを持つ接点を探索するプログラムを作成することができる.
14週 二分木探索木:削除 二分探索木から与えられたキーを持つ接点を削除するプログラムを作成することができる.
15週 定期試験
16週 答案返却

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
プログラミング言語は計算モデルによって分類されることを説明できる。4
主要な計算モデルを説明できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4
ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。3
整列、探索など、基本的なアルゴリズムについて説明できる。3
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。3
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。3
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3

評価割合

試験課題合計
総合評価割合5050100
基礎的能力101020
専門的能力404080
分野横断的能力000