板書まとめ
これまでの授業で撮影した板書を、日付順にまとめています。授業内容を振り返るときや、試験前に「この日に何を扱ったか」を思い出すために使いましょう。
📆4/22

📝まとめ
- アルゴリズムを「問題を解くための手順」として捉え、同じ条件なら同じ結果になる再現性、コンピュータで実行できる実行可能性、手順が必ず終わる有限性を確認した。
- 効率の良さも重要な性質として扱い、物を切る回数や図形・数字配置などの身近な問題から、答えまでの手順を順序立てて考えた。
- 3×3のマスに数字を配置する問題などを使い、条件を満たすために何を調べ、どの順番で考えるかというアルゴリズム的な考え方を練習した。
📆5/13

📝まとめ
- アルゴリズムとプログラミング言語の違いを整理し、同じ問題でも手順の作り方によって処理時間や効率が変わることを確認した。
- 3×3の数字配置を題材に、全体の和や各行・列・斜めの条件から中央の値などを絞り込む考え方を扱った。
- すべての候補を調べる総当たりに対し、条件から不要な候補を早めに捨てる枝刈りを使うことで、探索量を減らせることを学んだ。
📆7/13

📝まとめ
- アルゴリズムの表し方として、フローチャート・擬似言語・自然言語・プログラミング言語を整理した。
- 3つの数 A・B・C から最大値を求める問題を使い、仮の最大値を1つ決めて、残りの値と順番に比較して更新する手順を考えた。
- 「問題を解く考え方」と「それをどの表記法で表すか」を分けて考えることがポイント。
📆7/15

📝まとめ
- 3つの値の最大値を求める手順を、比較結果のTrue / Falseと条件分岐を使って表した。
- 比較演算子と AND・OR・NOT などの論理演算を確認し、複数条件を組み合わせた判定を扱った。
- フローチャートの記号と、アルゴリズムを構成する順次・選択・反復の3つの基本構造を整理した。1~10の合計を求める例では、同じ処理を繰り返すアルゴリズムをフローチャートで表した。
📆7/22

📝まとめ
- 擬似言語の基本的な書き方を扱い、整数・実数などの変数宣言、
←による代入、値の表示や処理のまとまりを確認した。 - 条件分岐では
if / elseif / else、反復ではfor・while・do-whileの違いを整理した。 forは回数を決めた反復、whileは先に継続条件を調べる反復、do-whileは処理を最低1回実行してから終了条件を調べる反復として、具体例を追いながら確認した。
📆8/24

📝まとめ
- 整列(ソート)の代表例として、バブルソート・選択ソート・挿入ソートを紹介し、それぞれがどのように並び替えるかを手作業で追った。
- 並び替えの基本となる比較と**交換(swap)**を確認し、一時変数を使った交換や配列要素同士の交換を扱った。
- バブルソートと挿入ソートでは、どの要素を比較し、どの時点で並びが確定していくかを段階ごとに確認した。後半では木・グラフの Root / Node / Edge / Leaf といった基本用語にも触れた。
📆8/26

📝まとめ
- バブルソート・挿入ソート・選択ソートに共通する「繰り返しながら整列済みの範囲を増やす」構造を整理した。
- 配列を
Data[0]からData[N-1]までとして捉え、ループ変数と処理対象範囲の関係を確認した。 - すでに確定した部分まで毎回調べる必要はないことに注目し、どこが無駄な処理になっているか、どこまで比較すればよいかを考えた。
📆8/31

📝まとめ
- データ数を $N$ としたとき、二重ループでは処理回数がおおよそ $N\times N$ になることから、計算量 $O(N^2)$ の考え方を導入した。
- $O(1)$・$O(N)$・$O(N^2)$ などをグラフで比較し、データ数が増えたときにアルゴリズムの差が大きくなることを確認した。
- 後半はクイックソートを扱い、基準値(pivot)を決めて、配列を小さい側と大きい側に**切る(分割する)**処理を繰り返す考え方を追った。分割統治法への導入も行った。
📆9/2

📝まとめ
- クイックソートを、pivotを基準に配列を分割し、分割した範囲へ同じ処理を繰り返す再帰の考え方と結び付けて整理した。
- マージソートでは、データを小さく分割してから、整列済みのグループ同士を順番に統合していく流れを確認した。
- 後半はフローチャートの順次・選択・反復をゲームプログラムへ対応付け、
Initialize → Update / Draw の反復 → Releaseや、タイトル・プレイ・ゲームオーバーの分岐を例に、アルゴリズムが実際のプログラム構造にどう現れるかを整理した。
No Comments