探究型プログラミング学習(探プロ)

プログラミングの考え方を学んで、未来を創る力を手に入れる

プログラミングの考え方を学んで未来を創る力を手に入れる

アクティブ・ラーニングの課題を解決するITソリューションとは?

昨日から始まったこちらへ行ってきました。


教育系のITソリューションを一同に集めたこのイベントは
毎年ビッグサイトで大規模に行われていて
私は去年はじめて参加しました。
 
去年は反転授業や電子黒板、電子教科書あたりが大々的に出ていましたが
今年はアクティブ・ラーニングがメインだった感じですね。
それ以外には特段、目につくものがありませんでした。
 
あるとすれば、プログラミング学習などの新しい教育分野を別会場に設けて
学びNEXTというエリアを作っていたことで
こちらはそれなりに見応えがあったと思います。
 
学びNEXTのことは、これから少しずつ書きますが
まずはメインの方から。
 
時間の関係で30分ほどしか見られなかったので
もしかしたら、面白いものを見逃していただけかもしれません。
 
それでも、会場を急ぎ足でざっと回った感じだと、盛り上がっているブースは皆無、という印象でした。
 
真新しさが既に薄れてしまったのかもしれません。
去年の始め頃まではまだ、EdTechという言葉もかろうじて残っていましたから。
 
キーワードとして目についたのは、「アクティブ・ラーニング」ですね。
そして、そのITソリューションは大抵の場合
  • 指導者や学生のパソコン画面を全員で共有できる
  • 使う教材や作成物をオンラインで共有できる
  • 講義を事前や事後に、オンラインで視聴できる
というものでした。
 
この辺の機能は、アクティブ・ラーニングというキーワードが出る前からあったので
単に流行りに合わせて見せ方を変えているだけのようです。
 
帰り際、せっかくなのでそのうちの一つのブースで立ち止まり
担当者の方に話を聞くことにしました。
 
アクティブ・ラーニングのためのITソリューションて何ですか?
何のためにあるんですか?
 
期待する回答はもらえなかったので、ここから先は自分で考えていくしかないのでしょう。
 
自分なりに現状を捉えてみると
いまのソリューションは、アクティブ・ラーニングを実践する人たちの妨げになるものを排除するためのもの、に見えます。
 
資料がオンラインで確認できれば、差し替えや配布、確認が楽にできます。
だから、余計な手間から解放されてディスカッションや考えることに集中できる。
 
講義の内容をあとで確認できれば、当日参加できなかった学生や他の指導者にとって後追い学習ができるようになる。
だから、より多様な声を反映した学習が継続できる。
 
ものすごく好意的に捉えれば、例えばこういったところの価値を生むことに貢献できるのかもしれません。
 
でも、何か物足りない印象です。
 
これらが最低限必要な機能だとすれば、アクティブ・ラーニングの効果を高めるために求めるのは
思考やコラボレーションの活性化に繋がる促しではないでしょうか。
 
それが具体的にどういうソリューションなのか?
今はまだ見えないのですが、必ずしもITの力は必要ない気もしますし
ITだからこその強力な効果が実現できるのであれば、期待したいと思います。
 
アクティブ・ラーニングって、そもそも何?
というところから本来は考えるべきなのでしょうね。
 
探プロの中でもアクティブ・ラーニング、という言葉を使っていくことになるのでしょうから
自分なりの定義と、ソリューション案は持っておかないと
ということに気づけたことが、今回参加した一番の収穫でした。
 
学びNEXTについては、また次回。

街づくりのもう1つの本質からアルゴリズムを学ぶ

街づくりの本質2つめとして、今回は

その中には何らかの「順序」が存在すること

を書いてみます。

 

前回は街を構成している個(要素)について考えたわけですが

個と個はそれぞれ、何らかの関係性をもっていると捉えます。

 

たとえば、電車と線路と踏み切り、そして踏み切りをまたいでいる道路、その上を走る車やバス、そして信号機・・・

