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

科目基礎情報

学校 津山工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 アルゴリズムとデータ構造
科目番号 0082 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 総合理工学科(情報システム系) 対象学年 3
開設期 通年 週時間数 2
教科書/教材 教科書: 茨木俊秀「Cによるアルゴリズムとデータ構造(改訂2版)」(オーム社)
担当教員 松島 由紀子

到達目標

学習目的:代表的なアルゴリズムやデータ構造の仕組みについて説明できる,または説明を読めばその名称が答えられる。アルゴリズムの効率を考える際に重要となる時間計算量などの基本的概念や用語を説明できる。

到達目標
1.アルゴリズムとは何かを説明できる。
2.ソート,探索に関する代表的なアルゴリズムを説明できる。
3.スタック,キュー,二分木などのデータ構造を説明できる。
4.文字列検索アルゴリズムを説明できる。
5.グラフ構造について説明できる。

ルーブリック

不可
評価項目1計算量の表記とその定義を活用して実践的なプログラムの計算量を評価できる。計算量の表記とその定義を活用して代表的なプログラムの計算量を評価できる。計算量の表記とその定義について説明できる。左記に達していない。
評価項目2ソートおよび探索のアルゴリズムを活用した実践的なプログラムを実装できる。ソートおよび探索のアルゴリズムを活用できる。ソートおよび探索のアルゴリズムについて説明できる。左記に達していない。
評価項目3スタック,キュー,2分木などのデータ構造を活用した実践的なプログラムを実装できる。スタック,キュー,2分木などのデータ構造を活用できる。スタック,キュー,2分木などのデータ構造について説明できる。左記に達していない。
評価項目4文字列検索アルゴリズムを活用した実践的なプログラムを実装できる。文字列検索アルゴリズムを活用できる。文字列検索アルゴリズムについて説明できる。左記に達していない。
評価項目5グラフ構造を活用して実践的な問題を評価できる。グラフ構造を活用して代表的な問題を評価できる。グラフ構造について説明できる。左記に達していない。

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

教育方法等

概要:
一般・専門の別:専門

学習の分野:情報システム・プログラミング・ネットワーク

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

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

授業の概要:コンピュータを使って問題解決をする場合,使用するアルゴリズムとデータ構造が異なると問題解決の効率が違ってくる。本科目では,これらの選択能力や設計能力の基礎を修得するため,代表的なアルゴリズムとデータ構造を題材にそれらの仕組み等を学習する。
授業の進め方・方法:
授業の方法:板書を中心に,学生の理解度を確かめながら講義を行う。また,理解が深まるよう,関連した演習を課す。

成績評価方法:4回の定期試験の結果を同等に評価する。後期末段階の成績が60点未満の者には,出席状況や授業態度が良好であれば,事前指示を与えた上で再試験を実施する。実施後の評価は60点を超えないものとする。
注意点:
履修上の注意:学年の課程修了のためには履修(欠席時間数が所定授業時間数の3分の1以下)が必須である。

履修のアドバイス:本科目はこれまでに履修してきたプログラミングに関する科目と深く関連している。本科目で学習した内容を積極的に活用したプログラムを書くことでより理解が深まる。

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

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

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

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス〔科目の概要,目的,評価方法,注意事項等〕 本科目の位置づけを理解する。
2週 バブルソート バブルソートについて説明できる。
3週 クイックソート1 クイックソートについて説明できる。
4週 クイックソート2 クイックソートについて説明できる。
5週 マージソート マージソートについて説明できる。
6週 リニアサーチ リニアサーチについて説明できる。
7週 バイナリサーチ バイナリサーチについて説明できる。
8週 (前期中間試験)
2ndQ
9週 前期中間験の答案返却と試験解説 自分の知識で不足している箇所を認識し,改善する。
10週 リスト リスト構造について説明できる。
11週 スタック スタックについて説明できる。
12週 キュー キューについて説明できる。
13週 再帰処理1 再帰処理について説明できる。
14週 再帰処理2 再帰処理について説明できる。
15週 (前期末試験)
16週 前期末試験の答案返却と試験解説 自分の知識で不足している箇所を認識し,改善する。
後期
3rdQ
1週 ツリー構造1 代表的な木構造について説明できる。
2週 ツリー構造2 代表的な木構造のについて説明できる。
3週 ツリー構造3 代表的な木構造のについて説明できる。
4週 マップとハッシュ1 マップとハッシュについて説明できる。
5週 マップとハッシュ2 マップとハッシュについて説明できる。
6週 文字列検索1 文字列検索について説明できる。
7週 文字列検索2 文字列検索について説明できる。
8週 (後期中間試験)
4thQ
9週 後期中間試験の答案返却と試験解説 自分の知識で不足している箇所を認識し,改善する。
10週 木構造の走査 木構造の走査について説明できる。
11週 グラフ構造 グラフ構造について説明できる。
12週 オートマトン オートマトンについて説明できる。
13週 正規表現 正規表現について説明できる。
14週 まとめ アルゴリズムとデータ構造の学習内容全体について説明できる。
15週 (後期末試験)
16週 後期末試験の答案返却と試験解説 自分の知識で不足している箇所を認識し,改善する。

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

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

評価割合

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