科目コード 科      目      名  
3155 プログラミング論III : Algorithms and Data Structure Systems  
教 員 名 武藤義彦 : MUTO Yoshihiko  
学年 単位・時間 科目区分 授業形態 学修単位
4B 1・100分 必修 講義・後期
授業概要 代表的なデータ構造とアルゴリズムを学ぶと同時に,それらをJavaプログラムにおいてクラスとして実現する手法を身につける.前半は基本的なデータ構造を扱い,後半では整列や探索(照合)などのアルゴリズムの考え方および実装を説明する.  
 
 
 
 
 
到 達 目 標 評 価 方 法  
(1) それぞれのデータ構造とアルゴリズムを論理的に理解できる.
(2) データ構造を Java のクラスとして実装できる.
(3) それぞれのアルゴリズムの特徴を説明できる.
評価方法は,(1)中間試験,(2)期末試験,(3)レポートを評価する.評価配分は,(1)35%、(2)35%,(3)30%とする.  
 
 
 
 
 
学習・教育目標 D@ JABEE基準1(1) (d)-(3)
授      業      計      画 項    目 内      容  
  イントロダクション データ構造とアルゴリズムの必要性,OOPの用語や考え方の整理,this オブジェクト,オーダ記法
第1
 
  計算量 線形探索,二分探索を例とした計算量の求め方
第2
 
  連結リスト(1) 単方向連結リストの概念,基本メソッドの理解
第3
 
  連結リスト(2) 単方向連結リストへのメソッドの追加(要素の探索,削除)
第4
 
  連結リスト(3) 双方向連結リストの概念の理解と実装
第5
 
  ハッシュ(1) ハッシュ関数,チェイン法(分離連鎖法)の概念と実装の理解
第6
 
  ハッシュ(2) 再ハッシュ,オープンアドレス法(空き番地法)の概念と実装の理解
第7
 
  中間まとめ 中間まとめとして試験を実施する
第8
 
  ハッシュ(3) ハッシュ法の実問題への適用(演習)
第9
 
  整列(1) バブルソート,選択ソート,挿入ソートの概念と実装の理解
第10
 
  整列(2) シェルソート,クイックソートの概念と実装の理解
第11
 
  整列(3) 基数ソートの概念と実装の理解
第12
 
  文字列照合 bruto-force アルゴリズム,Boyer-Moore法の概念と実装の理解
第13
 
  動的計画法 動的計画法によるナップザック問題の解法
第14
 
  まとめ 全体の学習事項のまとめと授業評価アンケート調査を行う
第15
 
関連科目    
教 科 書 近藤嘉雪,Javaプログラマのためのアルゴリズムとデータ構造,ソフトバンク  
参 考 書 広瀬貞樹,あるごりずむ,近代科学社  
授業評価・理解度 最終回に授業評価アンケートを行う.  
副担当教員    
備  考 適宜プリントを配布する