授業の目標と概要 |
アルゴリズムは,問題を解くための手順である.同じ問題を解くためにも複数の方法が
存在し,その効率は異なる。この科目は,コンピュータを用いた代表的なアルゴリズム
のプログラミング演習と,アルゴリズムの評価方法の学習を通じて,適切な問題解決の
技法を選択できること,および問題の本質についての洞察ができることを目標としている。
|
履修上の注意
(準備する用具・
前提とする知識等)
|
C言語プログラミングの知識とスキルが必要である。ポインタと構造体については授業
の中で復習するが,繰返し,関数,配列などの基本的な内容については各自で復習して
おくこと。また,毎回の講義でプログラミング課題があるので必ず提出すること。
|
到達目標 |
・リスト,スタック,ツリーなどのデータ構造を扱うことができる。
・ソート,探索に関する代表的なアルゴリズムを用いてプログラムを作成できる。
・計算量と計算可能性について説明できる。
|
成績評価方法 |
合否判定:定期試験の平均点×0.7 と プログラム課題等の提出物(30点分)の合計が60点以上であること。課題提出物は a)出題要求を満たし
ているかどうか,b)提出期限を守っているか,で判断する。
最終評価:合否判定に同じ
|
テキスト・参考書 |
教科書:
・なし(資料を配布する)
参考書:
・アルゴリズムイントロダクション第1巻,第2巻 / T.コルメンほか(近代科学社)
・数学ガール 乱択アルゴリズム / 結城浩 (ソフトバンククリエイティブ)
|
メッセージ |
コンピュータを用いて大量のデータを扱うことの重要性は今後さらに高まると考えられ
る。そうした問題に対処する場合に,アルゴリズムと計算量に関する知見が必要とな
る。この科目での学習を通して,情報を処理することへのセンスを養ってほしい。
|
授業の内容 |
授業項目 | 授業項目ごとの達成目標 |
1.アルゴリズムと計算量の基礎 (2回)
2.ポインタ,構造体 (1回)
3.基本的なデータ構造(2回)
4.ハッシュテーブル (1回)
5.再帰 (1回)
|
・アルゴリズムと計算量の基礎概念を説明できる
・ポインタ,構造体を使ったプログラムを作成できる
・リスト,スタック,キューを使ったプログラムを作成し,その特徴が理解できる
・ハッシュテーブルを使ったプログラムを作成し,その特徴が理解できる
・再帰を使ったプログラムを作成し,その特徴が理解できる
|
後期中間試験 |
実施する
|
6.ソート (2回)
7.木構造とグラフ(3回)
8.応用的処理のアルゴリズム (1回)
9.計算可能性 (1回)
|
・ソートのプログラムを作成し,その特徴が理解できる
・木構造とグラフ理論の基本的な概念が理解できる
・FFT(高速フーリエ変換)や自然言語処理の計算の基礎が理解できる
・計算可能性の概念の基礎が理解できる
|
後期期末試験 |
実施する
|