2019年度 データ構造とアルゴリズム   Data Structures and Algorithms

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
情報工学系
担当教員名
小池 英樹 
授業形態
講義 / 演習
曜日・時限(講義室)
火5-6(W321)  金5-8(W321)  
クラス
-
科目コード
CSC.T271
単位数
3
開講年度
2019年度
開講クォーター
4Q
シラバス更新日
2019年3月18日
講義資料更新日
-
使用言語
日本語
アクセスランキング

講義の概要とねらい

本講義では,アルゴリズムとデータ構造の基本を学ぶ.前半では基本的なデータ構造とそのデータ構造を操作するアルゴリズム,後半ではより高度なアルゴリズムについて学ぶ.

到達目標

本講義を履修することにより以下を修得する.
(1) 計算機科学の基礎となるデータ構造とアルゴリズムに関する知識
(2) 上のデータ構造とアルゴリズムのCによる実装
(3) 各アルゴリズムの効率に関する知識

キーワード

リスト,スタック,木,2分木,グラフ,ソート,分割統治法,動的計画法,文字列照合

学生が身につける力

国際的教養力 コミュニケーション力 専門力 課題設定力 実践力または解決力
- - -

授業の進め方

2回の講義の後,1回の演習を行う.演習では講義で学んだアルゴリズムとデータ構造をCプログラムとして実装する.

授業計画・課題

  授業計画 課題
第1回 イントロダクション アルゴリズムとはなにかを学ぶ
第2回 抽象データ型,計算効率 抽象データ型、計算効率について学ぶ
第3回 プログラミング演習 Cプログラミングの基礎を学ぶ
第4回 基本的なデータ構造:リスト,スタック,待ち行列 リスト、スタック、待ち行列について学ぶ
第5回 基本的なデータ構造:グラフ,木と2分木 グラフ、木、2分木を理解する
第6回 プログラミング演習 基本的データ構造のプログラミングを学ぶ
第7回 基本的なデータ構造:辞書とハッシュ 辞書とハッシュについて学ぶ
第8回 順序付き集合の処理:ヒープ,2分探索木,平衡探索木 順序付き集合について学ぶ
第9回 プログラミング演習 集合についてのプログラミングを学ぶ
第10回 整列のアルゴリズム:バブルソート,挿入ソート,選択ソート 基本的整列アルゴリズムを学ぶ
第11回 整列のアルゴリズム:ヒーブソート,マージソート,クイックソート より高速な整列アルゴリズムを学ぶ
第12回 プログラミング演習 整列アルゴリズムのプログラミングを学ぶ
第13回 中間試験
第14回 分割統治法 分割統治法について学ぶ
第15回 グラフアルゴリズム: グラフのデータ構造,深さ優先探索,幅優先探索 グラフアルゴリズムについて学ぶ
第16回 グラフアルゴリズム:最短経路(Dijkstra, Floyd-Warshall),最小全域木(Kruskal, Prim) グラフアルゴリズムについて学ぶ
第17回 プログラミング演習 講義中に指定する
第18回 文字列の照合 文字列照合のアルゴリズムについて知る
第19回 文字列の照合 文字列照合のアルゴリズムについて知る
第20回 プログラミング演習 講義中に指定する
第21回 高度な問題に対するアルゴリズム 高度な問題に対するアルゴリズムを学ぶ
第22回 期末試験

教科書

資料を講義中に配布

参考書、講義資料等

茨木俊秀:「Cによるアルゴリズムとデータ構造」,オーム社,ISBN 978-4-274-21604-6
セジウィック:「アルゴリズムC 第1〜4部 -基礎・データ構造・整列・探索」,近代科学社,ISBN 978-4764905603

成績評価の基準及び方法

中間テスト (30%)
プログラミング課題 or レポート (40%)
期末試験 (30%)

関連する科目

  • GRE.C101 : 情報基礎学第一
  • GRE.C102 : 情報基礎学第二
  • CSC.T243 : 手続き型プログラミング基礎
  • CSC.T253 : 手続き型プログラミング発展
  • LAS.I121 : コンピュータサイエンス第一
  • LAS.I122 : コンピュータサイエンス第二

履修の条件(知識・技能・履修済科目等)

履修条件は特に設けないが,関連する科目を履修していることが望ましい.

このページのトップへ