| 科目名 | プログラミング基礎II | 
    
     | クラス | − | 
 | 授業の概要 | 数学の問題には、その問題の解き方が分かったとしても現実的な時間の範囲内で解けるとは限らない問題が多く存在する。例えば巨大な合成数の素因数分解を考える。2から順に割って行けは?原理的には素因数分解を行うことは可能て?あるが、とてつもなく時間がかかることがある。問題の解き方とその計算時間との関係は、数学の問題だけではなく、プログラムを書く上でも重要である。本授業では各種アルゴリズムを提示し、その計算量について学び、そのアルゴリズムを用いたプログラム作成の演習を行う。 | 
 | 授業の到達目標 | 本授業では構造化プログラミング、データ構造、サーチとソートアルゴリズムについて学ぶ。各種アルゴリズムとデータ構造を理解し、アルゴリズムの時間的・空間的複雑さを正確に評価できることを目標とする。 | 
 | 授業計画 | 
   
    | 回 | 内容 |  | 1 | オリエンテーション |  | 2 | 基本的なアルゴリズムとフローチャート |  | 3 | 構造化プログラミング |  | 4 | 再帰的アルゴリズム |  | 5 | データ構造(1)配列 |  | 6 | データ構造(2)スタック |  | 7 | データ構造(3)キュー |  | 8 | サーチアルゴリズム(1)線形探索 |  | 9 | サーチアルゴリズム(2)2分探索 |  | 10 | サーチアルゴリズム(3)ハッシュ法 |  | 11 | ソートアルゴリズム(1)バブルソート |  | 12 | ソートアルゴリズム(2)選択ソート |  | 13 | ソートアルゴリズム(3)挿入ソート |  | 14 | ソートアルゴリズム(4)クイックソート |  | 15 | いろいろなソートアルゴリズムの比較 |  | 
 | テキスト・参考書 | 参考書:新・明解C言語 入門編 第2版,柴田望洋著,SB クリエイティブ その他、授業の中で適宜必要なテキストを紹介する。
 | 
 | 自学自習についての情報 | プログラミングの学習は、算数・数学と同様に知識と技術を一つずつ丁寧に積み重ねていく必要があり、早い段階でつまづくと後々苦労することになる。そのようなつまづきをなくすためにも授業で配布したプリント等を元に、毎回復習をすることは不可欠である。 | 
 | 授業の形式 | 講義と演習 | 
 | アクティブラーニングに関する情報 | グループワークを行う可能性がある。 | 
 | 評価の方法(評価の配点比率と評価の要点) | 提出課題100% | 
 | その他(授業アンケートへのコメント含む) | 『プログラミング基礎1』を履修済みであることが望ましいが、そうでない場合はC言語による基礎的なプログラミングについて受講前に自学自習しておくこと。 | 
 | 担当講師についての情報(実務経験) | 特記事項なし。 |