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

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

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

工作と学習のハザマで。

前回の続きを書きたいところなのですが、、、

番外編として、最近直面している課題の1つについて少し書いてみます。

 

「楽しい」に関する探究型プログラミング学習なりの考え方を、先日とりあげました。

その中にも書きましたが、工作自体を楽しむこと、期待する学習を通じて楽しむことと、それを両立させることの難しさが課題だなぁ、とこの頃よく感じます。

 

先日のワークショップでも、littleBitsの紹介やプログラミングの話をした上で、工作に臨んでいるにも関わらず

最終的な作品の中にlittleBitsを一切使わない子たちがいて、ちょっとした衝撃を受けました。

これはフォローしきれなかった主催側の責任であって、子どもたちは純粋に楽しんでいるにすぎないのですが

そういった状況を見てあらためて、littleBitsを使ってプログラミングを学習する

というスタイルの難しさを痛感しました。

 

たとえば、100円ショップに行けば工作に使えそうな道具がたくさんあったりして

身近にある空き箱なども含め、ついつい種類を揃えたくなってしまいます。

そういう環境は子どもたちにとって非常に魅力的なはずで、切ったり貼ったり

思う存分に工作を楽しむのです。

 

しかしこの環境は、littleBitsを使って工作をしてほしい主催側としては、ヤキモキするところです。

littleBits自体を主役としたワークショップではわりと、littleBitsを使って何を作ろう?

と自然と考えることができるのですが

littleBitsを実現手段の一つとして位置づけている探究型プログラミング学習では

工作道具の一つのように扱われてしまい、うまく活用してもらえないことが多いのです。

 

今日は、新しい学習プログラム「公園をつくろう!」の企画を練るために

我が子も含めて子どもたちに少し工作を手伝ってもらったのですが、公園にあるもの、公園にあったらいいもの、というリクエストだけでは、littleBitsのうまい活用になかなか辿り着きませんでした。。。

 

littleBitsを使って何ができるのか?

そこから発想を広げる促しが、学習の流れの中に必要なのだということを痛感しましたし、フォローする大人の役割が重要だということも改めて理解しました。

 

また以前も書いたように、littleBitsのブロック(Bit)を単に組み合わせるだけではそれは工作に過ぎなくて

アルゴリズムとして捉える部分にも注目してもらいたいのですが、短い時間のワークショップの中ではそこをうまく伝えられないもどかしさもあったりして

やるたびに難しさを実感したりもします。

 

工作を楽しむことも素晴らしいこと、と評価しつつも、プログラミングの学習をしてほしい。

とはいえ、時間は限られている。

出来ることとやりたいことをうまくバランスさせることが、大きな課題の1つになっています。

 

プログラミング学習そのものというよりは、短時間で何らかの学習効果を求めたいワークショップの運営ならではの課題かもしれません。

工作を楽しむ!littleBitsを楽しむ!ことを目的としたワークショップならもっと簡単なのに、、、

と時々思うこともありますが、単なる楽しい経験を上回るワークショップを目指しているのですから

なんとかして乗り越えていきたいところです。

 

写真は、お兄ちゃんが作った即席の滑り台(滑りこむと圧力センサーが反応してバイブレーションを作動させびっくりさせる)にデコレーションする妹、です。

楽しみ方は人それぞれ。

f:id:dig_learning:20160515230740j:plain

プログラミング学習を通じて伝えたい街づくりの本質とは何か?

前回に書いたように、探究型プログラミング学習では現実社会における本質をプログラミングによって捉えることを目指しています。

それが具体的にどういうことか?について、先日やった街づくりのワークショップを例にして説明します。

はじめに、「まち」には「町」と「街」の2種類があって、ここで対象としているのは市町村の一つの単位や一区画をあらわす「町」ではなく、人や建物が集まるところという概念として捉える「街」であることをお断りしておきます。

 

私は、「街」の本質とは

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

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

だと捉えています。

 

街にはどんなもの(要素)があるか?

例えば小学校や幼稚園、消防署や図書館

ゲームセンターや映画館、東京タワーや温泉、スーパーや商店街、バスや電車・・・

