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

科目基礎情報

学校 木更津工業高等専門学校 開講年度 令和07年度 (2025年度)
授業科目 データ構造とアルゴリズムII
科目番号 j0210 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 3
開設期 後期 週時間数 2
教科書/教材 柴田 望洋著『新・明解C言語で学ぶアルゴリズムとデータ構造第2版』SB Creative、2021年、ISBN: 978-4-8156-0978-8
担当教員 SAPKOTA ACHYUT

到達目標

MCC: VD2-ソフトウェア: アルゴリズム
評価項目①:計算量によってアルゴリズムを比較・評価できることを説明できる。
評価項目②:アルゴリズムの概念を理解し、与えられたアルゴリズムが問題を解決していく過程を説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目①時間計算量・空間計算量の概念を理解しており、複数のアルゴリズムを計算量の観点から的確に比較・評価できる。時間計算量や空間計算量の考え方を理解し、典型的なアルゴリズムの効率を比較する際に、計算量の大小をもとにおおよその性能を説明できる。アルゴリズムの違いを計算量に基づいて説明することができない。
評価項目②文字列探索とソートアルゴリズムの動作原理を正確に理解しており、手続きの各ステップを明確に説明できる。文字列探索とソートアルゴリズムの概要を理解しており、代表的な例において処理の流れを概ね説明することができる。文字列探索とソートアルゴリズムの基本的な動作原理を理解しておらず、処理の流れや手順を正しく説明することができない。

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

準学士課程(R5までのDP) R5までDP_4 情報技術の修得

教育方法等

概要:
データ構造とアルゴリズムIに続き、時間・領域計算量の考え方やソートおよび探索手法を通じて、効率的な問題解決力を養う。ソート・探索アルゴリズムとデータ構造の関係を理解し、最適な手法を選択できる力を身につける。
授業の進め方・方法:
【授業のすすめ方】
授業では代表的な例を教員が解説し、演習問題に取り組むことで理解を深める。
【評価方法】
試験:80%, 課題: 20% 
注意点:
オフィスアワーとして水曜日16時20分から17時として設定しているため、理解できない内容があれば質問に来ること。また、オフィスアワー以外の時間であっても事前にOffice Teamsのチャットなどにより連絡しても良いです。

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス 科目内容の概要を理解し、データ構造とアルゴリズムIで実施した内容の復習を行う。
2週 文字列の探索(1) 文字列に対する探索について理解できる。Knuth-Morris-Pratt(KMP)アルゴリズムについて理解でき、力まかせのアルゴリズムと比較できる。
3週 文字列の探索(2) Knuth–Morris–Pratt(KMP)アルゴリズムのプログラムを作成できる。
4週 文字列の探索(3) 文字列比較におけるグローバルアラインメントについて理解できる。
5週 文字列の探索(4) 文字列比較におけるローカルアラインメントについて理解できる。
6週 文字列の探索(5) 文字列比較におけるアラインメントのプログラムを作成できる。
7週 トライデータ構造 文字列検索におけるトライ(Trie)データ構造の仕組みを理解できる
8週 まとめ 週1から週7の内容について理解を深める
4thQ
9週 整列アルゴリズム(1) 単純選択方法 、バブルソート方法と挿入ソート方法について理解できる。
10週 整列アルゴリズム(2) 単純選択、バブルソート、挿入ソートの時間計算量について比較できる。これらの方法のc言語プログラムを実装できる。
11週 整列アルゴリズム(3) ヒープソート、クイックソートとマージソートについて理解できる。
12週 整列アルゴリズム(4) 週1〜週12まで学んだソート方法を比較するC言語プログラムを。実装できる。
13週 整列アルゴリズム(5) 比較によらないソートについて理解でき、プログラムを実装できる。
14週 整列アルゴリズム(6) 週 9から週13の内容について理解を深める
15週 総合的課題に取り組む、まとめ 科目に学習したの内容をまとめて理解できる。
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。3後1,後2,後8,後14,後15
与えられたアルゴリズムが問題を解決していく過程を説明できる。3後2,後4,後5,後8,後9,後10,後12,後14,後15
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3後2,後8,後10,後11,後12,後13,後14,後15
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4後8,後11,後12,後14,後15
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4後7,後8,後11,後12,後14,後15
整列、探索など、基本的なアルゴリズムについて説明できる。4後8,後11,後12,後13,後14,後15
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。3後8,後13,後14,後15
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。3後3,後6,後8,後13,後14,後15

評価割合

試験課題合計
総合評価割合8020100
評価項目①401050
評価項目②401050