![]() ![]() |
科目名/Course: データ構造とアルゴリズム/Data Structures and Algorithms | |
科目一覧へ戻る | 2023/11/02 現在 |
科目名(和文) /Course |
データ構造とアルゴリズム |
---|---|
科目名(英文) /Course |
Data Structures and Algorithms |
時間割コード /Registration Code |
21140601 |
学部(研究科) /Faculty |
情報工学部 |
学科(専攻) /Department |
情報通信工学科 |
担当教員(○:代表教員)
/Principle Instructor (○) and Instructors |
○滝本 裕則 |
オフィスアワー /Office Hour |
滝本 裕則(木曜5限, 2608室) |
開講年度 /Year of the Course |
2023年度 |
開講期間 /Term |
前期 |
対象学生 /Eligible Students |
2年 |
単位数 /Credits |
2.0 |
更新日 /Date of renewal |
2023/02/21 |
---|---|
使用言語 /Language of Instruction |
日本語 |
オムニバス /Omnibus |
該当なし |
授業概略と目的 /Cource Description and Objectives |
プログラムを作成するにあたり,「処理の方法」である「アルゴリズム」と「データの保持方法」である「データ構造」は,密接な関係があるとともに非常に重要でもある.本講義では,それらの評価尺度の 1つである計算量を理解するとともに,基本的なアルゴリズム?データ構造の考え方と設計方針を理解することを目的とする. |
履修に必要な知識?能力?キーワード /Prerequisites and Keywords |
C言語を用いて簡単なプログラムが組めることが望ましい. キーワード: アルゴリズム,データ構造,再帰 |
履修上の注意 /Notes |
|
教科書 /Textbook(s) |
平田 富夫 「アルゴリズムとデータ構造(第3版) 」 |
参考文献等 /References |
近藤嘉雪, 「定本 Cプログラマのためのアルゴリズムとデータ構造」 その他,書名に「アルゴリズム」や「データ構造」という単語が入っている書籍は多い.そのようなものを参照することにより多面的な理解ができると思う. |
自主学習ガイド /Expected Study Guide outside Coursework/Self-Directed Learning Other Than Coursework |
具体的な問題に対して実際にプログラムを作成しその動作を確認することにより,実際の「動作」が理解できるだろう. |
資格等に関する事項 /Attention Relating to Professional License |
|
アクティブラーニングに関する事項 /Attention Relating to Active Learning |
本科目では以下のアクティブラーニングを採用している. ?振り返り(小テスト) ?課題(レポート) |
実務経験に関する事項 /Attention Relating to Operational Experiences |
該当なし. |
備考 /Notes |
No. | 単元(授業回数) /Unit (Lesson Number) |
単元タイトルと概要 /Unit Title and Unit Description |
時間外学習 /Preparation and Review |
配付資料 /Handouts |
---|---|---|---|---|
1 | 1 | [アルゴリズムと計算量] 「アルゴリズム」の定義を知り,その評価指標としての「計算量」の概念を理解する.また,計算量を記述する方法を学び,実際のアルゴリズムに対して計算量を求める. |
今回の内容に関して教科書を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
2 | 2 | [再帰] 再帰の仕組みと様々な再帰プログラムの例について学ぶ. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
3 | 3 | [基本データ構造] 基本的なデータ構造であるリスト?スタック?キュー?ヒープについて学ぶ。 |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
4 | 4 | [C言語による実装と動作確認] 基本的なデータ構造について,C言語を用いて実装し,その動作を確かめる. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
5 | 5~6 | [ソートアルゴリズム] データを一定の順序に入れ替えるソートアルゴリズムを分類し,比較に基づくソートアルゴリズムの理論的限界を学ぶ. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
6 | 7 | [C言語による実装と動作確認] ソートアルゴリズムをC言語を用いて実装し,その動作を確かめる. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
7 | 8 | [二分探索木] 格納するデータが順序構造を持つことを前提に,単純なリストよりも効率よくデータを探索することのできる二分探索木について理解する. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
8 | 9 | [ハッシュ] 離散的なデータをより効率的に探索するデータ構造であるハッシュについて理解する. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
9 | 10~11 | [グラフの探索] グラフの概念とデータとしての表現方法,さらに探索方法について学ぶ. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
10 | 12~13 | [経路探索] グラフ上の 2点間の最短経路を見つけるアルゴリズムを紹介する. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
11 | 14 | [文字列の探索] 日常的に使われる「文字列探索」に対して基本的なアルゴリズムから工夫した手法までを紹介する. |
前回までの内容を復習.今回の内容に関して教科書の該当箇所を事前に確認. | 授業資料(スライド資料,動画)を適宜配布. |
12 | 15 | [まとめ] 講義全体のまとめを行う. |
前回までの内容を復習. | 授業資料(スライド資料,動画)を適宜配布. |
13 | 16 | [試験] 試験を行う. |
別途指示する. |
No. |
到達目標 /Learning Goal |
知識?理解 /Knowledge & Undestanding |
技能?表現 /Skills & Expressions |
思考?判断 /Thoughts & Decisions |
伝達?コミュニケーション /Communication |
協働 /Cooperative Attitude |
||
---|---|---|---|---|---|---|---|---|
1 | アルゴリズムの表現方法を学び,適切な表現?説明ができる.(D) | ○ | ○ | ○ | ○ | |||
2 | アルゴリズムの解析について理解し,説明することができる.(D) | ○ | ○ | ○ | ||||
3 | データ構造とそれを操作するアルゴリズムの構造を理解し,説明ができる.(D) | ○ | ○ | ○ |
No. |
到達目標 /Learning Goal |
定期試験 /Exam. |
演習課題およびレポート | 学習態度 | |||
---|---|---|---|---|---|---|---|
1 | アルゴリズムの表現方法を学び,適切な表現?説明ができる.(D) | ○ | ○ | ○ | |||
2 | アルゴリズムの解析について理解し,説明することができる.(D) | ○ | ○ | ○ | |||
3 | データ構造とそれを操作するアルゴリズムの構造を理解し,説明ができる.(D) | ○ | ○ | ○ | |||
評価割合(%) /Allocation of Marks |
50 | 40 | 10 |