最近,立て続けに小学校の授業に呼ばれてビスケットを教えることがあったので,ビスケットの教え方について少し書いてみたいと思います.
まず「ビスケットの教え方に失敗する」ということはどういうことでしょうか.これまで自分で教えたり,他の人が教えるのを見てきて,根本的な失敗ということはありません.ビスケットは基本的に知らなければならないことが非常に少ないですから,その最低線の部分は誰でもクリアしています.ところが,少し内容を欲張ると,とたんに理解度が下がったりします.
難しさのレベルを説明すると.
1)絵を描いて動かす.
2)絵が動く方向・速度を自由にコントロールできる.
3)絵を回転させることができる.
4)回転の半径・速度を自由にコントロールできる.
5)2コマのアニメーションができる.
6)2コマのアニメーションの微妙な動きを自由にコントロールできる.
こんな感じになります.ここまでがビスケットの基本的な部分で,30分くらいあれば小3以上なら教えることができます.ただし,彼らがこれらを完璧に理解しているかというと,疑問です.1)3)5)は出来たか出来ないかがわかりやすいので,比較的クリアできています.2)4)6)の「自由にコントロールできる」は,ちょっと難しい.1)3)5)を教えるのに失敗することはほとんどありませんが,2)4)6)は成功したのか失敗したのかよくわからない.
この難しさというのは,出来た動きが,本人が意図したものなのか,偶然出来たものなのか,その違いが外部からみて区別しにくい点にあります.たぶん,ビスケットならではの難しさなんでしょう.scratchなどの他のプログラミング言語では偶然にできるということはほとんど無いと思います.
たとえば2)の動く方向ですが,

この左側の星の場合は,どの向きに進んでも変ではありません.それに対して,右側の星には動きの線が入ってますから,これは左下に向かって動かないと変です.2)が理解できているかどうかは動く方向が決まっているような絵を描かなければ分からないのです.
4)の場合は中心がズレないように回転している絵とか,6)の場合は尺取り虫や人が歩いている絵を使います.
ここで授業とワークショップの違いが現れます.
ワークショップでは理解のゴールを明確には決めません.むしろあまり教えないで,自分たちで発見したり,発見したものを教えてあげたり教えてもらったり,そういった活動の方を重視します.知識を一方的に教える教師としての役割は少ないですが,完全に放っておいて上手く回るわけでもありませんから,ここの2)4)6)を理解した人が増えるような雰囲気作りが必要です.たとえば,そういう工夫ができた作品をみんなの前で褒める,といったことです.ジワジワと教えて行くという感じですか.
授業の場合は,それぞれのステップに分けて,適切な絵を例題にして教えれば,教えられます.多くの人たちにとってこの教えかたの方がなじみがあり,教わっているという感じがあるので,受けが良いかもしれません.ワークショップと比べて,楽しさは減りますが,確実に多くの人が理解でき,最終的に時間の短縮になります.
この次にゲームなどのより繊細な作品を作る際には,この2)4)6)ができるかできないかで,作品の完成度がまったく違ってきます.
まず「ビスケットの教え方に失敗する」ということはどういうことでしょうか.これまで自分で教えたり,他の人が教えるのを見てきて,根本的な失敗ということはありません.ビスケットは基本的に知らなければならないことが非常に少ないですから,その最低線の部分は誰でもクリアしています.ところが,少し内容を欲張ると,とたんに理解度が下がったりします.
難しさのレベルを説明すると.
1)絵を描いて動かす.
2)絵が動く方向・速度を自由にコントロールできる.
3)絵を回転させることができる.
4)回転の半径・速度を自由にコントロールできる.
5)2コマのアニメーションができる.
6)2コマのアニメーションの微妙な動きを自由にコントロールできる.
こんな感じになります.ここまでがビスケットの基本的な部分で,30分くらいあれば小3以上なら教えることができます.ただし,彼らがこれらを完璧に理解しているかというと,疑問です.1)3)5)は出来たか出来ないかがわかりやすいので,比較的クリアできています.2)4)6)の「自由にコントロールできる」は,ちょっと難しい.1)3)5)を教えるのに失敗することはほとんどありませんが,2)4)6)は成功したのか失敗したのかよくわからない.
この難しさというのは,出来た動きが,本人が意図したものなのか,偶然出来たものなのか,その違いが外部からみて区別しにくい点にあります.たぶん,ビスケットならではの難しさなんでしょう.scratchなどの他のプログラミング言語では偶然にできるということはほとんど無いと思います.
たとえば2)の動く方向ですが,

