3月末で後期の中間試験が終わり、K高専の1年生に教えていた「Fundamentals of Algorithms」のクラス(前回の記事)も後期前半で無事に終了しました。この後はモンゴル人の同僚の先生に授業を引き継ぎました。
この授業はタイトル通り「アルゴリズムの基礎」を学ぶ授業ですが、カリキュラム作成や教材選定はすべて自分で決める必要がありました。対象はコンピュータ学科1年生で、まだ専門的なコンピューが技術の授業は受けていないの日本の高校一年生に相当する生徒たちです。依頼された当初は、何をどのように教えるかとても悩みました。
生徒たちはプログラミングに興味を示していたため、最初はPythonを使って基礎を教えることを検討しました。しかし他のモンゴルの高専で教える先生方に相談したところ、「Pythonは自由度が高すぎて、初心者がアルゴリズムの基礎を学習するのにはあまり適していない」という意見が多くありました。
C言語やJavaベースでグラフィカルなプログラムを作成できるProcessingなどを使うことを勧められたので、それらの教材研究を重ねました。最終的には、他の高専でも使用されているFlowgorithmというツールを使うことにしました。Flowgorithmはフローチャートをグラフィカルに記述し、アルゴリズムの概念を直感的に理解できるフリーの教材です。
まずは次の3つの基本的なアルゴリズムの概念を教え、Flowgorithmでフローチャートを書く演習と多く実施しました。
- 順次アルゴリズム(Sequential Algorithm)
- 条件分岐アルゴリズム(Conditional Algorithm)
- 繰り返しアルゴリズム(Loop Algorithm)
最終回には、日常生活の問題をテーマに、フローチャートを作成する演習を取り入れました。
以下が最後の授業で取り組んだ2つの演習問題です。
Exercise 1: 「forループ」を使った週間ランニング距離計算アルゴリズム
内容
- 7日間のランニング距離を日ごとに入力させます。
- 各日の距離を合計し、1週間の総距離を計算します。
- 最後に合計距離を表示します。
右の図はサンプル解答

Exercise 2: 「whileループ」を使った目標距離達成までのランニング距離計算アルゴリズム
内容
- 月間のランニング距離の目標値を設定します。
- 毎日の走行距離を入力し続け、目標距離に達するか、30日間経過するまで繰り返します。
- 目標を達成した場合は祝福メッセージを表示します。
- 30日経過しても目標未達成の場合は、その時点の総距離を表示します。
右の図はサンプル解答

生徒たちの多くが最後の課題を無事に完了し、「楽しかった」「来年もまた会いましょう」といった温かいコメントを残してくれました。教材開発と英語での授業で体力と集中力を使った授業が終わった安堵感と同時に少し寂しさも感じました。今回の授業を通して学んだアルゴリズムの基礎が、これから彼らが本格的にプログラミングを学ぶ際の基礎となり、役立つことを心から願っています。


今日のモンゴル語
Манай анги оюутнуудад тустай байх гэж найдаж байна.
( Manai angi oyuutnuudad tustai baikh gej naidaj baina.)
私のクラスが生徒の役に立つことを願っています。
コメント