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

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

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

【ワークショップレポート】未来の街を旅しよう!その6

さて、ここまで5回にわたり

旅をテーマに、LEGOとlittleBitsを使って、

・命令(LEGO+littleBits)の集まりがプログラム(街)

・プログラムを順次実行するのがアルゴリズム(目的地までの行程)

という考え方を具体的にどう実現したのか?

について書きました。

 

次は学習フレームワークの最後のステップである「実現する(コーディング)」です。

f:id:dig_learning:20170301164031p:plain

 

ちなみにコーディングという名前は、実行させる命令をコード(Code)という形で作ることを意味します。

コードは、コンピュータが理解できる言葉です。

こんなやつですね。

プログラムコード - Google 検索

 

なので、コンピュータ上で実行するコード(≒プログラム=命令の集まり)を作る行為のことを、私はコーディングと呼んでいますが、世の中一般的には、プログラミングと呼ぶようです。

 

私の理解では、プログラミングはもう少し範囲が広くて、

少なくとも探プロの定義では 、アルゴリズム通りに動くプログラムを作ること

なので、実行させる対象は必ずしもコンピュータでなくても良いと思っています。

 

探プロが、いわゆるプログラミングっぽくないのはこの捉え方が違うから

なのですが、まだうまく伝えられていないような気がしています...

 

プログラミングという言葉を使わない方が良いのでは??

というアドバイスもよくもらいます。

 

それくらい、プログラミングという言葉が、少なくとも日本では限りなくコーディングに近いものとして使われていますから。

日本のプログラミング教育がいまひとつ私にとって魅力的に思えないのは、根本的にはこの定義がズレているから、と思っています。

 

ですが、この辺の定義には諸説ありますし、好みもあったりするので、これ以上深入りするのはやめておきます。

 

 

何にしても探プロでは

アルゴリズムに従って命令を実行するプログラムを作ることをプログラミング

と定義しました。

なので、実行するところに限定して、コーディング、という言葉をあてています。

 

そして、探プロでいうところのコーディングが何か?

今回の例でいえば、littleBitsを使って動かすことがコーディング、となります。

f:id:dig_learning:20170302232640j:plain

 

作品をつなげるアルゴリズムをストーリーとして語りながら

Aの作品ではAの命令を実行(littleBitsを動かす)

次にBの作品でBの命令を実行(littleBitsを動かす)

という感じです。 

 

