2015年度工学院大学 情報学部情報デザイン学科

アルゴリズム基礎論(Introduction to Algorithms)[1229]

試験情報を見る] [授業を振り返ってのコメント(学内限定)

2単位
藤井 昭宏 准教授  [ 教員業績  JP  EN ]
最終更新日 : 2016/01/21

<学位授与の方針>
1. 基礎知識の習得
2. 専門分野知識の習得
3. 汎用的問題解決技能
4. 道徳的態度と社会性
5. 創成能力

<授業のねらい>
コンピュータでプログラムが動作する仕組みを理解し、基本的なデータ構造とアルゴリズムについて学び、それを具体的なプログラムとして記述できる技術を身につける。

<受講にあたっての前提条件>
「プログラミング基礎」「プログラミング基礎演習」を受講し、C言語の基本文法を身につけていること。
「アルゴリズム基礎演習」を同時に履修すること。

<具体的な到達目標>
具体的な到達目標
・アルゴリズムの計算量について学び、データ構造とアルゴリズムの重要性を理解している
・配列や連結リストを用いたリストデータ処理の方法を理解し実際に実装できる
・代表的なソートアルゴリズムを知りその特性を理解している
・全探索・二分探索のアルゴリズムを理解し実装できる

<授業計画及び準備学習>
授業計画
1. 基本的なデータ構造と処理:
 基本的なデータ構造(基本型、配列、構造体)と処理(分岐、繰り返し)を実装する方法を学ぶ (3章 データ型、配列、構造体)
2. ポインタ・入出力:
 ポインタの概念と典型的な利用場面について学ぶ (7章 ポインタの概念)
 標準入出力とファイル入出力の利用方法を学ぶ (8章 ファイル入出力)
3. 関数と再帰処理:
 関数の定義と呼出について学び、その応用として再帰処理について考察する (4章 関数)
4. 探索:
 同じ動作を行う全探索と二分探索について比較し考察する (5章 表構造での探索)
5. 計算量:
 計算量の概念について学び、いくつかのアルゴリズムに対する評価を行う (6章 アルゴリズムと計算量)
6. 配列によるスタック:
 スタックの概念を学び、配列による実装を行う (9章 スタック)
7. 基本的なソート:
 単純な交換の繰り返しによるいくつかのソートアルゴリズムを実装する (10章 ソート(整列))
8. 中間試験
 1〜7回の内容に関する試験を行う
9. クイックソート、マージソート:
 分割統治を再帰的に行うソートアルゴリズムについて学ぶ (10章 ソート(整列))
10. 連結リスト1:
 連結リストの基本的な考え方について学ぶ (11章 リスト構造と待ち行列)
11. 連結リスト2:
 データリストを配列と連結リストで実装した時の特性について考察する (12章 種々のリスト構造)
12. 木構造1:
 二分木の基本的な考え方について学ぶ (14章 木構造・2分探索木)
13. 木構造2:
 AVL木など二分木を実際に利用する際の工夫について学ぶ (15章 種々の木構造)
14. 応用:
 具体的な問題にアルゴリズムを適用する際の考え方について学ぶ
15. 期末試験
 14回までの内容に関する試験を行う

学習準備
各単元に対応する教科書の章をあらかじめ読んでおくこと。
教員からのフィードバックを元に理解が不十分な項目を復習すること。
※自力で予習と復習に時間をかけて取り組んでも理解が不十分な場合は、必ずSAを利用すること。

<成績評価方法>
中間試験と期末試験、さらにアルゴリズム演習のレポートを合わせ、到達目標に照らして、6段階のGrade(A+,A,B,C,D,F)で評価し、
D以上の者に単位を認める。

<教科書>
森元逞「Cをさらに理解しながら学ぶ データ構造とアルゴリズム」
ISBN: 978-4-320-12197-3 出版社: 共立出版

<参考書>
特になし

<オフィスアワー>
授業時間後に対応


このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2015 Kogakuin University. All Rights Reserved.