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
110
幼稚園児はプログラミングを習得できるか #TechLunch
幼稚園児はプログラミングを習得できるか
2013/07/10 (水) @ Livesense TechLunch
発表者:久野 友里
Livesense Inc.
PRO
April 21, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
32
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
13
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.4k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
380
26新卒_総合職採用_会社説明資料
livesense
PRO
0
8.7k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
1
27k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
12k
中途セールス職_会社説明資料
livesense
PRO
0
250
EM候補者向け転職会議説明資料
livesense
PRO
0
120
Other Decks in Technology
See All in Technology
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
140
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
110
AIのAIによるAIのための出力評価と改善
chocoyama
2
560
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
3
120
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
150
A2Aのクライアントを自作する
rynsuke
1
170
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
990
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
550
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
170
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
120
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
Delegating the chores of authenticating users to Keycloak
ahus1
0
120
Featured
See All Featured
Building Applications with DynamoDB
mza
95
6.5k
For a Future-Friendly Web
brad_frost
179
9.8k
The World Runs on Bad Software
bkeepers
PRO
69
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Building Adaptive Systems
keathley
43
2.6k
Building an army of robots
kneath
306
45k
Docker and Python
trallard
44
3.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
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