アルゴリズム -プログラミングの前に「アルゴリズム+データ構造」-

単位数 ナンバリングコード
2 DIF306
教員名 小野 良太
専門 サービス工学、複雑系工学、観光情報学
出身校等 北海道大学大学院 情報科学研究科博士後期課程修了,博士(情報科学)
現職 北海道情報大学 経営情報学部 講師
授業形態
前期印刷授業・後期印刷授業
授業範囲
教科書の内容全て
試験範囲
授業範囲すべて
※ただしPythonのプログラミングに関する内容は出題しない

【印刷授業:試験時参照許可物】
一切自由 ※ただしWebページ(通信教育部POLITEを除く)と生成系AIの参照は不可とする。
(教科書として指定されている電子書籍は閲覧可能)
科目の概要
アルゴリズムとは問題を解くための手順のことです。本講義で扱うアルゴリズムはプログラミング言語を問わず多くのプログラムで共通して頻出するもので、プログラミングを学ぶ第一歩と言えます。
プログラミングの入門として扱いやすいPythonを通してわかりやすい講義内容でプログラミングに必要となるデータ構造やアルゴリズムに関する知識の習得を目指します。
授業における学修の到達目標
教科書にて取り扱う基礎的で代表的なデータ構造やアルゴリズムを学び、プログラミング入門に必要となるアルゴリズムの知識を身につけることを目標とします。
Pythonのプログラミングや表現方法については本講義にて習得する対象ではないため,教科書の内容を読解するのに必要な理解ができれば十分です。レポートや試験でもPythonのプログラミングに関する出題は行いません。
講義の方針・計画
Pythonを用いた実装に関する章については,本講義はPythonのプログラミングを習得する講義ではないため,完全に暗記・理解する必要はありません。ですが,データ構造やアルゴリズムの実際の実装例として,その動作の仕組みを理解するための例題として動作の流れをイメージして学んで下さい。

第1回:(教科書第1章)データ構造とアルゴリズムを学ぶための準備(P3-33)
第2回:(教科書第2章)データ構造―配列(P35-56)
第3回:(教科書第2章)データ構造―スタックとキュー(P56-71)
第4回:(教科書第2章)データ構造―連結リスト、木構造(P71-89)
第5回:(教科書第3章)Pythonのデータ構造―リスト(P91-137)
第6回:(教科書第3章)Pythonのデータ構造―タプル(P138-160)
第7回:(教科書第4章)探索―線形探索、二分探索(P161-166)
第8回:(教科書第4章)探索―指数探索、ハッシュ探索(P167-184)
第9回:(教科書第5章)Pythonにおける探索―リスト、タプル、集合(P186-205)
第10回:(教科書第5章)Pythonにおける探索―辞書(P206-226)
第11回:(教科書第6章)ソート―バブルソート、選択ソート(P227-238)
第12回:(教科書第6章)ソート―挿入ソート、クイックソート(P239-250)
第13回:(教科書第6章)ソート―マージソート(P251-260)
第14回:(教科書第7章)Pythonにおけるソート―Pythonにおけるソート(P261-280)
第15回:(教科書第7章)Pythonにおけるソート―データ構造に関する関数(P281-292)
準備学習
印刷授業は、教科書や学習用プリントなどを基に自学自習で学習を進めますが、授業範囲の内容の他に、教科書の内容全体を2単位で90時間かけて学習することを目安としています。
わからない用語や内容は、参考文献等で調べることが準備学習として必要になります。

面接授業において、以下の準備学習を行う。
(予習)聴講前に、教科書の該当箇所に目を通してください。
(復習)聴講後に、教科書の該当箇所を読んで、確認してください。
課題(試験やレポート等)に対するフィードバック方法
印刷授業は、提出されたレポートについて講評を付与して返却する。
成績評価の方法およびその基準
Moodle試験:50% Moodle小テスト:50%
教科書
書 名: スマートな良いコードのために Pythonで学ぶアルゴリズム入門(電子書籍版)
著者名: 松浦健一郎 (著), 司ゆき (著)
発行所: 秀和システム
ISBN: 4798064599
注)この教科書は、電子書籍版のみでの販売となります。
既にKindle等のアプリをお使いの方は、Amazon等でご購入いただけます。
紀伊國屋書店北海道営業部でも購入可能です。(無料アプリをダウンロードして利用可能。)
参考書
特になし
その他
特になし
試験期間
シラバス検索画面トップページ(https://syllabus-tsushin.do-johodai.ac.jp/)下部の「2024学年暦」を参照
学習プリント
あり
教職科目
情報5の1(選択)
関連受講科目
プログラミング基礎
担当教員の実務経験
2015年から2024年までAI開発を行うベンチャー企業に所属し,ディープラーニングを用いた画像認識,自然言語処理,数値予測エンジンなどの開発を行い,企業における実際の業務システムへの導入支援や保守運用なども行ってきた。これらのAIシステムの開発の中で,情報系の基礎知識がどのように実際の開発業務の中で活用されるかを経験してきた。
この経験を元に,情報系の講義における基礎知識がどのように業務システムの開発などで活かされるのか,自身の経験談なども踏まえてわかりやすく伝えられるよう教育を実施していく。
レポート課題
過年度のレポート課題は表示できません。