Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
幼稚園児はプログラミングを習得できるか #TechLunch
Search
Livesense Inc.
PRO
April 21, 2014
Technology
0
91
幼稚園児はプログラミングを習得できるか #TechLunch
幼稚園児はプログラミングを習得できるか
2013/07/10 (水) @ Livesense TechLunch
発表者:久野 友里
Livesense Inc.
PRO
April 21, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
EM候補者向け転職会議説明資料
livesense
PRO
0
5
コロナで失われたノベルティ作成ノウハウを復活させた話
livesense
PRO
0
73
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
350
転職会議でGPT-3を活用した企業口コミ要約機能をリリースした話
livesense
PRO
0
1k
株式会社リブセンス マッハバイト_プレイブック
livesense
PRO
0
400
Tech Award 2021 選出方法
livesense
PRO
0
1k
株式会社リブセンス エンジニアリング組織を支える風土と制度
livesense
PRO
0
520
株式会社リブセンス・マッハバイト 採用候補者様向け資料
livesense
PRO
0
210
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
2k
Other Decks in Technology
See All in Technology
Aurora MySQL v3(MySQL8.0互換)の オンラインDDLの罠挙動を全バージョンで検証した
yutakikai
1
150
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
380
Hands-on / Kaname Frusawa / Cloud Compare Users Meetup 2024 at University of Tokyo on April 17
paraworld
2
470
エンタープライズ環境下での Active Directory の運用 TIPS
tamaiyutaro
1
1.5k
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
3
320
20240416_devopsdaystokyo
kzkmaeda
1
180
AWS パートナー企業でテクニカルサポートに従事して2年経ったので思うところをまとめてみた
kazzpapa3
3
1.3k
インシデントレスポンスのライフサイクルを廻すポイントってなに / Pinpoints of Incidentresponse Lifecycle for Operation
sakaitakeshi
1
300
オーナーシップを持つ領域を明確にする
konifar
11
2.2k
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
8
1.9k
[PlatformCon 24] Platform Orchestrators: The Missing Middle of Internal Developer Platforms?
danielbryantuk
1
180
クラウドサインにおけるプロダクトマネージャーの役割と開発プロセス / 20240410_cloudsign-PdM
bengo4com
1
680
Featured
See All Featured
Gamification - CAS2011
davidbonilla
76
4.6k
Clear Off the Table
cherdarchuk
83
310k
Happy Clients
brianwarren
91
6.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Bootstrapping a Software Product
garrettdimon
PRO
301
110k
A Philosophy of Restraint
colly
196
16k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Producing Creativity
orderedlist
PRO
336
39k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
76
41k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Transcript
幼稚園児は プログラミングを 習得できるか メディア開発グループ 木下 友里
ある日の会話 J( 'ー`)し「月では足跡が消えないんだって」 ('∀`) 「うん、そうだよ。」 ('∀`) 「だって月には空気がないから風もないし、それに水もないもん」 J( 'ー`)し「?!」 …やばい、この子は天才だ
よし、そろそろプログラミングを教 えよう。
幼稚園児にプログラミング?
そもそもプログラミングを始めるために 必要なスキルって何だろう?
プログラミングを始めるために必要な スキル? • キーボード入力 • 全角、半角文字の把握 • 構文理解 • 入力ミスの発見
• 数字の概念 • 負の数の概念 • 比較、計算 • etc...
プログラミングを始めるための障壁が、 幼稚園児にとっては案外大きい
Scratch • http://scratch.mit.edu/ • 子供向けビジュアルプログラミング環境 • キーボード入力がほとんどない • ブロックを組み立てる感覚でプログラミング可能 •
アニメーション作りに必要な音や画像も提供
命令ブロック • 命令の種類ごとに色分け、形分けされている • 目で見てつなげられそうな場所が分かる • 色々な言語に対応しており、日本語はひらがなのみの表示も選択できる
これならできそう!
由来 • MITのミッチェル・レズニック博士作 • レゴマインドストームを作った人 • Smalltalkで記述 • 同じくsmalltalkで記述されたアラン・ケイ博士作のSqueakを参考に開発 •
Computational Thinkingを養うためのもの • 物事を論理的に考えるプロセス、技術のこと • 21世紀中盤には読み、書きと同様にプログラミングも必須のスキルになるという 思想 • http://www.cs.cmu.edu/~CompThink/
特徴 • オブジェクト指向 • クラスの概念がない • メッセージの送信は自分自身またはブロードキャストのみ
• 属性にオブジェクトを持てない • 並列処理が基本 • 停止ボタンは一時停止
クラスの概念がない • もちろん継承なんてない • インスタンスベース • インスタンスの複製は可能
• プログラム動作中、リアルタイムにインスタンス複製ができる • http://scratch.mit.edu/projects/2029742/#editor • プログラム中で動的にインスタンスを作成することができない
メッセージの送信は自分自身 またはブロードキャストのみ • インスタンスを指定してのメッセージ送信ができない • 他のオブジェクトから取得できるデータは基本的に座標のみ •
関数の作成は向かない • 関数を呼び出しているつもりが、メッセージがブロードキャストされてしまうの で思わぬ動作に結びつくことがあり得る
並列処理が基本 • すべてのオブジェクトを制御するmainメソッドのよう なものがない • それぞれのオブジェクトが独立して動作する • 1つのオブジェクト内にスクリプトを複数書くと、そ
のまま並列処理になる • スクリプトとは命令ブロックの1つの塊のこと
停止ボタンは一時停止 • プロジェクトが開かれている間常にプログラムが走っているような状態 • 記述中のスクリプトの動作をすぐに確認できる • プログラム動作中にリアルタイムに編集可能
• 停止ボタンを押しただけでは変数がリセットされない • 停止ボタン押下後もタイマーが動き続けているのが分かる
教科書 • ScratchEdで、様々なレベルに応じたテキストが共有されている • http://scratched.media.mit.edu/ • 今回はこのテキストに沿って教えてみる
• http://scratched.media.mit.edu/resources/bees-‐and-‐bananas-‐game-‐scratch-‐beginners-‐ suitable-‐ages-‐5 • 5歳から!
やってみた
J( 'ー`)し「ねぇねぇひなちゃん」 ('∀`) 「なに?」 J( 'ー`)し「パソコンでゲーム作ってみない?」 ('∀`)
「うん、作る作る!!」 ('∀`) 「段ボールで!!」 J( 'ー`)し「うん、作ろう段ボー…え?!Σ(゜Д゜)」 プログラムとか、手で触れないものを作るという感覚にピンとこないらしい
気を取り直して。
ジャンル分けされたブロックがあって、それを組み合わせることでねこちゃ んが動く、とか説明 J( 'ー`)し「じゃあ、これと同じようにブロックを組み合わせてみてね」 見本の画像を見せる ('∀`) 「分かった」
………… ('∀`) 「できなあああぁぁああぁぁぁぁいいい!!!」 ('∀`) 「ぎゃーーーーーーーーーー!!!!」 ドラッグアンドドロップができなかったらしいorz
• ボタンを押したまま移動する、という動作が難しいらしい • トラックパッドならできた • 左手でボタンを押しながら、右手で移動という動作
マウスポインタについてくる J( 'ー`)し「まずは、ずっとマウスポインタにむけて動くプログラムを書いてみよう ね。」 ('∀`) 「うん」 (真似して作る)
J( 'ー`)し「できたね、じゃあ、緑の旗のボタンをクリックしてごらん」 (クリックする) ('∀`) 「きゃははっなんでこのねこちゃんひなちゃんについてくるの?あははは は!!」 とっても楽しそう!! つかみはばっちりです。プログラミングの楽しさは分かってもらえたはず。
座標の説明 J( 'ー`)し「縦がY座標で、横がX座標で、真中が0だよ」 ('∀`) 「うん」 J( 'ー`)し「X座標は右にいくと大きくなって、左にいくと小さくなるよ」
('∀`) 「うん」 J( 'ー`)し「X座標の右端は240だよ。左端はなんだか分かる?」 ('∀`) 「えーと、-‐240!」 やばいな、この子天才すぎちゃうな…
チート J( 'ー`)し「バナナを取ったら、点数が100点増えるよ。敵に襲われたら点数が 減るようにしようね。何点減らそうか?」 ('∀`) 「減るのやだ!増やす!兆増やす!!」 J( 'ー`)し「…え?!でも、それじゃ、ゲームバランスが…」
('∀`) 「いいの!!あと、ボールも増やすー。それでボールに触ったら兆増や すー」 J( 'ー`)し「工工工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工」 幼稚園児は自分が負けないためにあらゆる汚い手を使う
さすがに兆足してばっかりだと オーバーフローしてどうしようもなくなっ たので 常識的な数字に変えさせました。
そこからわりと自由にいじりだして カオスなゲームが誕生。
夢でうなされる ('∀`) 「ねぇママ、ひなちゃんセーラームーンのゲームが作りたい」 J( ‘ー`)し「そっかぁ!じゃあセーラームーンが宝石を集めるゲームにしよう か」 ('∀`) 「うん!!それがいい!!あはっ!!」
J( 'ー`)し「でも今日はもう寝る時間だからまた明日ね」 ('∀`) 「エェ━━━━━( ゚Å゚;)━━━━━!!?」 ブーイングをなんとかなだめて寝かせましたが。 寝ているはずの娘が突如暴れだす。 ('∀`) 「ちがうの!!ちがうの!!宝石のブロックはそうじゃないの!!!」
セーラームーンのゲームを作ってみて • 結局ほとんど私が作りました • 作りたいもののイメージはあっても、それを形にするための表現力が足り ない • 母親の説明能力に欠陥があるとも言える
• 一つ一つの処理は問いかければ答えられるが、入れるべき処理を一人では 思いつかない • やっぱりチートしようとする • ゲームバランス無視 • 懲りずにオーバーフローさせる
('∀`) 「ひなちゃんのゲームができたよー!」 ('∀`) 「やったー!わーい!!」 J( 'ー`)し「ゲーム作るの面白い?」 ('∀`)
「うんー♪」 J( 'ー`)し「よかったー」 ('∀`) 「次は、段ボールでパソコンのゲーム作ろうね!!」 J( 'ー`)し「…結局それですか(・∀・)」
まとめ • プログラミングを習得したとは言えない • サポートなく1人で作るのは無理 • サンプルを見ながらの作成は可能
• 操作できるし、説明すれば必要なブロックを選択することもできるので、 練習次第で出来るようになるのでは? • 作りたいもののイメージは湧いたらしい • 今後に期待
おまけ • 開発者モード • 左上ロゴ「SCRATCH」の「R」部分をShiftキーを押しながらクリック • ネットワークを介した分散プログラミング機能
• WEDOに対応 • レゴマインドストームの低年齢版 • http://www.mdstorm.com/wedo/index.html