2025年度後期アルゴリズム基礎論

曜日・時限 火曜日2時限 期別 後期 週時間数 2
ナンバリング HW130601
開講学科等 総合情報学部-デジタルゲーム学科
教員名 魚井 宏高
魚井 宏高
職務履歴

https://research.osakac.ac.jp/index.php?%e9%ad%9a%e4%ba%95%e3%80%80%e5%ae%8f%e9%ab%98

教員情報データベースに遷移します

目的

コンピュータによる処理の手順を表すアルゴリズムはプログラムよりもより抽象的な概念であり,プログラミング以前に覚えておくべきことだとも言える.本科目では,探索や並べ替えやといった基本的なアルゴリズムについて学び,その効率に関する基本的概念について学習する.また,それらについて実際に動作することを確認するためのプログラミングも行う.
この科目を習得することで,デジタルゲームとエンタテインメントコンテンツ分野における基礎的な専門知識を包括的に有し,それらを適切に応用する能力を備えることができる.

なお,演習で使用するプログラミング言語はC++言語であるので,新入生で2024年度前期に「プログラミング演習1」を履修していない場合には,Cプログラミングについての基本的な知識を予習しておくことを強く勧める.また,C言語と(本科目で扱う)C++言語の違いについては解説する.

授業計画

授業回 形式 学修内容 学修課題
1 AC アルゴリズムとは?
プログラミング・配列に関する復習
C言語と本科目で取り扱うC++言語の範囲の差異についての解説
事前学修 C言語について復習しておくこと(3時間)
事後学修 小レポートの内容について再度復習すること(2時間)
2 AC 探索(サーチ)アルゴリズムの基礎
・逐次探索アルゴリズム二種
事前学修 配布スライドを読み,探索アルゴリズムについて理解しておくこと(2時間)
事後学修 課題の小レポートを書くこと(2時間)
3 AC 探索(サーチ)アルゴリズムの基礎
・二分探索アルゴリズム
事前学修 配布スライドを読み,二分探索アルゴリズムについて理解しておくこと(2時間)
事後学修 効率の違いについて,実際に確認すること(2時間)
4 AC アルゴリズムの効率について1
再帰的アルゴリズムの基礎
事前学修 配布スライドを読み,種々の再帰アルゴリズムについて理解しておくこと(2時間)
事後学修 再帰的な考え方について復習すること(2時間)
5 AC 並べ替え(ソーティング)とは?
基本的なソーティングアルゴリズム
・バブルソート
・選択ソート
事前学修 配布スライドを読み,バブルソートアルゴリズムについて理解しておくこと(2時間)
事後学修 ソートアルゴリズムの動作の比較を行うこと(2時間)
6 AC 並べ替え(ソーティング)とは?
基本的なソーティングアルゴリズム
・挿入ソート
・シェルソート
事前学修 配布スライドを読み,挿入ソートアルゴリズムについて理解しておくこと(2時間)
事後学修 ソートアルゴリズムの動作の比較を行うこと(2時間)
7 AC 少し変わったソーティングアルゴリズム
・バケツソート
・基数ソート
事前学修 配布スライドを読み,バケツソートアルゴリズムについて理解しておくこと(2時間)
事後学修 特に基数ソートの動作について確認すること(2時間)
8 AC アルゴリズムの効率について2
高度なソーティングアルゴリズム
・マージソート
事前学修 配布スライドを読み,マージソートアルゴリズムについて理解しておくこと(2時間)
事後学修 高度なソートアルゴリズムの効率について理解すること(2時間)
9 AC 高度なソーティングアルゴリズム
・ヒープソート
事前学修 配布スライドを読み,ヒープソートアルゴリズムについて理解しておくこと(2時間)
事後学修 ヒープ木の構成について理解すること(2時間)
10 AC 高度なソーティングアルゴリズム
・クイックソートとその改良
事前学修 配布スライドを読み,クイックソートアルゴリズムについて理解しておくこと(2時間)
事後学修 クイックソートの性質について理解すること(2時間)
11 AC 高度なソーティングアルゴリズム
・クイックソートの並列化
・バイトニックソートなど
ソートアルゴリズムの比較方法
事前学修 配布スライドを読み,種々のソートアルゴリズムについて理解しておくこと(2時間)
配布スライドを読み,ソートアルゴリズムの効率比較方法について理解しておくこと(2時間)
事後学修 取り上げたソートアルゴリズムの適切な利用場面について考察すること(3時間)
12 A パターンマッチング(文字列検索)アルゴリズム と その他の基本的なアルゴリズムについて
連結リスト・二分木など
時間のある範囲で取り上げる
事前学修 配布スライドの新規部分について目を通しておくこと(2時間)
事後学修 できれば参考書等も読むと良い(3時間)
13 ACI 講義のまとめと総合的な演習 事前学修 授業内容全般について,配布スライドを読んでよく復習しておくこと(3時間)
事後学修 復習した内容について再確認すること(4時間)