この左側の星の場合は,どの向きに進んでも変ではありません.それに対して,右側の星には動きの線が入ってますから,これは左下に向かって動かないと変です.2)が理解できているかどうかは動く方向が決まっているような絵を描かなければ分からないのです.
4)の場合は中心がズレないように回転している絵とか,6)の場合は尺取り虫や人が歩いている絵を使います.
ここで授業とワークショップの違いが現れます.
ワークショップでは理解のゴールを明確には決めません.むしろあまり教えないで,自分たちで発見したり,発見したものを教えてあげたり教えてもらったり,そういった活動の方を重視します.知識を一方的に教える教師としての役割は少ないですが,完全に放っておいて上手く回るわけでもありませんから,ここの2)4)6)を理解した人が増えるような雰囲気作りが必要です.たとえば,そういう工夫ができた作品をみんなの前で褒める,といったことです.ジワジワと教えて行くという感じですか.
授業の場合は,それぞれのステップに分けて,適切な絵を例題にして教えれば,教えられます.多くの人たちにとってこの教えかたの方がなじみがあり,教わっているという感じがあるので,受けが良いかもしれません.ワークショップと比べて,楽しさは減りますが,確実に多くの人が理解でき,最終的に時間の短縮になります.
この次にゲームなどのより繊細な作品を作る際には,この2)4)6)ができるかできないかで,作品の完成度がまったく違ってきます.
スクラッチに負けないように、ビスケットの普及、頑張ってください!!
ビスケットは本当に、子供が作りたいと思ったものを直感にまかせてプログラムを組める、よい言語だと思いますよ。
こういうのが出来るかも? と思って試してみて、うまく行ったり、思いもよらないことが起きたりするのは、子供にとってもよい刺激になると思います。
それから、実際に見たわけではありませんが、ブログを拝見する限りは、原田さんのおしえ方は間違っていないと思います。
僕もビスケットを原田さんに教えてもらいたいな♪
意図したか意図していないかの問題は、僕もすこし気になってはいましたが。以前"ぷよぷよ"の例えに出したときは思っていたのですけど。
そんなにムチャをしない限りは、再現が可能なことを発見しているのだと思います。
ビスケットでの発見は、物理学での発見に似ていることだと思います。そこでは、研究者が予期しなかったものだって受け入れらますよね。(物理学ではなぜそうなるかを追求するかもしれませんが)
ビスケットであれば、自分の発見した法則を、友達の世界で再現させることが出来るでしょう。
それならば、しっかりと理解していると考えてもよいと思います。
ぷよぷよをぐちゃぐちゃに積み上げて、たった一度の奇跡を起こしたわけではありませんからね。
またもしも、原田さんの絵を書いてくれる子がいたとして、この子は、本当にこんな絵が書きたかったんだろうか? この絵はこの子が意図したものなのだろうか? と愚推するようなことなきように……。
原田さんの心配は、このようなことかな? と思います。
動作や、原則の基本的なことを教えて、それを工夫して何かを作ってもらうというやり方は大正解だと思います。うまく伝えられないこともあるでしょうが、原田さんの気持ちは、きっと伝わっていますよ。
実際に授業中にプログラムらしきものが作れなかった子にとっても。その子はもしかしたら、おもいもよらない考察をしていたかもしれませんよ。
例えば、ひとつの魚に同じ動作を何度か与えれば、何度か目には、もとの位置に戻ってくる。とか。
ある動作を与えたあとに、まったく逆の動作を与えると、もとに位置に戻ってくるとかも。
はたからみたら、何をやってるのかな? 何も作れなかったのかな? ってなることでも、その子にとっては、すごく貴重な体験になっていると思いませんか?
難しいとは思いますけど、そういう子を見つけても、がっかりせずに、褒めてあげて欲しいです。
それから、自分の教え方が悪かったなんてことは思うべきではありませんね。
本当にビスケットは奇跡の教材だと思います。
ありがちなのは、誰も作りたいと思わない、三目並べを作ってみましょう。
というプログラミング言語の教え方だったりです。
まず第三、第四の弊害として思い浮かぶのは、言われた通りにする人は"デキる子"になり、自分で考えてしまうタイプの子は"できない子"になってしまいます。
ここでは、余計なことをしなかった子だけが褒められます。
飼い主が犬の頭をなでるときのように、犬がなにもしなかったから「いい子だね」といわれているのを見るのが嫌だからです。
僕はそのようなことでいい気になっている犬を見るのも嫌でたまらないのです。
授業の初めにビスケットを終了して、もう一度自分で起動できるかな? と思って試しちゃう子は問題児扱いでしょう。
先生が「お前は馬鹿。落ち着きがない。人のいうことが聞けない」と罵る姿を用意に想像できますが
「どうしたかったの? 先生知りたいな。」
「最初からできるか試してみたかったんだね。こうすればできるよ~。」と優しく声をかける姿を想像できません。
まぁ、こんな弊害というのは大したことがないのですけどね。
どうして三目並べを作らせることが無意味かというのは。
そこから何も発展しないからですね。
三目並べ自体が完結していますから、もっとこうしてみようという欲望すら生まれません。
せいぜい、並べても、勝ちにならないようにしてみよう・・・という発想が生まれるぐらいでしょうね。
こんな小者を育てて、どうしようというのでしょうか。
また上記が第一の弊害だとすると、残された第二の弊害は僕が思うに。
ゲームを作らせることが、教え手に、学び手の気持ちを考えているという気にさせているところですね。
この馬鹿を生み出すスパイラルは止まりません。
この第一と第二の弊害は、スクラッチに当てはまるんですけどね。
たった一日でプログラミングのプの字も知らなかった子どもたちが、三目並べを作れるようになった!!
プログラムの面白さが伝わった!!
いやいやいや。言われたままに文字を打ち込んでただけなのでは?
これこそ、本当に理解しているかどうか分かりませんよね。
(だけど、手元に動いている三目並べがあるのを見て、ちゃんと伝えられた! と思っちゃうでしょうけどね。)
できててもできていなくても、本当にわかってもらえたのかな? と思えることは素晴らしいことだと思います。
だけど、考えすぎることでもないですよ!!
ビスケットは、自分が作ったプログラムを、もっとよいものにしようと試行錯誤して、次々に新しく学んだ技術を取り入れることができますからね。
いろいろ実験してみて、これは使えるとか、これはやめた―とか。
それってすごくいいことですよ。
原田さんの熱い思いが形になっていると思います。
原田さんも、ビスケットをもっともっといいものにしたいと思う気持ちがあるのでしょう。
プログラミングプログラミングと言っていますが。
ビスケットは総合的に学力を手に入れたり、論理的に考える力を手に入れる、同時に想像力を豊かにすること。
には役に立っていると思いますが。プログラミングの学習なのか? という事はあるかもしれません。
もしかしたら、原田さんが、子どもたちに伝えきれていないかもしれないという疑念は、そこにもあるのかもしれませんね。
僕自身は、これが古い考えかどうかは分かりませんが、プログラムは人間の仕事を減らすものだと思っているんですね。(ほんとうにつまらない人間なのかもしれませんが)
スクラッチは人間の仕事を増やすだけのプログラミング言語です。そこで僕なんかは、プログラミング言語のために人が働いてるじゃん。と思わざるを得ませんでした。
原田さんのサイトを初めて訪れた時もそうでした。ですが、すぐに、ただのヴィジュアルプログラミング言語とは一線を画した輝きのようなものを感じましたので、考えは改まりました。
ただ原田さんは、ひょっとしたら、プログラムらしさというものも、わずかながら伝えたいのかな? と今日思いました。というか、真の目的はもともとそこにあったのかなとも。
そして、考えてみますと、原田さんはビスケットの中に数字という概念をいつも残していますし。
ブログでビスケットと共に取り上げることは、数字のことです。
そこで、ビスケットを通して数的な何かかが伝われば、嬉しいのではないかと思いました。
ビスケットがプログラミング言語であることを忘れてしまうことを、密かに危惧していたりするかもしれません。
原田さんはコンピュータというのは、基本的には計算機であって……、というような思いがあるかもしれません。
勝手な僕の推測ですけどね。
「プログラムは人間の仕事を減らすもの!」という極論はさておいて。
「「1秒進んで(1進んで) 90度回転する」 *4 (これを4回) 」
というようなことを学んで欲しいのかな? 難しすぎるかな?
真にプログラムを愛するものにとっては、このコードに心を打たれるものがありますが(うぬぼれすぎ?)
何がすごいのか、なかなか理解できないかもしれません。
そもそも、「1」と「進む」と「90」と「回転する」が基本的な単位で、それを組み合わせたものを 4回する ってことが理解できないと。(まず教師に、そして生徒が)
なんで一気に書いちゃわないの? ってことになるだけ。
不便なものだとしか思えないでしょう。(「めんどくさいという皆さんの気持ちもわかりますが、まずは書いてみてください」こんなことをいう教師が出てきたら末期)
これを理論的に説明して、子どもたちを納得させられなければ、プログラミングの教育は無理ですね。
「それはね。monoid だからだよ?」 なんて言っても説明にならないわけです。
自分がうまく説明できないのを棚に上げて「この子は屁理屈ばかりいうからプログラミングの評価は 1 」ということになりかねない。
子供の頃、学校で犬だった奴が、将来の学校を作るので、このデフレは止まらないんだけどね。
だからプログラミングの教育は無理でしょう。
ビスケットを使って、世の中にはいろんな世界があって、その一つを原田さんは見せられると思いますが。
多くの人が、ビスケットによってプログラミングの何かを感じ取ることは期待できないかもしれません。気にすることは無いですけどね。
だけどプログラミングよりも大切なことは伝わると思います!!
いつも,コメントありがとうございます.
僕も古い意味の「プログラミング教育」は嫌いでした.機能の学習ばかりで,プログラミングとはこういうもの,という直感が伝わらない.
で,こういうのを押し進めると,プログラミングが嫌いな人が出てくるのではないかと思って,非常に困っています.こんな楽しいものを誰一人嫌いになって欲しくない.だから,嫌いになりそうな要素を次々削って行ったのです.