NBU日本文理大学

シラバス情報

注)公開用シラバス情報となります。在学生の方は、「UNIVERSAL PASSPORT」で詳細をご確認下さい。

科目名 アルゴリズム演習A(Exercises in Computer Algorithms and Data Structures A)
担当教員名 吉森 聖貴、赤星 哲也
配当学年 2 開講期 前期
必修・選択区分 選択 単位数 1
履修上の注意または履修条件 この科目で学習する内容はプログラミングの基礎となる大切な内容が数多く含まれています。理解を確実なものとするために、プログラムソースは自ら入力し、授業以外の時間の予習復習も含めて、数多くのプログラミング演習を行ってください。
受講心得 この科目は皆さんが次の目標を達成できることをめざしています。授業時はもちろん、予習復習(課外学習)を通して、これらの目標が達成できるように計画的に学習を進めてください。
①「データ構造」と「探索アルゴリズム」に関する基本知識に関する理解を深める。
②データ構造とアルゴリズムを、C言語を用いてプログラミングすることができる。
③アルゴリズムの図的表現(フローチャート、擬似言語)を「書く」ことができる。
教科書  「IT Text アルゴリズム論」
  情報処理学会・編 オーム社 ISBN4-274-13278-1

「やさしいC」
  高橋麻奈・著 ソフトバンク ISBN 978-4-7973-4366-3
参考文献及び指定図書 (書籍)
「新版C言語によるアルゴリズムとデータ構造」 柴田望洋・著 ソフトバンク
「アルゴリズムとデータ構造(岩波講座 ソフトウェア科学第3巻)」 石畑清・著 岩波書店
「最新図解でわかるアルゴリズム入門」 瀬戸村勝利・著 日本実業出版社
「アルゴリズムの絵本」 (株)アンク・著 翔泳社
Programming Challenges:The Programming Contest Training Manual, Author:Steven S. Skiena , Miguel Revilla, Publisher:Springer

(月刊誌)
「日経ソフトウェア」 日経BP社

関連科目 (先修科目)
プログラミング1
(併修科目)
アルゴリズムA
(後修科目)
アルゴリズムB、アルゴリズム演習B
(先修・後修に関係なく関連性の高い科目)
知的システムA・同演習A、知的システムB・同演習B、メディア処理2A・同演習2A、メディア処理2B・同演習2B、情報システム1、情報システム2
オフィスアワー
授業の目的 この科目の目的は、「アルゴルズムA」で学習した「データ構造とアルゴリズム」に関する基礎的な知識をより確実なものとするために、実際に皆さんがプログラムとして作成してみることにあります。データ構造やアルゴリズムは特定のプログラミング言語に依存しない概念ですが、この科目では「プログラミング1」で学習し、基本情報技術者試験にも出題される「C言語」を用います。具体的には、「アルゴリズムA」で解説した、(1)データ構造(リスト、スタック、キュー、配列、木、ヒープなど)、(2)「探索」に関するアルゴリズム(逐次探索、2分探索法、ハッシュ法など)の内容をC言語でプログラミングしてみます。
授業の概要
授業計画 学習内容 学習課題(予習・復習)
○第1回 ガイダンス
この科目の目的、到達目標、学習内容、学習方法(受講心得)について説明します。

○第2回 C言語の復習
「プログラミング1」で学習したC言語の復習を行います。また、本講義で必要となるC言語の応用的な使い方についても学習します。

○第3回 リストと配列
代表的なデータ構造のうち「リスト」、「配列」を実現するプログラムをC言語を用いて作成してみます。

○第4回 スタック
代表的なデータ構造のうち「スタック」を実現するプログラムをC言語を用いて作成してみます。

○第5回 キュー
代表的なデータ構造のうち「キュー」を実現するプログラムをC言語を用いて作成してみます。

○第6回 木
代表的なデータ構造のうち「木」を実現するプログラムをC言語を用いて作成してみます。

○第7回 ヒープ
代表的なデータ構造のうち「ヒープ」を実現するプログラムをC言語を用いて作成してみます。

○第8回 演習課題(1)
第2回~第7回の内容をもとに演習課題に取り組み、レポートとして提出します。

○第9回 逐次探索(1)
代表的な探索アルゴリズムのうち「逐次探索」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第10回 逐次探索(2)
「逐次探索」を発展させた「m-ブロック法」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第11回 2分探索(1)
代表的な探索アルゴリズムのうち「2分探索」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第12回 2分探索(2)
前回に引き続き、代表的な探索アルゴリズムのうち「2分探索」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第13回 ハッシュ法(1)
代表的な探索アルゴリズムのうち「ハッシュ法」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第14回 ハッシュ法(2)
前回に引き続き、代表的な探索アルゴリズムのうち「ハッシュ法」を実現するプログラムをC言語を用いて作成してみます。また、計算量について学習します。

○第15回 演習問題(2)
第9回~第14回の内容をもとに演習課題に取り組み、レポートとして提出します。

○第16回 期末試験
授業で扱った全ての内容をもとに期末試験を行います。

第1回
配布資料
演習課題
課題の時間:30分

第2回
配布資料
演習課題
課題の時間:60分

第3回
配布資料
演習課題
課題の時間:60分

第4回
配布資料
演習課題
課題の時間:60分

第5回
配布資料
演習課題
課題の時間:60分

第6回
配布資料
演習課題
課題の時間:60分

第7回
配布資料
演習課題
課題の時間:60分

第8回
配布資料
演習課題
課題の時間:90分

第9回
配布資料
演習課題
課題の時間:60分

第10回
配布資料
演習課題
課題の時間:60分

第11回
配布資料
演習課題
課題の時間:60分

第12回
配布資料
演習課題
課題の時間:60分

第13回
配布資料
演習課題
課題の時間:60分

第14回
配布資料
演習課題
課題の時間:60分

第15回
配布資料
演習課題
課題の時間:90分
授業の運営方法 プログラミング演習を中心に授業を進めます。
備考
学生が達成すべき到達目標 ①「データ構造」と「探索アルゴリズム」に関する基本知識に関する理解を深める。
②データ構造とアルゴリズムを、C言語を用いてプログラミングすることができる。
③アルゴリズムの図的表現(フローチャート、擬似言語)を「書く」ことができる。
評価方法 評価の割合 評価の実施方法と注意点
試験 試験範囲内の内容について理解度を確認します.計算問題については解答だけでなく,計算過程についても重視します. 
小テスト
レポート
成果発表
作品
その他 授業に欠席・遅刻・早退せず,意欲的に取り組んだ場合評価の対象とします. 
合計