こう書けば、どんな繋がりをもっているかは説明するまでもないと思います。

 

遠隔で繋がっている例としては

 

不審者が侵入→(のセンサーが反応して警備会社へ連絡)→警備会社(から警察へ連絡)→パトカー(が出動)

 

のような繋がりや

 

工場(でお弁当を作る)→トラック(で店舗に運ぶ)→(に並ぶ)

 

など、です。

 

こうした繋がりとやその中にある順番のことを、探究型プログラミング学習ではアルゴリズムと呼んでいます。

※ちなみに子ども向けには、

アルゴリズムとは、プログラム(=命令の集まり)の順番

と説明しています。

 

アルゴリズムを考えるときにも、まず個から考えて、次に個と個の繋がりを考えて、といった段取りで少しずつスケールを広げていきます。

たとえば、踏切を個と捉えれば、電車との関係を前提に踏切のアルゴリズムをまず考えます。

f:id:dig_learning:20160518001944p:plainf:id:dig_learning:20160518001921p:plain

ちなみに、この部分をさらに掘り下げていけば、モノの仕組みを知る学習に繋げていくことができると考えていて、将来的にはそんな流れが作れたら良いなぁ、という野望もあります。

 

そして、踏切と電車、道路を走る車、信号機などとの関係を1つずつ組み合わせていき

それぞれがどういった順番(アルゴリズム)で動いているのかを捉えていきます。

 

街づくりのワークショップにおいて、この

その中には何らかの「順序」が存在すること

を学ぶ過程には2つの学習ポイントがあります。

 

1つは、個と個を繋いで大きな街をつくる、という流れに沿って、アルゴリズム自体も、組み合わせることによってより大きく複雑になっていく

ということを知るということ。

つまり、シンプルなアルゴリズムを組み合わせていけば、大きくて複雑なアルゴリズムが作れるということです。

(逆にみれば、大きくて複雑なものでも、個に分けていけばシンプルなものとなる)

 

もう1つは、個と個を繋ぐとき、その繋ぎ方は予め決めておく必要があるということです。

たとえば踏切の例でいえば、電車が近づいて、②で運転士に遮断機がおりたことを知らせるわけですが

このときの知らせ方として、信号を使うのか、無線を使うのか、など選択肢がいくつかあるのであれば、どの手段を使うのか予め決めておかなければいけません。

そうしないと、例えば無線で連絡する踏切なのに電車が無線に対応していない、という事態に成りかねないからです。

 

littleBitsを使うワークショップでは、自分の作品と他の子の作品を繋ぐ場面で同じ問題が起きます。

いざ繋ごうとしたときに、お互いの作品(回路)の一部を壊さなければいけない体験を通じて、はじめに繋ぎ方を決めておくべきだった

ということを失敗を通じて学習することを期待しています。

 

さて、前回までの解説をまとめると、街づくりの学習プログラムでは以下のプログラミング概念を学習しているということになります。

  • 2進数、プログラム(アイスブレイク~大人を命令しよう~)
  • アルゴリズム
  • モジュール化

  • インタフェース(繋がり方を決める)

 

こうしたプログラミングの概念が、実は現実社会においても適用できるし、実際にされているということや

こうした学習は必ずしもパソコンを使わなくてもできるということが、少しでも伝えることができれば嬉しいです。

世界をプログラミングするとは?

前回は、街づくりのワークショップを通じて伝えたい街の本質について書きました。

再掲すると、「街」の本質とは

個の組み合わせによって大きくて複雑なものができていること

その中には何らかの「順序」が存在すること

 
となります。
 
個を組み合わせて大きくて複雑なものができる、については既に解説したので
今回はその逆(全体を個に分ける)について書いてみます。
 
 
「街をつくろう!」というテーマのワークショップは文字通り、街をつくるわけですが
まず最初に子どもたちが考えるであろうことは
「街には何があるだろう?(=何を作ろう?)」
です。
 