授業形式記号

  • A:一斉授業(通常の講義)
  • B:問題発見・解決学習、プロジェクト学習
  • C:体験、実験、実習、演習など
  • D:調査 分析、解析など
  • E:ものづくり、作品制作
  • F:グループワーク(ディスカッション・ディベートを含む)
  • G:プレゼンテーション
  • H:地域・企業 連携型学習
  • I:その他

到達目標

講義内で取り上げる全ての探索,並べ替えアルゴリズムについて,
・様々な状況下において,適切なアルゴリズムの選択ができるようになる
・計算量の基礎的概念であるオーダーについて理解する
・状況に応じて適切な変更を施すことができる

科目に関連するディプロマポリシー項目
〇2024年度以降入学生
下記、記載のカリキュラムマップを参照。
https://www.osakac.ac.jp/about/policy/faculty/
※各学科名称のカリキュラムポリシー下段の
 「カリキュラムマップ」よりご確認ください。

〇 2023年度以前の入学生
修得する資質・能力:知識・理解【DP-W-1-1】

評価方法と評価観点

評価方法 配点合計知識・理解力応用力コミュニケーション力態度・志向性創造力 合計
定期試験またはレポート試験 60% 60% 40% 100%
小テスト、小論文 0%
グループワーク 0%
プレゼンテーション 0%
レポート、宿題 40% 80% 20% 100%
授業での姿勢(ノート、質疑など) 0%
作品、パフォーマンス(実技、実演) 0%
その他1(具体的に: 0%
その他2(具体的に: 0%
100% 68% 32% 0% 0% 0% 100%

教科書・参考書

教科書は用いず,授業前にはその時間で行う内容をまとめたスライドファイルを配布するので,必ずダウンロードして目を通しておくこと.

参考書としては下記の書籍を推薦する.
「定本 Cプログラマのためのアルゴリズムとデータ構造」 近藤 嘉雪 SBクリエイティブ ISBN-978-4797304954
  電子書籍もある.
「アルゴリズムとプログラミングの図鑑【第2版】」 森巧尚著 マイナビ出版 ISBN978-4839977092
    扱っている言語が多く,平易な入門書である,図解も多くおすすめする.電子書籍もある.

更に高度なアルゴリズムについて勉強したい場合には
「IT Text アルゴリズム論」 北陸先端科学技術大学院大学 浅野哲夫 名古屋工業大学 和田幸一 大阪大学 増澤利光 共著 オーム社 ISBN978-4274132780
を強く勧める.

オフィスアワー

後期火曜4限 10-306室まで,できるだけ授業後に申し出て下さい.
学内外の用務のため、オフィスアワーでも教員が教員室に不在の可能性があります.
事前予約の場合はできるだけ対応します.
電子メールでの相談はuoi@oecu.jpに送ってください(ただし,成績に関する問い合わせには返答できません).
授業内容に関する質問については,Moodleの授業掲示板(質問室)で行ってもらう方が望ましいです.
遠隔(ビデオ会議)でも対応しますが,時間調整のために事前にメールで予約してください.

その他

欠格条件:
課題がほぼ毎回あるが,未提出が4回以上で,定期試験の成績にかかわらず,最終成績を0点とする.
また,課題提出が0回かつ定期試験未受験の場合は,最終成績は評価不能(E)とし,卒業再試験の資格を失うので注意すること.

注意事項:
授業計画および,講義でとり上げる題材は,進行度合いに応じて変更される可能性があります.
Moodleを用いて,資料・教材の配布,小テスト,レポート提出を行います.
ほとんどの回でノートPCを用いるので,忘れないように. 故障などの場合にはサポートデスクで代替機を借りておくように.

紙での課題提出は行わない(PDFでの提出が基本)が不適切な用紙サイズの場合には減点する.
宿題・レポートは返却しないが,解答例を示したり,一部を取り上げての評価は講義中に行う.

実務経験のある教員による授業科目