NBU日本文理大学

シラバス情報

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

科目名 アルゴリズムB(Computer Algorithms and Data Structures B)
担当教員名 赤星 哲也
配当学年 2 開講期 後期
必修・選択区分 選択 単位数 2
履修上の注意または履修条件 この科目で学習する内容はコンピュータサイエンスの基礎となる大切な内容が数多く含まれています。理解を確実なものとするために、プログラムソースは自ら入力し、授業以外の時間の予習復習も含めて、できるだけ多くのプログラミング演習を行ってください。
受講心得 学科で指定したポータブルHDDを毎時間、必ず持参すること。このポータブルHDD内に仮想マシンとしてLinuxOS(Ubuntu)を導入し、プログラミング演習を行います。
教科書 「みんなのPython 改訂版」
  著者:柴田淳 出版社:ソフトバンククリエイティブ ISBN:978-4797353952 出版年:2009年4月
参考文献及び指定図書 「IT Text アルゴリズム論」 情報処理学会・編 オーム社 ISBN4-274-13278-1
「アルゴリズムとデータ構造(岩波講座 ソフトウェア科学第3巻)」 石畑清・著 岩波書店
「最新図解でわかるアルゴリズム入門」 瀬戸村勝利・著 日本実業出版社
「アルゴリズムの絵本」 アンク・著 翔泳社

(サイト)
「Webラーニングプラザ」 {http://weblearningplaza.jst.go.jp/}
「Python チュートリアル(和文) Release2.7」 {http://www.python.jp/doc/release/tutorial/}

(月刊誌)
「日経ソフトウェア」 
「日経Linux」
  ※NBU大学図書館・情報検索サービス「日経BP社記事検索サービス」を用いて閲覧可
                {http://bizboard.nikkeibp.co.jp/daigaku/}

関連科目 (先修科目)
プログラミング基礎、アルゴリズムA、アルゴリズム演習A
(併修科目)
アルゴリズム演習B
(後修科目)
知的システムA、知的システム演習A
(先修・後修に関係なく関連性の高い科目)
知的システムB、知的システム演習B、メディア処理2A、メディア処理演習2A、メディア処理2B、メディア処理演習2B、情報システム1、情報システム2
オフィスアワー
授業の目的 この科目の目的は、コンピュータサイエンスの理解に欠かせない「データ構造とアルゴリズム」に関する基礎的な知識をプログラミング演習を通して確実に理解することにあります。 
授業の概要 アルゴリズムは特定のプログラミング言語に依存しない概念ですが、この科目では習得が容易で、擬似言語(基本情報技術者試験)風にプログラムソースを記述できるスクリプト言語「Python」を用いて、アルゴリズムの動きを実際にコンピュータで動かしながら確認していきます。具体的には、「データの整列(ソート)」に関するアルゴリズム(バブルソート、セレクションソート、インサーションソート、シェルソート、クイックソートなど)を取り上げます。
授業計画 学習内容 学習課題(予習・復習)
○第1回 Python言語の基本
この科目の目的、到達目標、学習内容、学習方法(受講心得)について説明します。また、この授業で使用するプログラミング言語「Python」について、基本的な文法を紹介します。

○第2回 バブルソート(1)
代表的な「整列」のアルゴリズムのうち、「バブルソート」について、プログラミング演習を行いながら学習します。

○第3回 バブルソート(2)
前回扱った「バブルソート」の計算量について、プログラミング演習を行いながら学習します。また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第4回 セレクションソート(1)
代表的な「整列」のアルゴリズムのうち、「セレクションソート」について、プログラミング演習を行いながら学習します。

○第5回 セレクションソート(2)
前回扱った「セレクションソート」の計算量について、プログラミング演習を行いながら学習します。また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第6回 インサーションソート(1)
代表的な「整列」のアルゴリズムのうち、「インサーションソート」について、プログラミング演習を行いながら学習します。

○第7回 インサーションソート(2)
前回扱った「インサーションソート」の計算量について、プログラミング演習を行いながら学習します。また、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第8回 大規模データによる計算量の比較(1)
第2回~第7回で扱った「バブルソート」、「セレクションソート」、「インサーションソート」の各ソートの計算量について、大規模データを用いて比較してみます。

○第9回 シェルソート(1)
代表的な「整列」のアルゴリズムのうち、「シェルソート」について、プログラミング演習を行いながら学習します。

○第10回 シェルソート(2)
前回扱った「シェルソート」の計算量について、プログラミング演習を行いながら学習します。

○第11回 シェルソート(3)
代表的な「整列」のアルゴリズムのうち、「シェルソート」について、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第12回 クイックソート(1)
代表的な「整列」のアルゴリズムのうち、「クイックソート」について、プログラミング演習を行いながら学習します。

○第13回 クイックソート(2)
前回扱った「クイックソート」の計算量について、プログラミング演習を行いながら学習します。

○第14回 シェルソート(3)
代表的な「整列」のアルゴリズムのうち、「クイックソート」について、アルゴリズムの様子を「擬似言語」(基本情報技術者試験)で記述してみます。

○第15回 大規模データによる計算量の比較(2)
第9回~第14回で扱った「シェルソート」、「クイックソート」の各ソートの計算量について、大規模データを用いて比較してみます。

○第16回 期末試験
授業で扱った全ての内容をもとに期末試験を行います。
○第1回
配付資料
演習時間 45分

○第2回
配付資料
演習時間 45分

○第3回
配付資料
演習時間 45分

○第4回
配付資料
演習時間 45分

○第5回
配付資料
演習時間 45分

○第6回
配付資料
演習時間 45分

○第7回
配付資料
演習時間 45分

○第8回
配付資料
演習時間 45分

○第9回
配付資料
演習時間 45分

○第10回
配付資料
演習時間 45分

○第11回
配付資料
演習時間 45分

○第12回
配付資料
演習時間 45分

○第13回
配付資料
演習時間 45分

○第14回
配付資料
演習時間 45分

○第15回
配付資料
演習時間 45分
授業の運営方法 プログラミング演習を併用して授業を進めます。
備考
学生が達成すべき到達目標 学生が達成すべき到達目標 この科目は皆さんが次の目標を達成できることをめざしています。授業時はもちろん、授業時間外の予習復習を通して、これらの目標が達成できるように計画的に学習を進めてください。

①「整列(ソート)のアルゴリズム」に関する基本知識を理解する。
②Python言語で書かれたプログラムソースを「読む」ことができる。
③Python言語を通して、アルゴリズムの動きを確認できる。
③アルゴリズムの図的表現(擬似言語)を「読む」ことができる。 
評価方法 評価の割合 評価の実施方法と注意点
試験 50 授業で扱った専門知識が理解できているか、試験を行います。
小テスト
レポート 45
成果発表
作品
その他 5 授業に欠席したり遅刻・早退せず意欲的に取り組んだ場合、評価の対象とします。 

合計 100