講義内容詳細:データ構造とアルゴリズム

戻る
年度/Academic Year 2024
授業科目名/Course Title (Japanese) データ構造とアルゴリズム
英文科目名/Course Title (English) Data Structures and Algorithms
学期/Semester 後期 単位/Credits 2
教員名/Instructor (Japanese) DUERST,Martin J.
英文氏名/Instructor (English) DURST, Martin Jakob

講義概要/Course description
This course will be given in Japanese, with lecture materials in English. / この授業は EJ 科目です。
To process huge and increasing amounts of data efficiently is at the core of Information Technology. Also, to solve new problems, new problem solving methods (algorithms) are necessary.
大量のデータを素早く処理するのは情報テクノロジーの特長でもあり宿命でもある。Web の時代ではデータの量が膨大に膨らむため、効率よく処理することが一層大切になる。更に、新しい問題を解決するには新しい問題解決法 (アルゴリズム) とデータ構造が必要になる。
達成目標/Course objectives
Understand the main principles and methods for the design and analysis of data structures and algorithms, and be able to apply them to practical problems.
学部・研究科のディプロマポリシー(卒業認定・学位授与の方針)に基づき、当該科目を履修することで身につく能力 / Abilities to be acquired by completing the course in accordance with the faculty and graduate school diploma policy (graduation certification and degree conferral)
学部・研究科のディプロマポリシー(卒業認定・学位授与の方針)/ Undergraduate and Graduate Diploma Policy (Graduation Certification and Degree Conferral)
授業計画/Lecture plan
1
授業計画/Class 【一回目のみオンデマンドで実施・first lecture only is on demand】
Algorithms and Data Structures: Concepts and Applications / アルゴリズムとデータ構造の概要と応用分野
事前学習/Preparation 特になし
事後学習/Reviewing 膨大なデータについての宿題の提出
2
授業計画/Class Representation and Evaluation of Algorithms / アルゴリズムの表現と評価
事前学習/Preparation 復習; ミニテスト (不定期) のための準備; 疑似コードとして利用される Ruby のインストール
事後学習/Reviewing 簡単なアルゴリズムの実行ステップ数の調査
3
授業計画/Class Asymptotic Time Complexity and the Big-O Notation / 漸近的計算量と O 記法
事前学習/Preparation 復習; ミニテスト (不定期) のための準備高校の教科書などで対数や極限についての調査・再確認
事後学習/Reviewing 毎日の授業資料の確認、特定の計算量 (例: O(1), O(n log n) など) のアルゴリズムの調査
4
授業計画/Class Abstract Datatypes and Data Structures; Stacks, Queues, ... / 抽象データ型とデータ構造、スタック、キューなど
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 抽象データ型の実装の比較
5
授業計画/Class Heaps / ヒープ
事前学習/Preparation 復習; ミニテスト (不定期) のための準備; 抽象データ型の順位キューの実装
事後学習/Reviewing ヒープの初期作成の計算量の調査
6
授業計画/Class Simple Sorting Algorithms, Divide and Conquer, Merge Sort / 単純な整列法、分割統治法、マージソート
事前学習/Preparation 復習; ミニテスト (不定期) のための準備; 整列の応用を考案・調査
事後学習/Reviewing 手作業による処理についてのレポートの提出
7
授業計画/Class Quicksort, Average Time Complexity / クイックソート、平均計算量
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing カードやウェブアニメーションを使った整列アルゴリズムの復習
8
授業計画/Class Dictionaries and their Implementation: Binary Trees, ... / 辞書とその実装: 二分木など
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 大きさ n の二分木の最大・最低の高さの計算
9
授業計画/Class Balanced Trees / 平衡木
事前学習/Preparation 復習; ミニテスト (不定期) のための準備; 2-3-4木への項目の挿入のアルゴリズムの公安
事後学習/Reviewing B+木のノード数・高さの計算
10
授業計画/Class Hash Functions and Hash Tables / ハッシュ関数とハッシュ表
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing プログラム言語 Ruby のハッシュの実装の調査
11
授業計画/Class Algorithms for String Matching / 文字列照合のアルゴリズム
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 文字列照合の疑似コードの実装の確認
12
授業計画/Class Dynamic Programming / 動的計画法
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 動的計画法が応用可能な問題の調査
13
授業計画/Class Algorithm Design Methods / アルゴリズムの設計方法
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 期末試験への準備
14
授業計画/Class NP-Completeness, Reducibility / NP-完全性、帰着可能性
事前学習/Preparation 復習; ミニテスト (不定期) のための準備; 三つの (NP) 問題の共通点の発見
事後学習/Reviewing 期末試験への準備
15
授業計画/Class Approximation Algorithms / 近似アルゴリズム
事前学習/Preparation 復習; ミニテスト (不定期) のための準備
事後学習/Reviewing 期末試験への準備
授業方法/Method of instruction
区分/Type of Class 対面授業 / Classes in-person
実施形態/Class Method 通常型 / regular
活用される授業方法/Teaching methods used
成績評価方法/Evaluation
1 100% 授業中のミニテスト: 30%、演習課題: 20%、期末試験: 50% (目安)
教科書/Textbooks
 コメント
Comments
1 授業資料として使える教科書のリストを配布する。必ず教科書を一冊熟読する。
参考書/Reference books
 コメント
Comments
 
1 ウェブページ (http://www.sw.it.aoyama.ac.jp/2024/DA) 参照
授業関連情報/Class-related information
 件名/Title内容/Contents備考/Memo
1 Teacher's email address duerst@it.aoyama.ac.jp