ワークショップのはじめに、参加してくれた子どもたちの自己紹介の中で
「会場に来るまでに街の中で見かけたもの」
を1つずつ発表してもらうようお願いしました。
 
すると、自動販売機、踏み切り(都電荒川線が近いので)、信号機、お寺などの建造物、はたまた花など非常に多くのバリエーションがありました。
 
 
どれも正解なわけですが、子どもたちのこうした視点から2つ、学べることがあります。
 
1つは、人は、そこに存在するものや、自分の知っているものしか想像できないということです。
小学生の子どもたちが知っているのはせいぜい、学校など身近な施設や、利用している交通機関など、自分の生活圏内で見たもの、知っているもの、という範囲でしかありません。
でも実際には、街はあらゆる要素で構成されているのであり、私たちはその一部しか見ていないのです。
 
だから、ものすごく狭い世界を捉えている子どもたちに対して「街をつくろう!」
と促すだけでは、自分の知っているものの中から思いついたものを作るだけの単なる工作になってしまいます。
 
 
そうならないように、実際に「街」を探検して観察したり、見たこともない世界の珍しい「街」や、映画、絵本の中に出てくる架空の「街」など
子どもたちの発想を広げるような情報を見せることは有効だと考えています。
 
そこで、先日のワークショップではお昼休みの間に、「街」に出て観察してくることを勧め、ワークショップの中では様々な「街」を紹介しました。
 
たとえば、オーストラリアのクーパーペディという地下にある「街」は見応えがあります。

オパールを求めて世界中から人が集まるのだそうですが、発掘者たちが過酷な気候から身を守るため地下に「街」が作られました。

 

こうした地下にある街を想像してみると、太陽がないから常時灯りが必要だとか、酸素濃度が薄そうだから火を使うのは難しそうだとか、移動手段はどうしようとか、いろいろと考えることが出てきます。

こうした発想を元に、同じような街を地上に作ったらどうなるか?

と考えるのも面白いです。(太陽に依存せず空調が完全にコントロールされた街は快適そう)

 

「街」を全体として捉えた上で建物などの要素を個として抽出していくステップのことを、探究型プログラミング学習ではモデリングと呼んでいます。

現実的に「街」を観察してモデリングしても良いでしょうし、現実に縛られず、一旦、発想を広げて様々な情報を元に新しい「街」を考えても構いません。

重要なのは、個を積み上げて街を捉えるのではなく、まずは全体を捉えた上で、個を捉える、という思考を知ることです。

 

これは、業務システムの開発現場において上流工程に位置づけられている「業務モデリング」というプロセスに該当します。

オブジェクト指向モデリングという手法があるのですが、この手法を使うと、企業に存在する業務を概念として(抽象的に)捉えることができ、業務の中に存在する要素(顧客や契約、など)を個(オブジェクト)として認識できるため、プロジェクト関係者間の認識合わせが容易になります。

オブジェクト指向については、いつか学習プログラムの中に入れてみたいと考えているので、詳細はまたそのときに

 

モデリングの思考は、プログラミング言語からスタートするプログラミング学習においては身に付けることができません。

しかし、全体を捉えた上で個を抽出する、という思考は、プログラミングにおいては、適切な粒度のプログラムを設計する際に役立ちますし

現実社会においては、瑣末な作業(個)に注目するのではなく、より広い視野で活動(業務や課題、など)を捉えることで最適解を導くのに役立ちます。

 

私は、このモデリングの思考をもつことは、あらゆる仕事において役立つと信じているので、あらゆる子どもたちが身につけておくべきスキルの一つだと考えています。

だから、探究型プログラミング学習のサブタイトルにある「世界をプログラミングする」には、その想いを込めました。

 

そして、先ほどの子どもたちの視点から学べることのもう1つは、個(要素)は単体で存在しているように見えて、実は繋がっている、ということです。

これが、街づくりのワークショップで伝えたい、街のもう1つの本質である

その中には何らかの「順序」が存在すること

に関係します。

 

続きは次回。

@tanpro-lab