![]()  | 
    
| 科目名/Course: データ構造とアルゴリズム/Data Structures and Algorithms | |
| 科目一覧へ戻る | 2025/09/12 現在 | 
| 科目名(和文) /Course  | 
          データ構造とアルゴリズム | 
|---|---|
| 科目名(英文) /Course  | 
          Data Structures and Algorithms | 
| 時間割コード /Registration Code  | 
          23181001 | 
| 学部(研究科) /Faculty  | 
          情報工学部 | 
| 学科(専攻) /Department  | 
          人間情報工学科 | 
| 担当教員(○:代表教員)
                             /Principle Instructor (○) and Instructors  | 
          ○山内 仁 | 
| オフィスアワー /Office Hour  | 
          
              山内 仁(時間:金曜日3限目(12:40-14:10)  場所:情報工学部棟 1F 2103室 ※事前に連絡をいただければ上記以外でも調整のうえで対応します)  | 
        
| 開講年度 /Year of the Course  | 
          2025年度 | 
| 開講期間 /Term  | 
          前期 | 
| 対象学生 /Eligible Students  | 
          2年,3年,4年 | 
| 単位数 /Credits  | 
          2 | 
| 更新日 /Date of renewal  | 
          2025/02/27 | 
|---|---|
| 使用言語 /Language of Instruction  | 
            日本語 | 
| オムニバス /Omnibus  | 
            該当なし | 
| 授業概略と目的 /Cource Description and Objectives  | 
            計算機プログラムにおいて、「処理の方法」である「アルゴリズム」と「データの保持方法」である「データ構造」は、密接な関係があるとともに効率的な処理を考えるうえで非常に重要である。本講義では、これらの評価尺度である計算量を理解するとともに、基本的なアルゴリズムおよびデータ構造の考え方の習得を目的とする。 | 
| 履修に必要な知識?能力?キーワード /Prerequisites and Keywords  | 
            
C言語またはほかのプログラミング言語に関する基礎知識を有し、簡単なプログラムが組めることが望ましい. キーワード: アルゴリズム,データ構造,再帰  | 
          
| 履修上の注意 /Notes  | 
	    |
| 教科書 /Textbook(s)  | 
	    「アルゴリズムとデータ構造(第3版)」、 平田 富夫、森北出版 | 
| 参考文献等 /References  | 
	    
関連書籍は多数刊行されているので、「アルゴリズム」「データ構造」をキーワードとして各自で分かりやすいと思うものを選ぶとよい。その際、利用方法についての解説本ではなく、考え方にも言及しているものが好ましい。例として、下記を挙げる。 ?「定本 Cプログラマのためのアルゴリズムとデータ構造」、近藤嘉雪、ソフトバンククリエイティブ 乐游棋牌_天天棋牌¥游戏下载官网附属図書館に書籍が所蔵されています。 https://opac.lib.oka-pu.ac.jp/opac/search?isbn=4797304952  | 
	  
| 自主学習ガイド /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 | [?分探索?] 格納するデータが順序構造を持つことを前提に,単純なリストよりも効率よくデータを探索することのできる?分探索?について理解する.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 5 | 5 | [ハッシュ] 離散的なデータをより効率的に探索するデータ構造であるハッシュについて理解する.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 6 | 6 | [C?語による実装と動作確認] 基本的なデータ構造について,C?語を?いて実装し,その動作を確かめる.  | 
                復習:前回課題の回答例に基づいた振り返り学習、実装課題解答 | 前回課題の回答例、実装課題 | 
| 7 | 7~8 | [ソートアルゴリズム] データを?定の順序に?れ替えるソートアルゴリズムを分類し,?較に基づくソートアルゴリズムの理論的限界を学ぶ.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 8 | 9 | [C?語による実装と動作確認] ソートアルゴリズムをC?語を?いて実装し,その動作を確かめる.  | 
                復習:前回課題の回答例に基づいた振り返り学習、実装課題解答 | 前回課題の回答例、実装課題 | 
| 9 | 10~12 | [グラフの探索] グラフの概念とデータとしての表現?法,さらに探索?法について学ぶ.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 10 | 13~14 | [経路探索] グラフ上の 2点間の最短経路を?つけるアルゴリズムを紹介する.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 11 | 15 | [?字列の探索] ?常的に使われる「?字列探索」に対して基本的なアルゴリズムから?夫した?法までを紹介する.  | 
                復習:前回課題の回答例に基づいた振り返り学習、講義内容に基づく課題解答 | 前回課題の回答例、講義内容資料および課題 | 
| 12 | 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  | 
                            60 | 40 | |||||