世界をプログラミングするとは?
前回は、街づくりのワークショップを通じて伝えたい街の本質について書きました。
再掲すると、「街」の本質とは
個の組み合わせによって大きくて複雑なものができていること
と
その中には何らかの「順序」が存在すること
オパールを求めて世界中から人が集まるのだそうですが、発掘者たちが過酷な気候から身を守るため地下に「街」が作られました。
こうした地下にある街を想像してみると、太陽がないから常時灯りが必要だとか、酸素濃度が薄そうだから火を使うのは難しそうだとか、移動手段はどうしようとか、いろいろと考えることが出てきます。
こうした発想を元に、同じような街を地上に作ったらどうなるか?
と考えるのも面白いです。(太陽に依存せず空調が完全にコントロールされた街は快適そう)
「街」を全体として捉えた上で建物などの要素を個として抽出していくステップのことを、探究型プログラミング学習では「モデリング」と呼んでいます。
現実的に「街」を観察してモデリングしても良いでしょうし、現実に縛られず、一旦、発想を広げて様々な情報を元に新しい「街」を考えても構いません。
重要なのは、個を積み上げて街を捉えるのではなく、まずは全体を捉えた上で、個を捉える、という思考を知ることです。
これは、業務システムの開発現場において上流工程に位置づけられている「業務モデリング」というプロセスに該当します。
オブジェクト指向モデリングという手法があるのですが、この手法を使うと、企業に存在する業務を概念として(抽象的に)捉えることができ、業務の中に存在する要素(顧客や契約、など)を個(オブジェクト)として認識できるため、プロジェクト関係者間の認識合わせが容易になります。
※オブジェクト指向については、いつか学習プログラムの中に入れてみたいと考えているので、詳細はまたそのときに
モデリングの思考は、プログラミング言語からスタートするプログラミング学習においては身に付けることができません。
しかし、全体を捉えた上で個を抽出する、という思考は、プログラミングにおいては、適切な粒度のプログラムを設計する際に役立ちますし
現実社会においては、瑣末な作業(個)に注目するのではなく、より広い視野で活動(業務や課題、など)を捉えることで最適解を導くのに役立ちます。
私は、このモデリングの思考をもつことは、あらゆる仕事において役立つと信じているので、あらゆる子どもたちが身につけておくべきスキルの一つだと考えています。
だから、探究型プログラミング学習のサブタイトルにある「世界をプログラミングする」には、その想いを込めました。
そして、先ほどの子どもたちの視点から学べることのもう1つは、個(要素)は単体で存在しているように見えて、実は繋がっている、ということです。
これが、街づくりのワークショップで伝えたい、街のもう1つの本質である
その中には何らかの「順序」が存在すること
に関係します。
続きは次回。