【アルゴリズム講座】
夏休み体験講座 ~電卓で論理的思考力を鍛えよう~
実施報告書
アルゴリズム講座について
アルゴリズム講座は、小学生(高学年)~高校生を対象とした、
ソフトウェア・プログラミングに関する科学講座です。
アルゴリズム講座では「やってみよう」を合い言葉に、受講生が試行錯誤しながら、
実感を持って一つ一つの要素を理解し積み重ねていくことを大切にしています。
なお本講座は、プログラミング未経験者が受講することを想定しています。
「アルゴリズム」という言葉には「問題の解法」という意味があります。
アルゴリズム講座では、小学校~高校レベルの数学の問題を解くアルゴリズムを取り上げ、
そのアルゴリズムを利用した「電卓アプリケーション」を作成します(以下、第1章~第3章の内容)。
また受講生には、講座で取り上げるアルゴリズムを応用して、
自分が考えたオリジナル機能を作成してもらいます。
アルゴリズムを考えるとき、もとになるのは自らの思考の過程です。
自分ならばどういう処理をどういう順番でやるかを考えることで、
論理的なアルゴリズムが自ずと導かれます。
アルゴリズム講座では、アルゴリズムをフローチャート(図)として書き表し、
アルゴリズムをもとにプログラム(文書)を作成します。
このように、アルゴリズムを図や文書として書き表すことで、
受講生は自らの思考の過程を意識します。
そして、フローチャートの作成・プログラムの作成を、
受講生が実感を持って繰り返し行うことで、
論理的思考力が身につきます。
今回の体験講座では、第1章「一般的な電卓」の内容を抜粋し、 「整数の加算・減算を行う電卓アプリケーション」の作成を行いました。 電卓アプリケーションの作成を通して、 フローチャートの作成・プログラムの作成という、 本講座における論理的思考力を身につけるためのプロセスを体験してもらいました。
体験講座 実施報告
今回の体験講座は、7/29(火)~8/2(金)と8/6(火)~8/9(金)の全2回の開講で(各回とも2時間×4日間)、 小学5年生~中学2年生の計7名が受講しました。 体験講座は以下のスケジュールで行いました。
アルゴリズム | プログラム | |
---|---|---|
1日目 | フローチャートの書き方を学ぶ | リテラルの利用 |
2日目 | 順番に処理を行う | 変数の利用 |
3日目 | 処理を分岐させる | 条件分岐の利用 |
4日目 | 複数のアルゴリズムを組み合わせる | 関数の利用 |
~1日目~
プログラムで扱うすべてのデータには、
それがどのような種類のデータか(数値、文字列、論理値など)を表す「データ型」があり、
プログラミングをする上でデータ型の理解は必要不可欠です。
そこで1日目は、データの記述方法として「リテラル」を学び、
プログラムを作成・実行しながらデータ型の違いを確認します。
また、アルゴリズムを学ぶ準備として、アルゴリズムを図で表す「フローチャート」の書き方を学びました。
今回の受講生の半分はプログラミングが初めてということでしたが、
試行錯誤してさまざまなプログラムを作成してみることで、
1日目の内容であるデータ型の違いを確認できたようです。
受講生の様子 |
---|
~2日目~
2日目は、データの記述方法として「変数」を学びます。
変数はデータを格納する箱のようなものです。
変数を利用することで、リテラルだけでは実現できなかったさまざまなプログラムを作成することができます。
また、2日目からは電卓アプリケーションの機能を少しずつ作成していきます。
変数を利用して、電卓アプリケーションの「数字入力機能」のアルゴリズムを考え、フローチャートとプログラムを作成します。
変数を利用したアルゴリズムの問題を出したところ、受講生は皆、それぞれ独自の方法で問題を解いていました。
目的の機能を実現するためのアルゴリズムは1つとは限りません。
自らの頭でアルゴリズムを考え出すことで、論理的思考力は鍛えられます。
電卓アプリケーションの作成 (数字入力機能) |
変数を利用したアルゴリズムの問題 |
---|
~3日目~
2日目までは、アルゴリズム・プログラムともに、記述された処理を順番に実行することしか考えませんでした。
しかし、データの状態によって場合分けを行い、場合毎に異なる処理を実行したいことがあります。
そこで3日目は、データの状態によって異なる処理を実行する構文「条件分岐」を学びます。
条件分岐を利用して、電卓プログラムの「クリア機能」と「整数入力機能」を作成します。
講座のなかでフローチャートを示し、それがどのようなアルゴリズムを表しているかという問題を出しました。
フローチャートから直接アルゴリズムを推理する問題でしたが、
受講生はフローチャートをもとにプログラムを作成し、プログラムの実行結果からアルゴリズムを推理していました。
これにより、フローチャートだけでなくプログラムに対する理解も深めることができたようです。
電卓アプリケーションの作成 (クリア機能・整数入力機能) |
受講生の様子 |
---|
~4日目~
電卓アプリケーションの残り最後の機能として、「計算機能(加算・減算)」を作成します。
そして、2~4日目に作成した機能をプログラムの「関数」としてまとめます。
関数は実行する一連の処理がまとめられた工場のようなものです。
電卓の各パーツに必要な関数を割り当てることで、電卓アプリケーションは完成です。
受講生のなかには1日目、2日目で学んだ内容を忘れている人もいました。
しかし、解説を聞いたりテキストを見返すことでその内容を思い出し、
すべての受講生がなんとか電卓アプリケーションを完成することができました。
電卓アプリケーションの作成 (計算機能(加算・減算)) |
受講生の様子 |
---|
まとめ
今回の体験講座では、電卓アプリケーションの作成を通して、
フローチャートの作成・プログラムの作成という、
本講座における論理的思考力を身につけるためのプロセスを体験してもらいました。
そして、すべての受講生が電卓アプリケーションを完成することができました。
受講生のなかには、前日までに学んだ内容を忘れている人もいました。
学んだ内容を一つ一つ積み重ねて使いこなすためには、実感をともなった理解が必要です。
今回の体験講座では、
受講生が試行錯誤して自らの頭で考え手を動かすという時間を十分に取ることができませんでした。
今後の通常講座、次回の体験講座ではこの点を改善したいと思います。