Y0122600
2 Data Structure and Algorithm
ソフトウェアの開発では効率的なアルゴリズムとデータ構造の設計・解析が必要になる。本講義では計算機を使って問題を効率的に解く際に必要となる基本的アルゴリズムとその実現に適したデータ構造、及び、計算量について解説し、現実のソフトウェアの設計・開発に応用できる能力を修得することを目指す。本科目は、「プログラミング1」「プログラミング2」を発展させた内容となっているため、それらを履修しておくことが望ましい。
本授業の目的は,プログラムを用いて様々な問題を解決できるようになることである.このためには,既存のアルゴリズムを知るだけでなく,自分でアルゴリズムを考え出せるようになる必要がある.
- 木、ハッシュ、グラフなどのデータ構造とそれらの基本アルゴリズムについて理解でき、動作や意味を説明できる。
- 基本アルゴリズムの計算量解析ができる。
- それらのアルゴリズムとデータ構造に従ったプログラムが書ける。
Relationship between 'Goals and Objectives' and 'Course Outcomes'
|
レポート |
期末試験 |
Total. |
1. |
5% |
30% |
35% |
2. |
5% |
30% |
35% |
3. |
30% |
0% |
30% |
Total. |
40% |
60% |
- |
|
Class schedule |
HW assignments (Including preparation and review of the class.) |
Amount of Time Required |
1. |
アルゴリズムとは何か、データ構造とは何か.アルゴリズムの正当性と停止性、入出力の論理式表現. |
教科書1章 |
190minutes |
2. |
二分探索木(1) 探索、挿入、削除 |
教科書4章 |
190minutes |
3. |
二分探索木(2) 計算量解析 |
教科書4章、10章 |
190minutes |
4. |
高度な木 B木、トライ木 |
教科書4章 |
190minutes |
5. |
文字列表現と文字列探索 BM法 |
教科書7章 |
190minutes |
6. |
文字列探索 KMP法 |
教科書7章 |
190minutes |
7. |
量子アルゴリズム |
インターネット等で自分で調査する |
190minutes |
8. |
グラフ(1)データ構造、DAG |
教科書6章 |
190minutes |
9. |
グラフ(2)最短経路 |
教科書6章 |
190minutes |
10. |
正規表現とオートマトン |
インターネット等で自分で調査する |
190minutes |
11. |
オートマトンと状態遷移機械 |
前回の授業資料の再読 |
190minutes |
12. |
アルゴリズム設計論(1) 再帰、分割統治法、充足可能問題 |
教科書8章 |
190minutes |
13. |
アルゴリズム設計論(2) その他のアルゴリズム |
教科書8章、9章 |
190minutes |
14. |
試験および試験の解説 |
試験準備 |
190minutes |
Total. |
- |
- |
2660minutes |
Evaluation method and criteria
3回以上実施する演習レポート(40%)および期末試験(60%)の総合得点が60%以上になったものを合格とする。
授業中に出題する確認問題等が自力で解ければ,期末試験は60%である.
演習レポートは必ず提出すること。指示したことが最低限記述してあれば60%である.
レポートではプログラムを作成するため,情報処理演習やプログラミング1・2で使った開発環境を残しておくこと.
Feedback on exams, assignments, etc.
ways of feedback |
specific contents about "Other" |
Feedback in the class |
|
Textbooks and reference materials
参考書:浅野哲夫著「IT Textシリーズ アルゴリズム論」(オーム社)。
(参考書だが,準教科書に近い.できれば購入すること.)
その他の参考書:石畑著「アルゴリズムとデータ構造」(岩波書店)
エイホ他著「データ構造とアルゴリズム」(培風館)
ヴィルト著「アルゴリズムとデータ構造」(近代科学社)
履修前提科目:「プログラミング1」「プログラミング2」
Office hours and How to contact professors for questions
- 授業当日の4限終了後(16:40~).
それ以外の時間帯については,初回授業にて連絡する.
Non-regionally-oriented course
Development of social and professional independence
- Course that cultivates an ability for utilizing knowledge
- Course that cultivates a basic problem-solving skills
About half of the classes are interactive
Course by professor with work experience
Work experience |
Work experience and relevance to the course content if applicable |
Applicable |
企業にてシステム・プログラミング言語の研究・開発に従事した教員が,データ構造やアルゴリズムについて説明する. |
Education related SDGs:the Sustainable Development Goals
- 9.INDUSTRY, INNOVATION AND INFRASTRUCTURE
Last modified : Tue Sep 17 18:16:50 JST 2024