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

科目基礎情報

学校 新居浜工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 アルゴリズムとデータ構造
科目番号 121433 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 電気情報工学科 対象学年 4
開設期 通年 週時間数 2
教科書/教材 アルゴリズムとデータ構造  湯田 幸八・伊原 充博 共著 (コロナ社)
担当教員 先山 卓朗

到達目標

1. ポインタを利用したリストについて、その概念や実現方法が理解できること。
2. スタックとキューについて、その概念や違いを理解できること。
3. 木の構造や走査について、その概念や各種手法を理解できること。
4. いろいろな探索手法について、その概念や実現方法が理解できること。
5. いろいろなソート手法について、その概念や実現方法が理解できること。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1ポインタを利用したリストについて、その概念や実現方法を理解し、実装することができる。ポインタを利用したリストについて、その概念や実現方法が理解できる。ポインタを利用したリストについて、その概念や実現方法が理解できない。
評価項目2スタックとキューについて、その概念や実現方法を理解し、使い分けることができる。スタックとキューについて、その概念や違いを理解できる。スタックとキューについて、その概念や違いを理解できない。
評価項目3木の構造や走査について、その概念や各種手法を理解でき、使い分けることができる。木の構造や走査について、その概念や各種手法を理解できる。木の構造や走査について、その概念や各種手法を理解できない。
評価項目4いろいろな探索手法について、その概念や実現方法、効率の違いを理解できる。いろいろな探索手法について、その概念や実現方法が理解できる。いろいろな探索手法について、その概念や実現方法が理解できない。
評価項目5いろいろなソート手法について、その概念や実現方法、効率の違いを理解できる。いろいろなソート手法について、その概念や実現方法が理解できる。いろいろなソート手法について、その概念や実現方法が理解できない。

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

専門知識 (B) 説明 閉じる

教育方法等

概要:
基本的なデータ構造であるリスト、キュー、木について修得し、さらにこれらのデータ構造を利用して実現できる探索や整列のアルゴリズムについて学ぶ。
授業の進め方・方法:
プログラミング1・プログラミング2で学んできたC言語の文法的知識をもとに、より高度なデータ構造やアルゴリズムの実現方法について勉強することになります。
授業を一方的に聞くだけでなく、その概念や動作を自分で理解できるよう頑張ってください。特に、教科書で省略されているCプログラムを自分で考えることは非常に重要です。
注意点:
事前学習:プログラミング1・プログラミング2の知識が必要となるので、よく復習しておいてください。
自己学習:授業でいろいろなプログラムの学習をしますが、授業中に実際にパソコンで動かすことはしないので、各自実施してみてください。

本科目の区分

Webシラバスと本校履修要覧の科目区分では表記が異なるので注意すること。
本科目は履修要覧(p.9)に記載する「④選択科目」である。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 アルゴリズムの計算量の評価 1
2週 ポインタ・構造体の復習
3週 データ構造と表現法
1
4週 順配置とリンク配置の実現 1
5週 順配置によるリストの実現 1
6週 ポインタによるリンク配置の実現 1
7週 中間試験
8週 双方向連結リスト 1
2ndQ
9週 スタック 2
10週 キュー 2
11週 木の概念 3
12週 2分木 3
13週 2分木の走査 3
14週 2分木と数式 3
15週 期末試験
16週 試験返却・解説
いろいろな木
3
後期
3rdQ
1週 線形探索・2分探索 4
2週 ハッシュ法探索 4
3週 文字列の探索1 4
4週 文字列の探索2 4
5週 2分探索木 3, 4
6週 B木 3, 4
7週 中間試験
8週 選択によるソート 5
4thQ
9週 交換によるソート1 5
10週 交換によるソート2 5
11週 クイックソート1 5
12週 クイックソート2 5
13週 挿入によるソート 5
14週 いろいろなソート 5
15週 期末試験
16週 試験返却・解説

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。4前1
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前1
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前1,後1,後8
整列、探索など、基本的なアルゴリズムについて説明できる。4後1,後2,後3,後4,後5,後6,後8,後9,後10,後11,後12,後13,後14
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4前1
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4前1
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4前3
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4前1
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4前5,前6,前8,前9,前10,前11,前12,前13
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4前5,前6,前8,前9,前10,前12,前16
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4前1
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4前1,後1,後8

評価割合

試験レポート・小テスト・グループワーク合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000