Upgrade to Pro — share decks privately, control downloads, hide ads and more …

幼稚園児はプログラミングを習得できるか #TechLunch

幼稚園児はプログラミングを習得できるか #TechLunch

幼稚園児はプログラミングを習得できるか
2013/07/10 (水) @ Livesense TechLunch
発表者:久野 友里

E60aa4f80303f3f386898546ddb3686a?s=128

Livesense Inc.
PRO

April 21, 2014
Tweet

Transcript

  1. 幼稚園児は
 プログラミングを
 習得できるか メディア開発グループ 木下 友里

  2. ある日の会話 J(  'ー`)し「月では足跡が消えないんだって」 ('∀`)  「うん、そうだよ。」 ('∀`)  「だって月には空気がないから風もないし、それに水もないもん」 J(  'ー`)し「?!」 …やばい、この子は天才だ

    よし、そろそろプログラミングを教 えよう。
  3. 幼稚園児にプログラミング?

  4. そもそもプログラミングを始めるために
 必要なスキルって何だろう?

  5. プログラミングを始めるために必要な スキル? •  キーボード入力 •  全角、半角文字の把握 •  構文理解 •  入力ミスの発見

    •  数字の概念 •  負の数の概念 •  比較、計算 •  etc...
  6. プログラミングを始めるための障壁が、
 幼稚園児にとっては案外大きい

  7. Scratch •  http://scratch.mit.edu/ •  子供向けビジュアルプログラミング環境 •  キーボード入力がほとんどない •  ブロックを組み立てる感覚でプログラミング可能 • 

    アニメーション作りに必要な音や画像も提供
  8. 命令ブロック •  命令の種類ごとに色分け、形分けされている   •  目で見てつなげられそうな場所が分かる   •  色々な言語に対応しており、日本語はひらがなのみの表示も選択できる

  9. これならできそう!

  10. 由来 •  MITのミッチェル・レズニック博士作 •  レゴマインドストームを作った人 •  Smalltalkで記述 •  同じくsmalltalkで記述されたアラン・ケイ博士作のSqueakを参考に開発 • 

    Computational Thinkingを養うためのもの •  物事を論理的に考えるプロセス、技術のこと •  21世紀中盤には読み、書きと同様にプログラミングも必須のスキルになるという 思想 •  http://www.cs.cmu.edu/~CompThink/
  11. 特徴 •  オブジェクト指向   •  クラスの概念がない   •  メッセージの送信は自分自身またはブロードキャストのみ  

    •  属性にオブジェクトを持てない   •  並列処理が基本   •  停止ボタンは一時停止  
  12. クラスの概念がない •  もちろん継承なんてない   •  インスタンスベース   •  インスタンスの複製は可能  

    •  プログラム動作中、リアルタイムにインスタンス複製ができる   •  http://scratch.mit.edu/projects/2029742/#editor   •  プログラム中で動的にインスタンスを作成することができない
  13. メッセージの送信は自分自身   またはブロードキャストのみ •  インスタンスを指定してのメッセージ送信ができない   •  他のオブジェクトから取得できるデータは基本的に座標のみ   • 

    関数の作成は向かない   •  関数を呼び出しているつもりが、メッセージがブロードキャストされてしまうの で思わぬ動作に結びつくことがあり得る
  14. 並列処理が基本 •  すべてのオブジェクトを制御するmainメソッドのよう なものがない   •  それぞれのオブジェクトが独立して動作する   •  1つのオブジェクト内にスクリプトを複数書くと、そ

    のまま並列処理になる   •  スクリプトとは命令ブロックの1つの塊のこと
  15. 停止ボタンは一時停止 •  プロジェクトが開かれている間常にプログラムが走っているような状態   •  記述中のスクリプトの動作をすぐに確認できる   •  プログラム動作中にリアルタイムに編集可能  

    •  停止ボタンを押しただけでは変数がリセットされない   •  停止ボタン押下後もタイマーが動き続けているのが分かる
  16. 教科書 •  ScratchEdで、様々なレベルに応じたテキストが共有されている   •  http://scratched.media.mit.edu/   •  今回はこのテキストに沿って教えてみる  

    •  http://scratched.media.mit.edu/resources/bees-­‐and-­‐bananas-­‐game-­‐scratch-­‐beginners-­‐ suitable-­‐ages-­‐5   •  5歳から!
  17. やってみた

  18. J(  'ー`)し「ねぇねぇひなちゃん」   ('∀`)  「なに?」   J(  'ー`)し「パソコンでゲーム作ってみない?」   ('∀`)

     「うん、作る作る!!」   ('∀`)  「段ボールで!!」   J(  'ー`)し「うん、作ろう段ボー…え?!Σ(゜Д゜)」       プログラムとか、手で触れないものを作るという感覚にピンとこないらしい  
  19. 気を取り直して。

  20. ジャンル分けされたブロックがあって、それを組み合わせることでねこちゃ んが動く、とか説明   J(  'ー`)し「じゃあ、これと同じようにブロックを組み合わせてみてね」   見本の画像を見せる   ('∀`)  「分かった」

      …………   ('∀`)  「できなあああぁぁああぁぁぁぁいいい!!!」   ('∀`)  「ぎゃーーーーーーーーーー!!!!」     ドラッグアンドドロップができなかったらしいorz
  21. •  ボタンを押したまま移動する、という動作が難しいらしい   •  トラックパッドならできた   •  左手でボタンを押しながら、右手で移動という動作

  22. マウスポインタについてくる J(  'ー`)し「まずは、ずっとマウスポインタにむけて動くプログラムを書いてみよう ね。」   ('∀`)  「うん」   (真似して作る)  

    J(  'ー`)し「できたね、じゃあ、緑の旗のボタンをクリックしてごらん」   (クリックする)   ('∀`)  「きゃははっなんでこのねこちゃんひなちゃんについてくるの?あははは は!!」     とっても楽しそう!!   つかみはばっちりです。プログラミングの楽しさは分かってもらえたはず。
  23. 座標の説明 J(  'ー`)し「縦がY座標で、横がX座標で、真中が0だよ」   ('∀`)  「うん」   J(  'ー`)し「X座標は右にいくと大きくなって、左にいくと小さくなるよ」  

    ('∀`)  「うん」   J(  'ー`)し「X座標の右端は240だよ。左端はなんだか分かる?」   ('∀`)  「えーと、-­‐240!」     やばいな、この子天才すぎちゃうな…  
  24. チート J(  'ー`)し「バナナを取ったら、点数が100点増えるよ。敵に襲われたら点数が 減るようにしようね。何点減らそうか?」   ('∀`)  「減るのやだ!増やす!兆増やす!!」   J(  'ー`)し「…え?!でも、それじゃ、ゲームバランスが…」

      ('∀`)  「いいの!!あと、ボールも増やすー。それでボールに触ったら兆増や すー」   J(  'ー`)し「工工工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工」     幼稚園児は自分が負けないためにあらゆる汚い手を使う
  25. さすがに兆足してばっかりだと   オーバーフローしてどうしようもなくなっ たので   常識的な数字に変えさせました。

  26. そこからわりと自由にいじりだして   カオスなゲームが誕生。

  27. 夢でうなされる ('∀`)  「ねぇママ、ひなちゃんセーラームーンのゲームが作りたい」   J(  ‘ー`)し「そっかぁ!じゃあセーラームーンが宝石を集めるゲームにしよう か」   ('∀`)  「うん!!それがいい!!あはっ!!」

      J(  'ー`)し「でも今日はもう寝る時間だからまた明日ね」   ('∀`)  「エェ━━━━━(  ゚Å゚;)━━━━━!!?」   ブーイングをなんとかなだめて寝かせましたが。 寝ているはずの娘が突如暴れだす。   ('∀`)  「ちがうの!!ちがうの!!宝石のブロックはそうじゃないの!!!」  
  28. セーラームーンのゲームを作ってみて •  結局ほとんど私が作りました   •  作りたいもののイメージはあっても、それを形にするための表現力が足り ない   •  母親の説明能力に欠陥があるとも言える

      •  一つ一つの処理は問いかければ答えられるが、入れるべき処理を一人では 思いつかない   •  やっぱりチートしようとする   •  ゲームバランス無視   •  懲りずにオーバーフローさせる  
  29. ('∀`)  「ひなちゃんのゲームができたよー!」   ('∀`)  「やったー!わーい!!」   J(  'ー`)し「ゲーム作るの面白い?」   ('∀`)

     「うんー♪」   J(  'ー`)し「よかったー」   ('∀`)  「次は、段ボールでパソコンのゲーム作ろうね!!」   J(  'ー`)し「…結局それですか(・∀・)」
  30. まとめ •  プログラミングを習得したとは言えない   •  サポートなく1人で作るのは無理   •  サンプルを見ながらの作成は可能  

    •  操作できるし、説明すれば必要なブロックを選択することもできるので、 練習次第で出来るようになるのでは?   •  作りたいもののイメージは湧いたらしい   •  今後に期待  
  31. おまけ   •  開発者モード   •  左上ロゴ「SCRATCH」の「R」部分をShiftキーを押しながらクリック   •  ネットワークを介した分散プログラミング機能

      •  WEDOに対応   •  レゴマインドストームの低年齢版   •  http://www.mdstorm.com/wedo/index.html