HOME > natural science Laboratory > アルゴリズム講座

アルゴリズム講座 2014年度夏休み短期講座
「電卓アプリ開発で論理的思考力を鍛えよう!」実施報告

文責:藤原 脩 (2015年1月28日) カテゴリ:アルゴリズム講座(6)

アルゴリズム講座とは

 「アルゴリズム講座」は、NPO法人natural scienceが開発・実施を行っている、小学校高学年生〜高校生を対象としたコンピュータ・プログラミングに関する科学講座です。本講座は、単に知識を暗記するのではなく、受講生自らが実感を持って一つ一つの要素を理解し積み重ねていく過程を大切にしています。本講座では、課題解決のための手順つまりアルゴリズムを、フローチャートを用いて思考し、コンピュータ・プログラムによって実現します。その過程で、プログラミング技術を体系的に習得しながら、因果関係を理解し積み上げていく力、すなわち論理的思考力を身につけることを目的としています。

夏休み短期講座 実施報告

 アルゴリズム講座では、電卓アプリケーションの開発を題材にした夏休み短期講座「電卓アプリ開発で論理的思考力を鍛えよう!」を開講しました。本講座を通して、受講生はアルゴリズムを表現するための道具であるフローチャートとプログラムの基礎を学び、電卓アプリケーションの各機能(「データ入力機能」「計算機能」「データ出力機能」)のアルゴリズムを構築します。アルゴリズムを構築するとき、もとになるのは自らの思考の過程です。受講生自身がどういう処理をどういう順番で行えばよいかをフローチャートを用いて思考し、プログラムで実現することを通して、自らの思考の過程を認識し表現する力を養います。
 本講座は2014年7月21日〜8月8日にかけて全3回(各回2時間×4日間)開講し、合計9名の小・中学生が受講しました。


図1:作成する電卓アプリケーション

<1日目:フローチャートの習得>

 アルゴリズムを表現するための道具としてフローチャートとプログラムがあります。フローチャートは課題を解決するための手順の流れを図式化したもの、プログラムは課題を解決するための手順の1つ1つをコンピュータへの命令として書き出した文書です。最終的に作成するアプリケーションはプログラムで記述するのですが、はじめからプログラムを書くことは難易度が高いです。そのため、受講生はまず自分の思考過程をフローチャートに書き出し、そのフローチャートをもとにプログラムを記述することでアプリケーションを作成します。そこで1日目は、自分の思考過程をフローチャートで書き表す方法を学びます。
 受講生のほとんどはフローチャートについて学ぶのが初めてでした。受講生は、演習課題として、さまざまな種類のデータを順番に表示するための手順をフローチャートとして書き表しました。この演習課題を繰り返し行うことで、受講生はフローチャートの意味を徐々に理解し、自分の思考過程を適切に書き表せるようになりました。
 また、受講生はアプリケーション作成に使用するプログラミング言語であるJavaScriptの基礎を学びました。さまざまな種類のデータを表示するという演習課題を通して、受講生は基礎的なプログラミング技術を習得することができました。


写真1:プログラムのリテラルを確認する様子

<2日目:アルゴリズムの構築>

 1日目は自分の思考過程をフローチャートで書き表す方法を学びました。2日目は、フローチャートを利用してアルゴリズムを構築する練習を行います。
 ここでは、演習課題として、「変数の値の入れ替え」というアルゴリズムについて考えました。「変数の値の入れ替え」は初学者がアルゴリズムを考え出す術を確立する上で重要な課題です。多くの受講生は、「変数に格納された値」といった抽象的なイメージではなく、「箱の中の果物」などといった具体的なイメージを思い浮かべることで、適切な手順を導き出すことができていました。
 さらに、1日目に習得したプログラミングの基礎技術を用い、導き出した手順をもとにプログラムを作成しました。これにより、受講生はフローチャートにしたがって適切なプログラムを作成することができるようになりました。


写真2:自分の思考過程をフローチャートで書き表す様子

<3日目:プログラミングの応用>

 1〜2日目で受講生は自分の思考過程をフローチャートに書き出し、アルゴリズムを構築することができるようになりました。しかし、1〜2日目で学んだのはデータを出力するための手順で、電卓アプリケーションを作成するためにはデータを入力する機能が必要です。そこで3日目は、アプリケーションにデータ入力を行うためのプログラミング技術を習得します。
 ここでは、演習課題として、ボタンとプログラムを組み合わせた単純なアプリケーションを作成しました。複数のボタンがあり、ボタンが押されたタイミングでそのボタンに対応するデータが入力され、表示されるというものです。この演習課題を通して、受講生は今回作成する電卓アプリケーションをプログラムでどのように実現するかというイメージをつかむことができたようです。


写真3:演習課題のアプリケーションを作成する様子

<4日目:電卓アプリケーションの作成>

 1〜3日目で学んだ内容を利用して、電卓アプリケーションを作成します。電卓アプリケーションに必要な3つの機能「データ入力機能」「計算機能」「データ出力機能」のアルゴリズムについて、自分の思考過程をフローチャートに書き出し、そのフローチャートをもとにプログラムを作成します。
 受講生は自分なりの考え方にもとづき、目的の機能を実現するためのフローチャートを書き出し、そのフローチャートにしたがってプログラムの作成に取り組みました。最終的に受講生は皆、電卓アプリケーションを完成させることができました。さらには、電卓アプリケーションにオリジナルの計算機能(入力した値の2乗和を求めるなど)を実装する受講生もいました。


写真4:完成した電卓アプリケーション

まとめ

 受講生のほとんどはフローチャートやプログラムについて学ぶのが初めてでした。自らの思考の過程を認識し表現することに不慣れで、アルゴリズムの構築に苦戦する受講生の姿もありました。しかし、自ら手を動かして試行錯誤する中で、自分なりの方法論を確立し、論理的に考える術やその考えをアウトプットする術を身につけることができたようです。
 最終的には皆、自分なりの考え方にもとづいて電卓アプリケーションの各機能についてアルゴリズムを構築し、アプリケーションを完成させることができました。



▲このページのトップNPO法人 natural science トップ

▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました