|
Teacher name : SAITO Hidetoshi
|
開講年度
2025Year
開講学期
Second Semester
科目名
Practice in Simulation Language II
授業種別
Practice
科目名(英語)
Practice in Simulation Language II
授業情報(授業コード・クラス・授業形態)
A1900026 Practice in Simulation Language II
担当教員
SAITO Hidetoshi
単位数
1.0Credits
曜日時限
Tue.3Period
キャンパス
Hachioji Campus
教室
15-108 Izumi06
学位授与の方針
1 基礎知識の修得 10 %
2 専門分野の知識・専門技術の修得 60 % 3 汎用的問題解決力の修得 20 % 4 道徳的態度と社会性の修得 10 % 具体的な到達目標
アルゴリズムの表現方法を理解し、基本的なアルゴリズムを説明できる。
問題解決のために、アルゴリズムを利用した簡単なプログラミングができる。 受講にあたっての前提条件
電気数学序論、線形代数及び演習Ⅰ,IIの単位取得をしていることが望ましい。
また、線形代数及び演習III,IV、シミュレーション言語演習Iを履修していることが望ましい。上記の条件が満たされない場合でも、やる気のある者の履修は歓迎する。 授業の方法とねらい
【授業のねらい】
この講義では,アルゴリズムとデータ構造に関する基本事項を学ぶことができます.配列,スタックとキューなどを表すためのデータ構造の表現方法と,データ構造に対する要素の挿入や削除などの基本操作について学ぶことできます.また,探索,走査,整列などの基本的なアルゴリズムや,その性能解析となる「計算量」について学ぶことができます. 【授業の方法】 この授業は講義・実習形式で行います.毎回の授業において,講義内容に関するプログラミングを実施します.受講者は,課題に取り組むことで講義内容の復習に役立てます.ただし,開講年次により講義で扱うテーマの変更もしく進捗状況を判断して修正する場合がありますが,その場合には講義などを通じて別途通知します.また,第14回目までの講義に必要となる事前学習(準備学習)については,事前に教科書の指定された箇所を読むなどの準備を受講者がして下さい.ただし,必要な場合には,講義時間中に理解を深めるための小テストを実施することがあります.講義終了後には,講義で学んだ知識を基に与えられた課題を復習問題して解くことや,各自で不明箇所について復習して下さい.また,第15回目の講義における事前学習は,この講義で出題された課題や第14回目までの学習内容を十分に復習して臨んで下さい. AL・ICT活用
Practice Fieldwork/Support for self-learning using ICT
第1回
授業形態
対面
事前学習
【事前学習】
(教科書):講義内容の理解や受講者の学習に役立つため,序論で紹介されているアプリケーションを利用できる環境を構築することが望ましい. (教科書):第1章1-1を熟読し,本文に記載されているプログラムListを理解すること. (参考書):各自でアルゴリズムとデータ構造の概要を把握するのに役立つ専門書等を探し,その内容を理解すること. 1.5時間
授業内容
基本的なアルゴリズム①
アルゴリズムとは(3値の最大値,条件判定と分岐,フロチャートの記号) 事後学習・事前学習
【事後学習】
(教科書):第1章1-1の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第1回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第1章1-2の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第1章1-2の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第2回
授業形態
対面
授業内容
基本的なアルゴリズム②
繰返し(1からnまでの整数の総和を求める,正の値の読込み,構造化プログラミング,多重ループ) 事後学習・事前学習
【事後学習】
(教科書):第1章1-2の該当箇所に関係・関連する「演習」の問題を解くこと. (教科書):第1章の「章末問題」を解くこと. (配布物):授業内容の要点を復習し,第2回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第2章2-1の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第2章2-1の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第3回
授業形態
対面
授業内容
基本的なデータ構造①
配列(データ構造,配列とは,割付け記憶領域期間と動的なオブジェクトの生成) 事後学習・事前学習
【事後学習】
(教科書):第2章2-1の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第3回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第2章2-1の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第2章2-1の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 0.5時間
第4回
授業形態
対面
授業内容
基本的なデータ構造②
配列(配列の要素の最大値を求める,配列の要素の並びを反転する,基数変換) 事後学習・事前学習
【事後学習】
(教科書):第2章2-1の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第4回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第2章2-1の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第2章2-1の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第5回
授業形態
対面
授業内容
基本的なデータ構造③
配列(素数の列挙,多次元配列,年内の経過日数の計算) 事後学習・事前学習
【事後学習】
(教科書):第2章2-1の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第5回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第2章2-2及び第3章3-1と3-2の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第2章2-2及び第3章3-1と3-2の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第6回
授業形態
対面
授業内容
基本的なデータ構造④
構造体(構造体とは,構造体の配列) 探索① 探索アルゴリズム(探索とキー,配列からの探索) 線形探索(線形探索とは,番兵法) 事後学習・事前学習
【事後学習】
(教科書):第2章2-2及び第3章3-1と3-2の該当箇所に関係・関連する「演習」の問題を解くこと. (教科書):第2章の「章末問題」を解くこと. (配布物):授業内容の要点を復習し,第6回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第3章3-3の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第3章3-3の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第7回
授業形態
対面
授業内容
探索②
2分探索(2分探索とは,計算量,ソート済み配列からの探索) 事後学習・事前学習
【事後学習】
(教科書):第3章3-3の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第7回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第3章3-4の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第3章3-4の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第8回
授業形態
対面
授業内容
探索③
ハッシュ法(ソート済み配列の探索,ハッシュ法とは,衝突,チェイン法) 事後学習・事前学習
【事後学習】
(教科書):第3章3-4の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第8回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第3章3-4及び第4章4-1の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第3章3-4及び第4章4-1の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第9回
授業形態
対面
授業内容
探索④
ハッシュ法(オープンアドレス法) スタックとキュー① スタック(スタックとは,スタックの表現) 事後学習・事前学習
【事後学習】
(教科書):第3章3-4及び第4章4-1の該当箇所に関係・関連する「演習」の問題を解くこと. (教科書):第3章の「章末問題」を解くこと. (配布物):授業内容の要点を復習し,第9回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第4章4-2の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第4章4-2の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第10回
授業形態
対面
授業内容
スタックとキュー②
キュー(キューとは,配列によるキューの表現,リングバッファによるキューの実現) 事後学習・事前学習
【事後学習】
(教科書):第4章4-2の該当箇所に関係・関連する「演習」の問題を解くこと. (教科書):第4章の「章末問題」を解くこと. (配布物):授業内容の要点を復習し,第10回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第5章5-1と5-2の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第5章5-1と5-2の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第11回
授業形態
対面
授業内容
再帰アルゴリズム①
再帰の基本(再帰とは,階乗値,ユークリッドの互除法) 再帰アルゴリズムの解析(再帰アルゴリズムの解析とは,再帰アルゴリズムの非再帰的表現,メモ化) 事後学習・事前学習
【事後学習】
(教科書):第5章5-1の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第11回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第5章5-3と5-4の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第5章5-3と5-4の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第12回
授業形態
対面
授業内容
再帰的アルゴリズム②
ハノイの塔 8王妃問題(8王妃問題とは,王妃の配置,分岐操作,限定操作と分岐限定法,8王妃問題を解くプログラム) 事後学習・事前学習
【事後学習】
(教科書):第5章5-3と5-4の該当箇所に関係・関連する「演習」の問題を解くこと. (教科書):第5章の「章末問題」を解くこと. (配布物):授業内容の要点を復習し,第12回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第6章6-1〜6-4の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第6章6-1〜6-4の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第13回
授業形態
対面
授業内容
ソート①
ソートとは 単純交換ソート(バブルソート) 単純選択ソート 単純挿入ソート 事後学習・事前学習
【事後学習】
(教科書):第6章6-1〜6-4の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第13回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第6章6-5と6-6の該当箇所を熟読し,プログラム「List」の理解に努めること. (参考書):第6章6-5と6-6の該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第14回
授業形態
対面
授業内容
ソート②
シェルソート(単純挿入ソートの特徴,シェルソートとは) クイックソート(クイックソートの概略,分割の手順,クイックソート,非再帰的クイックソート,枢軸の選択とアルゴリズムの改良,配列のソート) 事後学習・事前学習
【事後学習】
(教科書):第6章6-5と6-6の該当箇所に関係・関連する「演習」の問題を解くこと. (配布物):授業内容の要点を復習し,第14回の授業内容に関する「復習課題」に取り組むこと. (参考書):授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 【事前学習】 (教科書):第1〜14回の講義内容で扱った該当箇所を復習し,理解が不足しているプログラム「List」の理解に努めること. (参考書):第1〜14回の講義内容で扱った該当箇所の理解に役立つ専門書などを参考に関連事項の理解を深めること. 2.5時間
第15回
授業形態
遠隔(オンデマンド)
授業内容
第1〜14回の講義内容に関係する「課題」に取り組むことを通して,授業の振り返りとする.
事後学習
【事後学習】
(教科書):第1〜14回の講義内容で扱った該当箇所に関係・関連する「演習」の問題を,理解が不足している所については改めて解くこと. (配布物):第1〜14回の授業内容に関係する「課題」について,理解が不足している所については必要箇所を参照すること. (参考書):第1〜14回の授業内容について理解できない所は,自分に合った専門書などを参照して理解できるように努めること. 2.5時間
成績評価の方法
授業期間内の「課題」への取り組み状況による平常点,及び合同定期試験による2つの評価指標の結果により評価をします.各評価指標の比率は1:1です.どちらの評価指標も100点満点とし,両者共に60点以上の評価をされた場合にのみ,D以上の評価として合格とします.他の履修条件は,原則として学生便覧に記載されている各種規定に従います.
受講生へのフィードバック方法
授業内で取り上げた「課題」については,授業後に「課題」の解答を示し,必要があれば解説します.出題する「復習課題」については,受講者の理解力を確認したり,応用力を高めたりする上で役立つものですので,活用してください.
教科書
柴田望洋 著, “新・明解C言語で学ぶアルゴリズムとデータ構造 第2版,” ソフトバンククリエイティブ (2021年5月刊)
参考書
柴田望洋 著, “新・明解C言語 入門編 第2版,” ソフトバンククリエイティブ (2021年9月刊)
(既に数多くの和書のC言語の教科書や解説書が出版されていますので,自己に合うものを選んで下さい.) オフィスアワー
火曜日19:30-20:15 新宿校舎22階A-2274教室,別途講義後に通知する電子メール等による連絡でも構いません.ただし,遠隔授業の場合は,電子メールのみの対応となります.また,簡単な質問などは授業後の教室でも受け付けます.
受講生へのメッセージ
まず,「プログラムを作成すること(プログラミング)」の目的は,与えられた何らかの「問題(課題)」をコンピュータを利用して解くことでした.そこで,「問題」の内容を良く把握してから,コンピュータを利用して「どのように解くか」ということを考えることになります.すなわち,「問題」を解決するための「方法」を考えて,コンピュータに解答させる「手順」を具体的にどう指示を出すかということを考えることになります.「アルゴリズム」とは,このコンピュータに実行させるべき処理の「手順」を具体的かつ明確に示したものです.また,コンピュータを使ってプログラムで問題を解決する上で,「アルゴリズム」は,その「手順」に従っていれば,コンピュータから誰でも同じ解答(結果)が得られるものを指しています.上述したことから,基本的な「アルゴリズム」を学ぶことが,「プログラムを作成すること」に必要であることが理解できると思います.
そして,基本的な「アルゴリズム」を学ぶ中で,自分自身でプログラムを作成してみることで,プログラミング言語に慣れるという意味もあります.変数,配列,繰返し構造(ループ),条件分岐などのプログラミングの基礎となる要素が,「ソート(並び替え)」や「サーチ(探索)」といった「アルゴリズム」に含まれています.さらに,「アルゴリズム」を学ぶことで,「アルゴリズム」がより効率的に動作したり,「アルゴリズム」がより記憶領域(メモリ)を節約したりできる「データの表現形式」が存在することが分かります.このコンピュータで扱う「データの表現形式」を「データ構造」と言います.このため,「アルゴリズム」を学ぶことは,自ずと「データ構造」についても学ぶことになります.そして,「アルゴリズム」を学ぶことは,「計算量」の考え方を理解するために役立ちます.すなわち,「アルゴリズム」によって,コンピュータの処理速度が変わることを体験することで,「アルゴリズム」の選択が重要であることを理解できます. 実務家担当科目
Not applicable
実務経験の内容
教職課程認定該当学科
Department of Electrical and Electronic Engineering
その他の資格・認定プログラムとの関連
関連する科目でない
教育課程コード
Ⅲ2c
教育課程コードの見方【例】 Ⅰ2a(Ⅰ…Ⅰ群、2…2年配当、a…必修) ※ a : 必修 b : 選択必修 c : 選択 ※複数コードが表示されている場合には入学年度・所属学科の学生便覧を参照のこと
|