科目名 |
アルゴリズムとデータ構造 |
担当教員 |
川原田 茜 |
クラス |
− |
授業の概要 |
数学の問題には、その問題の解き方が分かったとしても現実的な時間の範囲内で解けるとは限らない問題が多く存在する。例えば巨大な合成数の素因数分解を考える。2から順に割って行けは?原理的には素因数分解を行うことは可能であるが、とてつもなく時間がかかることがある。問題の解き方とその計算時間との関係は、数学の問題だけではなく、プログラムを書く上でも重要である。本授業では各種アルゴリズムを提示し、その計算量について学び、そのアルゴリズムを用いたプログラム作成の演習を行う。 |
授業の到達目標 |
本授業では、情報免許科目『コンピュータと情報処理II』で学習したC言語によるプログラミングの基礎を踏まえて、構造化プログラミング、データ構造、サーチとソートアルゴリズムについて学ぶ。各種アルゴリズムとデータ構造を理解し、アルゴリズムの時間的・空間的複雑さを正確に評価できることを目標とする。 |
授業計画 |
回 |
内容 |
1 | オリエンテーション |
2 | 構造化プログラミング(1)順次構造 |
3 | 構造化プログラミング(2)選択構造 |
4 | 構造化プログラミング(3)反復構造 |
5 | データ構造(1)配列 |
6 | データ構造(2)スタック |
7 | データ構造(3)キュー |
8 | サーチアルゴリズム(1)線形探索 |
9 | サーチアルゴリズム(2)2分探索 |
10 | サーチアルゴリズム(3)ハッシュ法 |
11 | ソートアルゴリズム(1)バブルソート |
12 | ソートアルゴリズム(2)選択ソート |
13 | ソートアルゴリズム(3)クイックソート |
14 | いろいろなソートアルゴリズムの比較 |
15 | まとめ |
|
テキスト・参考書 |
授業の中で適宜必要なテキストを紹介する。 |
自学自習についての情報 |
授業で学習したアルゴリズムやデータ構造を定着させるには、授業で課す課題に真剣に取り組むことが不可欠である。自宅のパソコンでも利用できるフリーのC言語のコンパイラを紹介するので、プログラミングの練習に活用して欲しい。 |
授業の形式 |
講義と演習 |
アクティブラーニングに関する情報 |
グループワークを行う可能性がある。 |
評価の方法(評価の配点比率と評価の要点) |
提出課題と授業全般への取り組みを総合的に評価する。 |
その他(授業アンケートへのコメント含む) |
|
担当講師についての情報(実務経験) |
|