シラバス参照

授業情報/Course information

科目名/Course: データ構造とアルゴリズム/Data Structures and Algorithms
科目一覧へ戻る 2025/03/25 現在

授業基本情報
科目名(和文)
/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 [定期試験]
筆記試験を実施する.
前回課題の回答例
授業評価詳細情報
到達目標及び観点/Learning Goal and Specific Behavioral Viewpoints
No. 到達目標
/Learning Goal
知識・理解
/Knowledge & Undestanding
技能・表現
/Skills & Expressions
思考・判断
/Thoughts & Decisions
伝達・コミュニケーション
/Communication
協働
/Cooperative Attitude
1 アルゴリズムに応じて表現⽅法を選定することができる(D)
2 簡単なアルゴリズムを解析することができる(D)
3 データ構造とそれを操作するアルゴリズムの構造を説明することができる(D)
成績評価方法と基準/Evaluation of Achievement
※出席は2/3以上で評価対象となります。
No. 到達目標
/Learning Goal
定期試験
/Exam.
課題およびレポート
1 アルゴリズムに応じて表現⽅法を選定することができる(D)
2 簡単なアルゴリズムを解析することができる(D)
3 データ構造とそれを操作するアルゴリズムの構造を説明することができる(D)
評価割合(%)
/Allocation of Marks
60 40

科目一覧へ戻る