レポートその3の中では、今回のチャレンジを4つ書きました。

  1. いつもの紙工作ではなくLEGOを使うことで創造力をさらに高められるか?
  2. 発散系の創造的思考と収束系の論理的思考を同時に使いこなせるか?
  3. プログラミングの考え方(今回はアルゴリズム)を学び、理解した上で使いこなせるか?
  4. ファシリテーターの説明だけで子どもたちは理解できるか?(TAはどの程度の介在が必要か?

 

そのうちの3つめ

プログラミングの考え方(今回はアルゴリズム)を学び、理解した上で使いこなせるか?

について振り返ります。

 

今回は順次構造という非常にシンプルな形のアルゴリズムだったので、結論としてどのグループも、ちゃんと旅のストーリーを作って、かつlittleBitsのくっついたLEGOを命令と見立ててプログラミングすることができていました。

f:id:dig_learning:20170301165134p:plain

 

ここでも、TAの皆さんのフォローに大変助けられたのですが、終わってからのフィードバックには

街、旅、という複数の概念が混在する中で、子どもたちが何を作ったらいいのか分からず混乱する場面があった

というものがありました。

 

確かに、いま振り替えると「街」という概念はあまり重要ではなかったかもしれません。

 

また、子どもたちの考える旅の発想はもっと自由で、街にこだわる必要はなさそうでした。

3グループの発表をきいた感じだと、ロールプレイングゲームを作っているような、そんなイメージで捉えていたようです。

飛行機に乗って移動したり、最新型のロボットに乗っていたところもありましたしね(笑)

 

そんな反省を活かして、次回は旅というコンセプトは残しつつ、子どもたちに伝えるときはクエスト(Quest)という言葉を使うのもありかなとか。

もうちょっと考えてみます。

 

そして、もっと複雑なアルゴリズムを作った場合には、ストーリーを聞いているだけでは分かりづらいので、何らかの形で可視化する工夫も必要です。

この辺までやると、学校でのプログラミング教育としても活用できるのではないかなぁ、と思っていますがどうでしょう?

 

 

さてさて、各グループはどんなプログラミングをしたのでしょうか?

次はようやく、発表です!

【ワークショップレポート】未来の街を旅しよう!その5

引き続き、ワークショップレポートその5です。

【満員御礼】☆探プロ☆LEGO®とlittleBitsを使ってプログラミング~未来の街を旅しよう~ #01 | Peatix

 

f:id:dig_learning:20170301174301j:image

 

前回のレポートでは、このコンテンツで学ぶ内容(アルゴリズムの順次構造)と

LEGOとlittleBitsを使って命令とプログラムを作るところまで説明しました。

f:id:dig_learning:20170228204349p:plain

 

次にアルゴリズムの説明に入りたいところですが、その前に、今回のコンテンツに「旅」を選んだ理由とプログラミングとの関係を説明しておきます。

 

書くのがちょっと久しぶりですが、探プロにはコンテンツを設計するための学習フレームワークがあります。

f:id:dig_learning:20170301164031p:plain

以前はこんな説明をしていました。


モデリング(M)、アルゴリズム化(A)、コーディング(C)、といった用語が聞きなれない人が多いので、直感的に分かる用語に置き換えていますが

基本的な位置づけや考え方は同じです。

 

今回の「未来の街を旅しよう!」も、この学習フレームワークに従って設計しました。

 

まず最初の「観察と発見」では、旅について考えます。

とはいえ、わずか2時間のワークショップですし、初めて集まる子どもたちなので、ここで旅についてディスカッションするわけにはいかず...

 

今回は私の方で、こんな観点から旅を観察してみました。

f:id:dig_learning:20170301165040p:plain

例えば左上のエリアに該当する旅は、目的地までのんびり行き当たりばったりの出会いを楽しむような旅でしょうか。

 

左下のエリアは、とりあえず方角だけ決めて、あとは気のむくまま進む自由人の旅になるでしょうし

 

右下のエリアには、1日乗車券を使って行けるところまで行くような旅があると思います。

 

そして右上のエリアは、修学旅行やパッケージツアー、といった具合ですね。

 

いろんな切り口があるので一例ですが

どうしてこんなことをしているかというと、旅の目的地までの行程を考えることがアルゴリズムである

ということを伝えたいからです。

 

すなわち、今回のテーマで扱う旅というのは右上のエリアの旅である

ということを最初の前提としたかったからなんですね。

f:id:dig_learning:20170301164953p:plain

 

アルゴリズムを複雑にして、もっと自由度の高い旅に出ても良いと思いますが

今回は初級編なので制約が多めとなっています。

 

ちなみに、やる前からある程度、予測はついていましたが、この説明はやはり、子どもたちには難しかったようです(涙)

 

2軸で考えるのは低学年には難しいのと、高学年でも、自分が経験したことのある旅にバリエーションがあるわけではないので

ちょっと想像したらかったようですね。

 

時間さえあれば、どんな旅があるのか考えてみるのは楽しいでしょうし

学校の修学旅行を計画するときにも、ついでにアルゴリズムの勉強をする

なんていう活用が考えられます。

 

そうそう、この旅をテーマにすることについては、終了後にTAの方々からとても貴重なご意見を頂いたので

また後で書こうと思います。

 

 

話を戻すと…

 

観察と発見(モデリング)を経て、いよいよ実現方法(アルゴリズム)を考えます。

 

アルゴリズムといっても種類がたくさんあるので、今回は一番シンプルな順次構造を使うことにしました。

 

例えば今回の場合、グループにあるそれぞれの作品を順につなぐアルゴリズムを考えます。

f:id:dig_learning:20170301165134p:plain

 

前回書いたように、それぞれの作品は命令に該当するので

命令を順に実行するアルゴリズムを考えるわけですね。

 

この辺は、時間や子どもたちのスキルに合わせて如何様にでもカスタマイズできる面白いところです。

 

AとBは必ず2回以上通ること

とか

一度通った道は使ってはいかない

とか

いろいろ制約をつければ難しくなりますし

 

ここに繰り返しや分岐の構造を加えることで、さらに複雑なものが作れます。

 

今回の参加者からは既に、上級編を希望されているのですが

その辺の対応が簡単にできるのも、このコンテンツの良いところだと思います。

 

そして、実際のアルゴリズムを考えるところでは、TAの皆さんが大活躍でした。

 

私の説明では子どもたちが理解しきれなかったところを補足しながら

初めて出会う子同士のあいだをうまく取り持ちながら、ストーリーを組み立てていきます。

 

進めていくうちに、子どもたちからはどんどん面白いアイデアが出て

とても面白い旅のストーリーができました。

 

何しろ、とことん街を楽しめること!

というのが条件なので、そこは子どもたちの発想に期待してお任せしました。

 

難しそうなプログラミングだからこそ、ロジカルで硬めの話だからこそ

いかにそれを楽しめて、なおかつちゃんと学びになるか?

バランスが難しいのですが、そこはとことん追求したい、譲れないポイントの一つです。

 

 

アルゴリズムができたら、いよいよプログラムを実現(コーディング)して動かします。

 

【イベントのお知らせ】2017年3月5日 子育てとプログラミングを考える座談会

座談会イベントのご案内です。

 

今週末の日曜日に座談会をやります。

子どものプログラミング学習を考えよう

 

NPO法人GEWELさん主催の協働開催です。

 

プログラミング学習ってなんだか流行りだけど
家庭ではどう向き合えば良いのか?
親として何ができるのか?

技術的な話ではなくて
日常の子育ての中で無理なく誰でもできることは何だろう?

そんな話ができたらと考えています。

 

==
【日時】2017年3月5日(日)10:00-12:00(9:45開場・受付)

【会場】港区男女平等参画センター(リーブラ)学習室E
http://www.minatolibra.jp/institution/

【会費】500円(会場費、お茶代)

==

 

子連れ歓迎なので、ご都合のつく方はぜひ♪

 

参加希望の方は、Facebookのイベントページから登録して頂くか

直接ご連絡ください。

 

お会いできることを楽しみにしています!

 

f:id:dig_learning:20170301084333j:image

 

@tanpro-lab