などなどです。

 

ちなみに、先日のワークショップの冒頭に、子どもたちが会場へ来るまでに街の中で目にしたものを発表してもらったところ

なぜか自動販売機が最多でした。

次に、踏切、電車、お寺などなど。

 

そういった要素が集まって、例えば工場エリア、観光エリア、公共施設エリアなどがあって、エリアが集まって一つの街となる

というように、個の組み合わせてグループにして、さらにそのグループを繋げて1つの大きなグループを作る

と考えていきます。

f:id:dig_learning:20160514235353p:plain

ワークショップでは、まず自分の作りたい作品を考え、4人グループの中でテーマを決めて各自の作品を組み合わせて小さな街をつくり、最後に4つのグループの街を繋げて大きな街をつくりました。

f:id:dig_learning:20160504001432j:plain

 

街づくりのワークショップでは、この本質を「モジュール化」というプログラミングの概念で捉えています。

「モジュール化」とは、簡単にいうとプログラムを意味のある単位でまとめたもの、です。

各自の作品を「モジュール」と捉え、モジュールの組み合わせがすなわち各自の作品を繋げることと、という意味合いで使っています。

 

一般的に子ども向けのプログラミング学習において、「モジュール化」の概念を伝えることはほぼないと思います。

なぜなら、子どもが個人で作る範囲においては、自分の動かしたい形に合わせてプログラムのコードを書き連ねていけばよいので、プログラムを意味のある単位でまとめようという発想がそもそもないですし

すごく大きなプログラムを作って、そのメンテナンス性の悪さに気づいて初めてその重要性が分かるもの、なのだと思います。

 

一方で、私たち大人が携わっているシステム開発の現場では「モジュール化」の概念が必須です。

一人でプログラムを作りきることはほぼなく、誰かの作ったプログラムと組み合わせて使うことが常だからです。

 

独りよがりのプログラマーが調和を乱す開発現場を何度か見てきた経験もあって、モノづくりにおいては他者とのコラボレーションの意識が非常に重要だと私は考えています。

だから、プログラムを塊として捉えることや、それらを組み合わせること、そしてそれによって大きなプログラムを作ることができること、を是非とも知っておいてほしいし

それがプログラミングだけでなく日常や、他のシーンにおいても役に立つ概念であるということに気づいてほしいと期待しています。

 

この辺は、21世紀型スキルのWays of working(チーム活動)の修得にも関わるところで、個人単位のプログラミング学習ではなかなか修得できないスキルの範囲であり

21世紀型スキルの網羅的な修得を目指す探究型プログラミング学習の大きな特徴となっています。

 

そしてこの個と全体、の考え方は、その逆(全体を個に分ける)をする上でも役立つということや、個を組み合わせるときの繋ぎ方(インタフェース)の重要性

それから、本質の2つ目に書いた「順序」についても、この後1つずつ説明をしていきます。

探究型プログラミング学習を通じて体験してほしい「楽しさ」とは何か?

昨日の出来事がきっかけとなって "楽しい" について考えたので少し書いてみます。

 

自分で主催したものや、お手伝いしているものも含めて、この1年間で何度かのワークショップに携わりましたが、いずれにおいても

子どもたちはとても楽しそう

でした。

 

実際に、アンケートでもその点を評価してくださる保護者の方がとても多いです。

夢中になって没頭している様子や、友だちと賑やかに手を動かしている様子は、確かに楽しそうだし、終了後も「またやりたい!」という声をたくさん聞きます。

それはそれで良いと思います。

純粋に、「楽しかった!」と言う子どもたちの表情はとても明るいからです。

 

ただ、その「楽しい」は私が求めている「楽しい」とはどこか違うな、ということをずっと感じています。

 

修士研究に教育をテーマとするよう決めたとき、最初のきっかけは

学ぶことの楽しさを伝えたい

という想いでした。

 

私は物心ついてからずっと、大学を卒業するまで一度も、勉強する、学ぶことを楽しいと思ったことがありませんでした。

一度も、自ら学びたいとか、もっと学びたい、ということを感じることがなかったんですよね。

 

