<理工共通>データ構造とアルゴリズム
理工学部 - 情報理工学科
SCT63600
コース情報
担当教員: 宮本 裕一郎
単位数: 2
年度: 2024
学期: 秋学期
曜限: 月2
形式: 対面授業
レベル: 200
アクティブラーニング: あり
他学部履修: 可
評価方法
定期試験
定期試験期間中
小テスト等
その他
小テストはMoodleの小テストの機能を用いて実施する予定である.また,接続不良に備えて,小テストの提出には少し余裕を取る予定である. 筆記試験においては,判読しづらい記述は減点とする.
詳細情報
概要
アルゴリズムは計算機科学,情報工学,プログラミングの基礎である.そして適切なデータ構造は効率的なアルゴリズムの実装には欠かせないものである.本講義ではデータ構造とアルゴリズムの基礎を紹介する.具体的には,アルゴリズムの記述,アルゴリズムの良さの評価,リスト構造,ヒープ,ハッシュとバケット,再帰アルゴリズム,分割統治法,動的計画法,貪欲アルゴリズム,ネットワークフロー,近似アルゴリズム,ヒューリスティクス,乱択アルゴリズム,オンラインアルゴリズムなどを扱う.データ構造とアルゴリズムの基礎の習得だけでなく,論理的なものの考え方の習得も目的としている. この講義は情報理工学科のカリキュラム・ポリシーの4に掲げる「最先端情報技術の利活用と創出を担う人材育成に必要な能力を修得させる」科目に相当する.
目標
典型的な問題に対するアルゴリズムを理解し,類似の問題に対しては適切なアルゴリズムを適用できるようになることを目標とする.ここで言うアルゴリズムの適用には,簡単な実装(のイメージトレーニング)も含む.また,初めて見る問題に対しても,ある程度適切なアルゴリズムを設計できるようになることを発展的な目標とする.さらに,それらの中に楽しみを見いだせるようになるならば更に良い. なおこれらは,情報理工学科のディプロマ・ポリシーの4に掲げる「最先端情報技術を利活用・創出できる能力」を身につけることに相当する.
授業外の学習
本講義で扱う内容は初めて出会うものが多いと思われるので,基本的には予習を必要としないが,場合によっては講義中に「次回の講義の予習」を指示することもある.本講義の内容を自ら復習することが望ましい.目安として講義資料に演習問題を用意してある.この演習問題を解くことを毎回190分程度行う.
所要時間: 190分
スケジュール
- ガイダンス,アルゴリズムとは?データ構造とは?
- アルゴリズムの記述と正当性の確認
- アルゴリズムの性能と計算複雑度
- 無向グラフと有向グラフ
- グラフ探索
- 有向グラフとアルゴリズム
- バケットソート,基数ソート,ヒープソート
- 貪欲アルゴリズム
- 分割統治法
- 動的計画法
- ネットワークフロー
- 計算困難問題に対するアプローチ
- 近似アルゴリズム,乱択アルゴリズム,ハッシュ,オンラインアルゴリズム
- いくつかのトピックス
教科書
特定のテキストはないが,講義の中でトピックに応じた参考書を随時紹介する.
参考書
書籍情報はありません。