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

科目基礎情報

学校 津山工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 アルゴリズムとデータ構造
科目番号 0039 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 総合理工学科(情報システム系) 対象学年 3
開設期 通年 週時間数 2
教科書/教材 参考書:紀平 拓男,春日 伸弥「プログラミングの宝箱 アルゴリズムとデータ構造」(SBクリエイティブ)
担当教員 松島 由紀子

到達目標

学習目的:計算量など,アルゴリズムの複雑さに関係するものを中心に,基本的概念や用語を理解する。そして,代表的なアルゴリズムやデータ構造の仕組みを理解する。

到達目標
1代表的なソートおよび探索のアルゴリズムを説明できる
2代表的なデータ構造を説明できる
3ソート,探索,データ構造のプログラムを活用できる

ルーブリック

不可
評価項目1実践的なデータ群を用いて代表的なソートおよび探索のアルゴリズムを説明できる代表的なソートおよび探索のアルゴリズムを説明できる代表的なソートおよび探索のアルゴリズムを知っている左記に達していない。
評価項目2実践的なデータ群を用いて代表的なデータ構造を説明できる代表的なデータ構造を説明できる代表的なデータ構造を知っている左記に達していない。
評価項目3ソート,探索,データ構造を活用した実践的なプログラムが書けるソート,探索,データ構造のプログラムを活用できるソート,探索,データ構造のプログラムを知っている左記に達していない。

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

教育方法等

概要:
一般・専門の別:専門
学習の分野:情報システム・プログラミング・ネットワーク

必修・必履修・履修選択・選択の別:必履修

基礎となる学問分野:総合系/情報学/計算基盤/ソフトウェア

学習・教育目標との関連:本科目は総合理工学科学習・教育目標「③基盤となる専門性の深化」に相当する科目である。

技術者教育プログラムとの関連:本科目が主体とする学習・教育目標は「(A)技術に関する基礎知識の深化,A-2:「電気・電子」,「情報・制御」に関する専門技術分野の知識を修得し,説明できること」である。

授業の概要:コンピュータを使って問題解決をする場合,使用するアルゴリズムとデータ構造が異なると問題解決の効率が違ってくる。本科目では,これらの選択能力や設計能力の基礎を修得するため,代表的なアルゴリズムとデータ構造を題材にそれらの仕組み等を学習する。


授業の進め方・方法:
授業の方法:板書を中心に授業を進めるが,できるだけ学生に質問し,学生の理解度を確かめながら授業を進める。また学生による発表も取り入れる。理解が深まるよう,演習などを課す。

成績評価方法:4回の定期試験の結果を同等に評価する。原則,再試験は行わないが,状況に応じて再試験を実施し,理解が確認できれば点数を変更することがある。ただし,変更した後の評価は60点を超えないものとする。
注意点:
履修のアドバイス:本科目はプログラミングと密接に関連しているため,本科目で学習した内容を積極的に活用したプログラムを書くことでより理解が深まる。

基礎科目:総合理工基礎(1年),プログラミング基礎(2)

関連科目:データベース(5年),プログラミング応用(4),情報数理(4)

受講上のアドバイス:授業開始時刻を過ぎての入室は遅刻とする。遅刻2回で欠課1回として取り扱う。1授業単位ごとに確認する。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 科目の位置づけ,学習内容,方法に関するガイダンス
2週 ソートアルゴリズム1
3週 ソートアルゴリズム2
4週 サーチアルゴリズム1
5週 サーチアルゴリズム2
6週 前期中間のまとめ
7週 (前期中間試験)
8週 前期中間験の答案返却と試験解説
2ndQ
9週 リスト
10週 スタック
11週 キュー
12週 再帰1
13週 再帰2
14週 前期期末のまとめ
15週 (前期末試験)
16週 前期末試験の答案返却と試験解説
後期
3rdQ
1週 ツリー構造1
2週 ツリー構造2
3週 ツリー構造3
4週 マップとハッシュ1
5週 マップとハッシュ2
6週 文字列検索
7週 後期中間のまとめ
8週 (後期中間試験)
4thQ
9週 後期中間試験の答案返却と試験解説
10週 逆ポーランド記法
11週 グラフ構造1
12週 グラフ構造2
13週 グラフ構造3
14週 後期期末のまとめ
15週 (後期末試験)
16週 後期末試験の答案返却と試験解説

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

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

評価割合

試験発表相互評価自己評価課題小テスト合計
総合評価割合10000000100
基礎的能力0000000
専門的能力10000000100
分野横断的能力0000000