| 科目名 | アルゴリズムとデータ構造 |
| 担当者 | 只木 進一 |
| 開設学科 専攻・コース |
デジタル社会共創学環 |
| 分類 | 専門教育科目 選択科目 |
| 関連する 資格・免許 |
| 開講キャンパス | 開講年次 | 開設期 | 単位数 | 必修・選択 |
| 神埼 | 3年 | 前期 | 2単位 | 選択 |
| 授業の概要 及びねらい |
プログラミングに限らず、情報科学やデータサイエンスにおける問題解決においては、データ構造とアルゴリズムの理解が不可欠である。本科目では、これらの基礎を学び、実践的なスキルを身につけることを目指す。基本的なデータ構造であるリスト、キュー、スタック、集合、連想配列などについて講義し、さらにソートや探索アルゴリズムの基本的な手法についても講義する。また、計算量の概念を導入し、アルゴリズムの効率性について理解を促す。理論面だけでなく、実際のプログラム例を示しながら演習とともに講義を進めることで、知識と技術の定着を図る。 |
| 実務経験に 関連する 授業内容 |
|
| 授業の 到達目標 |
1)基本的なデータ構造を理解し、適切に選択することができる。 2)基本的なアルゴリズムを理解し、実装することができる。 3)計算量の概念を理解し、アルゴリズムの効率性を評価することができる。 |
| 学習方法 | ・毎回の演習課題の提出を通じて、習得度を確認する。 ・適宜、Pythonを用いたプログラミング演習を行う。 ・定期的に課題を課し、主体的に学習を進める姿勢を養う。 |
| アクティブラーニング の類型 |
⑩学期途中で課題をだし、レポートを纏めることによって能動的な学修を喚起する授業
|
| テキスト及び 参考書籍 |
辻 真吾「Pythonで学ぶアルゴリズムとデータ構造」講談社 2019年 4065178037 |
| ナンバリング | DI_D2_21 |
ディプロマ・ポリシー
との関連 (下線部分はDPへのリンク) |
Ⅱ、Ⅲ、Ⅳ |
| 評価基準・方法 | 評価割合% | 評価基準・方法 | 評価割合% |
| 定期試験 | 受講者の発表 | ||
| 小テスト等 | 授業の参加度 | 60 | |
| 宿題・授業外レポート | 40 | その他 | |
| 授業態度 | |||
| 合計 | 100 | ||
(表中の記号 ○評価する観点 ◎評価の際に重視する観点 %評価割合)
| 授業計画(学習内容・キーワードのスケジュール) | ||
| 第1週 | 事前学習(予習) | シラバスを読んでおく |
| 授業 | 作業環境確認、変数、データ型、制御構文、関数の復習 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第2週 | 事前学習(予習) | 講義資料を読んでおく: まとまりのあるデータの必要性について考える |
| 授業 | リスト、タプル、セット、辞書の基本操作と応用 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第3週 | 事前学習(予習) | 講義資料を読んでおく: 関数の役割について考える |
| 授業 | 関数の定義、引数、戻り値、再帰関数の基礎、クラス | |
| 事後学習(復習) | 演習問題を実施する | |
| 第4週 | 事前学習(予習) | 講義資料を読んでおく: 二進数について復習しておく |
| 授業 | 基本的なアルゴリズムと計算量 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第5週 | 事前学習(予習) | 講義資料を読んでおく: データを整列する方法について考える |
| 授業 | 泡立ち法、選択法のアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第6週 | 事前学習(予習) | 講義資料を読んでおく: 泡立ち法の改善点について考える |
| 授業 | マージソート、クイックソートのアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第7週 | 事前学習(予習) | 講義資料を読んでおく: リストから要素を見つける方法について考える |
| 授業 | 線形探索、二分探索のアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第8週 | 事前学習(予習) | 講義資料を読んでおく: 効率的な整列と探索について考える |
| 授業 | ヒープソート、ハッシュテーブルのアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第9週 | 事前学習(予習) | 講義資料を読んでおく: 処理の順序を管理する方法について考える |
| 授業 | キューとスタックの基本操作と応用、実装例 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第10週 | 事前学習(予習) | 講義資料を読んでおく: 簡単なグラフを描いてみる |
| 授業 | グラフの基本概念、表現方法、基本操作 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第11週 | 事前学習(予習) | 講義資料を読んでおく: 全ての要素への到達方法について考える |
| 授業 | 深さ優先探索、幅優先探索のアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第12週 | 事前学習(予習) | 講義資料を読んでおく: 幅優先探索を復習する |
| 授業 | ダイクストラ法のアルゴリズムと実装、計算量の解析 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第13週 | 事前学習(予習) | 講義資料を読んでおく: ナップザック問題について調べる |
| 授業 | 動的計画法の基本概念、ナップザック問題とその解法 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第14週 | 事前学習(予習) | 講義資料を読んでおく: クィックソート法の問題について考える |
| 授業 | 乱数生成の基本概念、モンテカルロ法の基礎 | |
| 事後学習(復習) | 演習問題を実施する | |
| 第15週 | 事前学習(予習) | 講義資料を読んでおく: 難しかった点を復習しておく |
| 授業 | これまでの内容の総復習、応用課題の演習 | |
| 事後学習(復習) | 難しかった点を振り返る | |
※事前・事後学習の時間は、講義科目は各90分、演習科目は各30分を原則とする。
※課題(試験やレポート等)に対するフィードバックを行います。
※課題(試験やレポート等)に対するフィードバックを行います。
| 備考 | ・毎回の演習問題については、解答例を提示し解説します。 ・一週間の中で、180分の事前・事後学習の時間(自習時間)を確保すること。 |