Check our Terms and Privacy Policy.

低学年児童のためのプログラム教育教材の作成とそのための実践:第一版 (3rd)

プログラミングという概念は、手続きを書くことと同義ではありません。 本企画では、主に低学年児童向けにプログラムそのものの概念の把握から、プログラミングの考え方の多様性とデータ構造の重要さを理解できるような講習を行ない、かつ教材および資料の作成を目指します。

現在の支援総額

0

0%

目標金額は1,950,000円

支援者数

0

募集終了まで残り

終了

このプロジェクトは、2017/08/31に募集を開始し、 2017/09/28に募集を終了しました

このプロジェクトを見た人はこちらもチェックしています

低学年児童のためのプログラム教育教材の作成とそのための実践:第一版 (3rd)

現在の支援総額

0

0%達成

終了

目標金額1,950,000

支援者数0

このプロジェクトは、2017/08/31に募集を開始し、 2017/09/28に募集を終了しました

プログラミングという概念は、手続きを書くことと同義ではありません。 本企画では、主に低学年児童向けにプログラムそのものの概念の把握から、プログラミングの考え方の多様性とデータ構造の重要さを理解できるような講習を行ない、かつ教材および資料の作成を目指します。

このプロジェクトを見た人はこちらもチェックしています

たとえば、 “y = ax^2 + b” のグラフを描画するのであれば、 “x” を適当な範囲で動かせばいい。この場合、 “x” と “y” という要素が存在するのみで、データ構造らしいデータ構造は不要だ。

あるいは、円周上にいくつか場所を取り、その一つにはロボットを、残りにはバッテリーなり宝物なりを置いておき、ロボットに円に沿ってそれらを回収させるような場合、ロボットが進む向き (右に何度曲がるなど)、あるいは原点からの移動角度を持っていればいいだろう。バッテリーかなにかにぶつかったときは、環境がもっている「当たり判定を使う」としてだが。これも、向きあるいは角度だけがあればいいので、データ構造らしいデータ構造は不要だ。

もし二次関数の接線を引くということになれば、 “[[ x0, y0 ], [ x1, y1]]” くらいは必要になるだろう。あるいはロボットの集めるバッテリーや宝物に種類があるとすれば、 “[ 種類, 個数 ]” の並びくらいは必要になるだろう。

だが、よくある、「A君はimをj分で歩きます。B君はkmをl分で歩きます。B君はA君よりm分遅れて出発しました。B君がA君に追い付くのは、B君が出発してから何分後でしょう」というようなものは、プログラミング的思考に基づくなら、A君、B君については “[時刻, 時速, 距離]” くらいのものは作り計算させるのが妥当だろう。プログラムとして書かないとしてもだ。

まだ例を出していないので、わからないという人もいるだろう。適切なデータ構造を使えば、問題を解くのがとても楽になる。たとえば迷路を出してみよう:

これは、「入口」、「分岐点」、「行き止まり」、「出口」に注目すると、次のように書ける。

番号はユーザが勝手につけたものだから、どこが出口なのかはすぐにわかる。この場合、⑩が出口だ。すると、⑩を木に追加した瞬間に⑩から遡っていけば、入口に到達できる。たとえて言うなら、そんな具合だ。迷路を二次元のデータとして描くよりは、問題が解き易くなる。

適切なデータ構造を用いるということは、問題を適切にモデル化することでもある。そこを無視する理由はない。無視するなら、そうとうなあれとも言えるだろう。「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」には、データ構造についての言及はない。つまり、よりにもよって相当なあれが集まったということだ。

保護者や教諭の方々は、面倒と思わずにコンピュータ・サイエンスを勉強して欲しいと思う。kuzu/NULLでは、本企画のリターンとは別に、その要望に応える準備がある。

シェアしてプロジェクトをもっと応援!