シラバス情報

授業科目名
アルゴリズムA
学年
2年
単位数
2.00単位
実務経験の有無
開講クォーター
セメスタ指定なし
担当教員
亀山 浩文
授業形態
授業で主に使用する言語
日本語
授業方法区分
開講キャンパス
オンライン(オンデマンド)
授業の到達目標及びテーマ
初学者を対象に、情報科学の基礎であるアルゴリズムについて、その基本的な考え方を学ぶ。
アルゴリズムとは、広義には、ある問題を解決するための手段・手順であり、狭義には、コンピュータで解ける問題に限定して、その具体的な解法・手順を指す。本講義ではアルゴリズムを後者の意味で捉える。また、アルゴリズムは、コンピュータがデータを格納する形式であるデータ構造と密接な関係がある。
本授業の到達目標は、コンピュータで行われる全ての処理の基礎となる幾つかのアルゴリズムとデータ構造を理解し、実際にプログラムを自力で構築できるようになることである。アルゴリズムを考案し、プログラムを実際にコンピュータで動作させるところまでを学ぶ。

授業紹介動画:https://youtu.be/xaF1AFSyn7k
授業の概要
情報機器(ハードウェア、ソフトウェア)を自在に活用するためには、アルゴリズムの理解が必要不可欠である。特にプログラミングでは必須の知識となる。アルゴリズムの知識があれば、ワープロや表計算ソフトウェアにおいてもマクロプログラミングを行うことにより、高度な処理を実現することができる。ビジネスの現場で効率的に仕事をこなすためには身につけておくべき知識である。本授業では、初心者を対象にアルゴリズムの基礎理論を教授し、一歩進んだ情報機器の利用能力を身につけることを目標とする。講義・演習形式で行う。一部の授業ではPC(又はMac)で実際にプログラミングを行う。

本授業は、【全てオンデマンド型のオンライン授業】として開講する。履修者は次の点をよく理解しておくこと。
〇履修者への連絡及び教員への連絡方法:
・履修者全体への連絡はLMSで行う。
・教員から履修者へ個別の連絡が必要な場合は、JIUメールを利用する。
・教員への連絡はLMSの掲示板を利用すること。
・個人的な内容を含む場合は、JIUメールを利用のこと。連絡先メールアドレスは授業時に伝達する。

〇学生等と教員、或いは学生同士の意見交換の方法:
・授業内容について、履修者との議論はLMSの掲示板を用いて行う。履修者相互の議論にもLMSの掲示板を利用する。
・毎週のオフィスアワーで意見交換をすることができる。

〇出席確認方法
・LMSの機能を用いた理解確認テストにより、毎回の授業の理解度を確認し、出席確認とする。

授業計画
1回
受講案内 【オンデマンド】
到達目標:授業の目的及び到達目標を理解し、次回からの授業を受講するための基礎知識を得る。プログラミングを行うのに必要なPC環境などについても説明する。
事前学習
(2時間)
シラバスを読み、授業の概要及び到達目標について理解しておく。概要及び到達目標の欄に分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項をまとめ、後で振り返り学修ができるようにする。各自のノートPCのインストールソフトウェアを確認する。

2回
アルゴリズムとは 【オンデマンド】
到達目標:アルゴリズムとは何かを理解する。身近な具体例で考える。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項をまとめ、後で振り返り学修ができるようにする。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

3回
プログラムとアルゴリズム 【オンデマンド】
到達目標:プログラムとアルゴリズムの関係について理解する。本授業で主として利用するプログラミング言語「JavaScript」について知る。エディタを利用して簡単なプログラムを作成する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項をまとめ、後で振り返り学修ができるようにする。
授業で作成したプログラムの動作を確認し、正常に動作するプログラムをLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

4回
フローチャート(1)基礎的記号の運用 【オンデマンド】
到達目標:フローチャートで利用される基礎的記号を理解する。身近な例で具体的に理解する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
授業で作成したフローチャートを確認し、LMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

5回
フローチャート(2)実際の運用 【オンデマンド】
到達目標:フローチャートのプログラミングでの実際的運用方法を理解する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
授業で作成したフローチャートを確認し、LMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

6回
データ構造(1)配列とリスト構造 【オンデマンド】
到達目標:授業で多用するデータ構造である配列について理解する。また、基本的データ構造の一つであるリスト構造についても理解する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
課題を解き、LMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

7回目
データの探索(1)順次探索法 【オンデマンド】
到達目標:基本的アルゴリズムとして探索を取り上げる。単純な方法として順次探索法を理解する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
実際にプログラムを作成し、正常に動作するプログラムをLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

8回
データの探索(2)順次探索法の改良(番兵法など) 【オンデマンド】
到達目標:順次探索法の改良を試みる。アルゴリズム上の利点などを理解する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
実際にプログラムを作成し、正常に動作するプログラムをLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

9回
データの探索(3)二分探索法 【オンデマンド】
到達目標:順次探索法の欠点を改良した二分探索法について理解する。フローチャートを作成して、実際にプログラミングを行う。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要語句・記号をまとめ、後で振り返り学修ができるようにする。
実際にプログラムを作成し、正常に動作するプログラムをLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

10回
アルゴリズムの効率と計算量 【オンデマンド】
到達目標:アルゴリズムを考案する場合に重要な計算効率及び計算量について、基礎的な論理を理解する。順次探索法と線形探索法を例に考察する。現代のコンピュータは高速ではあるが、無限の計算力があるわけではない。現実的な時間内で処理結果が得られることが重要であることを学ぶ。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

11回
データ構造(2)キューとスタック 【オンデマンド】
到達目標:基本的データ構造であるキュートスタックについて理解する。国家試験であるITパスポート試験と基本情報技術者試験で出題された問題を解くことにより理解を深める。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
課題をLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

12回
データ構造(3)木構造 【オンデマンド】
到達目標:基本的データ構造である木構造について理解する。国家試験であるITパスポート試験と基本情報技術者試験で出題された問題を解くことにより理解を深める。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
課題をLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

13回
今後の学びの発展を俯瞰した総合的復習 【オンデマンド】
到達目標:学修内容全体を見通して、アルゴリズムについて総合的に理解を深める。次のステップとして用意されている授業で学ぶ「データ整列」に概略を理解し、学びを滑らかに接続することを目標とする。各種プログラミング言語の特徴についても解説する。
事前学習
(2時間)
教科書の該当箇所を読み、意味の分からない言葉があれば調べておく。
事後学習
(2時間)
重要事項・語句・記号をまとめ、後で振り返り学修ができるようにする。
課題をLMSに提出する。
理解確認テストを受け、理解が不十分な個所があれば、再度復習する。理解確認テストの点数によっては再受験を促すことがある。

14回
事前学習
事後学習

15回
事前学習
事後学習

16回
事前学習
事後学習

17回
事前学習
事後学習

18回
事前学習
事後学習

19回
事前学習
事後学習

20回
事前学習
事後学習

21回
事前学習
事後学習

22回
事前学習
事後学習

23回目
事前学習
事後学習

24回
事前学習
事後学習

25回
事前学習
事後学習

26回
事前学習
事後学習

試験及び成績評価
次の三つの指標を基に総合的に判断する。
〇授業の進行に合わせて課すプログラミング課題:50%
〇課題レポート:20%
〇毎回の授業で課す理解確認テスト:30%

授業には必ず出席し、課されたプログロムやレポート課題は全て提出することを要求する。
全ての課題提出にはLMSを用いる。評価などのフィードバックについてもLMSを用いる。
課題(試験やレポート等)に対するフィードバック
プログラムやレポートの提出及び理解確認テストの実施は、全てLMSを利用して行う。本授業では紙媒体を利用することはない。
提出されたプログラムに誤りがある場合は、再提出を求める。個別に連絡するので、LMSに提出すること。
理解確認テストの点数はLMSにより各自で把握できるので、理解不足の個所を重点的に復習すること。
理解確認テストの点数が一定の水準に到達しない場合は、復習後に再試験を課すことがある。再試験受験の指示もLMSを通じて連絡する。
提出されたレポート課題に対しては、LMSを通じてコメントを返す。必要であれば修正箇所を指定する。再提出を求められた場合も、LMSに提出すること。
講義で使用するテキスト(書名・著者・出版社・ISBN・備考)
『楽しく学ぶ アルゴリズムとプログラミングの図鑑 第2版』
森巧尚
マイナビ出版
978-4839977092
300ページ程度の書籍であり、紙媒体は持ち運びに不便であるので、Kindle版などの電子媒体での購入を強く勧める。
参考文献・推薦図書
『図解入門 よくわかるアルゴリズムの基本と仕組み 〜 一歩進んだプログラミングのためのアルゴリズム入門』、杉浦賢 著、秀和システム、2002年、ISBN-13 ‏: ‎978-4798002613
『問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)』、大槻兼資 著、講談社、2020年、ISBN-13 ‏: ‎978-4065128442
『アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)』、石畑清 著、岩波書店、1989年、ISBN-13 ‏: ‎978-4000103435
その他、適宜、授業中に指示する。
研究室
紀尾井町キャンパス1号棟3階
オフィスアワー
水曜日 昼休み、金曜日 昼休み・3時限目
科目ナンバリング
学位授与方針との関連
関連ページ
https://www.jiu.ac.jp/visitors/students/detail/id=1001