それが、SEとして社会人生活をスタートしてしばらく経ったとき、コンピュータの世界観やプログラミングについてものすごく興味をもって

強烈に、「もっと知りたい、もっとやってみたい」と思うようになりました。

大学でも同じことをやっていたはずなのですが、、、

 

恐らく違いは、これまでは勉強しなければいけないことを与えられていて、それに応えているだけだったのだと思います。

そこに楽しさは見いだせなかった。

 

それが社会人になって、自分の興味のあることを、好きなだけ時間を使って好きなように学んで良くなり、それで初めて学ぶことの楽しさを知ったのだと思います。

物事を突き詰めていくときのワクワクする感じや、次から次へと生まれる疑問に答えを見つけたいと思う気持ちなど

いま、子どもたちに体験してほしいと考えている学びを私自身は、大人になってからしか体験することができませんでした。

 

だから、その楽しさを少しでも早く知ってほしい、という想いが私の中にあります。

それで、教育という大きなテーマでスタートしたわけですが、次第に

学ぶことの楽しさ、とは要するに何を楽しいと感じているのか?

ということを考えるようになりました。

 

それでこれまでの人生の中で、その楽しさを実感したのはいつだっただろう?

と振り返ってみると

この3つのタイミングだったと思い当たりました。

共通するのは、

これまで見えなかったものが見えるようになった

ということです。

 

プログラミングといえば機械的でコードが並ぶ何ら面白みのない作業

だったのが、オブジェクト指向の概念を知ったことで急に、身近な世界との類似性が見えるようになりました。

 

とはいえ、相変わらずプログラミングの世界だけでは現実社会との繋がりが分かりづらかったのですが、オブジェクト指向モデリングを使うことで、複雑で分かりづらい業務や企業の構造を概念として可視化することができるようになりました。

 

それでだいぶ、システムの世界と現実の世界が繋がるようになったのですが、それでもなお、システム化という枠組みの中だけで捉えていたので何か釈然としないものが残っていましたんですね。

それが、大学院でビジネスモデルの考え方を学んだことによってようやく、現実社会の仕組みが見えるようになりました。

 

普通、事業に携わっている人であれば、トップダウンでビジネスモデルを捉えるのだと思いますが、私の場合はプログラミングのレイヤーからボトムアップで捉えたので

ビジネスモデルの概念と、その具体的な実現形式が、かなりクリアな形で繋がり、見えるようになったことがかなり特異なケースではないかと思っています。

 

そういった気づきを通じて

プログラミングの世界観と、実社会の世界観は類似していて、同じように捉えることができる

と考えるようになりましたし、探究型プログラミング学習の根底にはこの思想があります。

ちなみに、探究型プログラミング学習のサブタイトルに「世界をプログラミングする」と書いているのはそれが理由です。

 

だから、探究型プログラミング学習とは一体何か?何のためにあるのか?

について考え始めたとき、最初にビジョンを定めておこうと決めました。

モノゴトの本質を見極める力の自律的な修得を通じて
未来を創造する子を増やします。

 未来を創造する、とは21世紀型スキルのことです。

(21世紀型スキルという言葉は何を示すのか分かりづらいので「未来を創る力」と言い換えているため)

 

さいしょにある「モノゴトの本質を見極める力」というのがつまり

見えなかったものが見えるようになることであり、それを楽しめること

と捉えています。

つまり探究型プログラミング学習では、プログラミングの世界と現実の世界を同じように捉えることで、その楽しさを実感し、自らが未来を創造する力を修得する子が一人でも多く育ってほしいと願っているのです。

 

ただ残念なことに、まだまだ力不足でその「楽しい」を子どもたちに体験してもらうところまで辿り着けていません。

そういう意味では、探究型プログラミング学習が目指すところまでへの道のりはまだまだ遠い、のだと思います。

 

と、ここまでは抽象的な話ばかりで分かりづらいと思うので・・・

次は実際に、たとえば先日の「街をつくろう」ではどのような本質をプログラミングによって捉えているのか?

について書いてみます。

@tanpro-lab