Jazzと読書の日々

iPadを筆記具として使う方法を模索します

明日のためのプログラミング教育 その2

前回の続き。

  • 明日のためのプログラミング教育 その1
  • プログラミング教育

    プログラミング教育は来年から小学校に導入されます。プログラミング教育と言っても、プログラミング言語を教えることではありません。今使われている言語が10年後も主流である保証はない。必要とされる分野も、子供たちが社会に出るときには変化しています。激変の現代、すべてが時代遅れになるでしょう。

    プログラミング教育の目標は「プログラミング的思考を身に付けること」です。でもそれはどういうことでしょうか。ここあたり文科省ははっきりとした指針を出していず、現場に丸投げになっています。科学技術の未来についてビジョンがないまま、このままではマズいという焦りだけ浮き彫りになっている。

    始める前から、もうダメなレベルですね。

    アルゴリズムの順序

    閑話休題アルゴリズムは現状の把握と目標の設定である。前回そう定義しました。アルゴリズムの出発点は現状を記述したものになります。アルゴリズムの到着点は目標が達成した状態になります。この、現状と目標の差異をスモールステップで埋めていくことがアルゴリズムです。

    スモールステップ

    アルゴリズムの各段階には行動が記述されます。作業ですね。何をするかという行動が書き込まれます。現在のシステムで実行可能な行動が記述されます。この行動を「アクション」と呼ぶことにします。

    もし魔術が使えるなら「明日の朝までに目標が達成している」と書けば大丈夫ですが、魔法使いでない場合その手は使えません。手許のツールで実行可能なアクションになるまで分割する。それがスモールステップです。

    アクション

    前回、欲求の自覚がない場合はアルゴリズムの記述が出来ないと書きました。それは、すでに大枠の目標設定がある場合でも同じです。アルゴリズムに書き込まれる各段階のアクションを考えてみてください。実は、それぞれのアクションにも現状の把握と目標の設定があるのです。

    アクションが実行される前の状態、それがそのアクションの現状です。アクションが実行された後の状態、それがアクションの目標です。アクションによって状況が変化する。どういう状況からどういう状況に変化させたいか自覚しないと、アクションの記述は不可能です。

    記述において、文章ごとに効果がある。その効果が目標の達成に貢献するかどうか判定しなければなりません。アルゴリズムにおけるアクションの順序を決めるためには、アクションごとでの欲求を意識することも不可欠なのです。

    料理のレシピ

    アルゴリズムを書くには、自分の欲求を把握する必要がある。しかもそこに時間差があり、それを理解するメタ時間的視点が要請される。それが可能になる教育とは以下の4点です。

    • 欲求を自覚すること
    • 目標を設定すること
    • 現状を分析すること
    • 行動に分割すること

    何かしたいことがあるとき、それをどういうアクションのシリーズとして考えればいいか。プログラミングとはそういうことです。

    実は、家庭科の授業に結びつければ、上記の4ステップは実感しやすいです。「料理を作る」というプロセス。レシピを書けば、それが「アルゴリズム」になります。

    まとめ

    でも、レシピを自力で書くには国語力が必要です。土壌を作らないと「料理」の記述はできません。そのための国語教育とは何だろうか。

    次回それを考えてみます。