![]()  | 
    
| 科目名/Course: データ構造とアルゴリズム/Data Structures and Algorithms | |
| 科目一覧へ戻る | 2023/11/02 現在 | 
| 科目名(和文) /Course  | 
          データ構造とアルゴリズム | 
|---|---|
| 科目名(英文) /Course  | 
          Data Structures and Algorithms | 
| 時間割コード /Registration Code  | 
          23181001 | 
| 学部(研究科) /Faculty  | 
          情報工学部 | 
| 学科(専攻) /Department  | 
          人間情報工学科/スポーツシステム工学科 | 
| 担当教員(○:代表教員)
                             /Principle Instructor (○) and Instructors  | 
          ○佐藤 洋一郎 , 山内 仁 | 
| オフィスアワー /Office Hour  | 
          
              佐藤 洋一郎(毎週木曜日の6限目に設定するので,来室してください. これ以外の時間帯について,在室していれば対応しますが,メール等で予約してくれた方が確実です.) 山内 仁(金曜日3限目(12:40-14:10) の他,在室時であれば極力対応します)  | 
        
| 開講年度 /Year of the Course  | 
          2023年度 | 
| 開講期間 /Term  | 
          前期 | 
| 対象学生 /Eligible Students  | 
          2年 | 
| 単位数 /Credits  | 
          2.0 | 
| 更新日 /Date of renewal  | 
          2023/02/26 | 
|---|---|
| 使用言語 /Language of Instruction  | 
            日本語 | 
| オムニバス /Omnibus  | 
            該当なし | 
| 授業概略と目的 /Cource Description and Objectives  | 
            
計算機プログラムの骨格をなす2つの要素である,「処理の?法」である「アルゴリズム」と「データの保持?法」であるデータ構造」の基礎を習得する.本講義では,Cなど特定のプログラミング言語への依存を極力避けて,プログラムを作成する上で基本となる考え方について講述する.具体的な目標は次の通りである. 1)アルゴリズムとは何かを計算量の概念とともに理解する. 2)リスト中の特定の値を探索するアルゴリズムを理解する 3)リストの要素を整列するアルゴリズムを理解する. 4)文字列検索,経路探索の基本的な手法を理解する  | 
          
| 履修に必要な知識?能力?キーワード /Prerequisites and Keywords  | 
            
C言語またはほかのプログラミング言語に関する基礎知識(簡単なプログラムが組めること). 初歩的な解析学の知識(極限,オーダー). キーワード: アルゴリズム,データ構造,再帰  | 
          
| 履修上の注意 /Notes  | 
	    分からなければ図書館に色々な本があるので勉強してください.ウエブ検索しても良いが時々ウソの内容があるので注意すること. | 
| 教科書 /Textbook(s)  | 
	    
 平田 富夫 アルゴリズムとデータ構造(第3版) 森北出版 978-4627726536  | 
	  
| 参考文献等 /References  | 
	    
近藤嘉雪,”定本 Cプログラマのためのアルゴリズムとデータ構造”,ソフトバンククリエイティブ,1998. 書名に「アルゴリズムとデータ構造」(あるいは「データ構造とアルゴリズム」)ということばを含むものなら何でもよい. 自分の好みに合ったものを見つけて学習して欲しい. 少し変わったものとして, 結城浩,”数学ガール(乱択アルゴリズム)”,ソ フトバンククリエイティブ,2011. は対話調でアルゴリズムや計算量の考え方が丁寧に書かれている(やさしく書かれている).  | 
	  
| 自主学習ガイド /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 | [ソートアルゴリズム] データを?定の順序に?れ替えるソートアルゴリズムを分類し,?較に基づくソートアルゴリズムの理論的限界を学ぶ.  | 
                ||
| 7 | 8 | [C?語による実装と動作確認] ソートアルゴリズムをC?語を?いて実装し,その動作を確かめる.  | 
                ||
| 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 | ||||