今日は、うちの大学で、小中学生向けのプログラミング教室が開かれました。小学生が16人来ました。
参考: 津田塾大学 小中学生プログラミング講座
私もそこに、授業の一環として参加させて頂きました。阿部先生の『小中高生におけるプログラミング教育』という授業です。
そこでは子どもたちに Scratch を使い楽しくプログラミングを体験してもらいました!(((o(*゚▽゚*)o)))皆とっても楽しそうでした!
このScratchというのは、私は去年初めて知ったのですが、とても面白いのです!
私もまだプログラミングはよく分からないのですが、このド素人でも「楽しく」「何かが作れる」のです!
この記事の目次
- ツイート
- 当日の先生のツイート
- 当日の私のツイート
- 当日の時間割
- 目的
- やったこと
- 変数について説明
- 素数について説明
- 素数判定スクリプト
- 点数制を実装
- 休み時間〜発表の時間
- 発表の時間
- 終わった後
- 反省
- まとめ
当日の時間割
2014.01.11(土)
13:30~14:20
- 挨拶
- 班分け(3~4人/班)
- Scratchの基本(阿部先生が実施)
(休憩)
14:30~15:50
- 各班ごと各自の内容を実施 (うちは素数について学ばせました)
- 前半(阿部先生のチュートリアル)で作ったゲームに、「ポイント」を付けることにより「変数」について学ばせる
- 素数について解説
- エラトステネスの篩について解説
- スクリプトを組ませる(説明しながら)
- そのスクリプトにちょっと付け足してゲームにする。(入力した数字が素数だったらその数ぶんのポイントが入るゲーム)が入るゲーム)
(休憩)
16:00~16:30
- 各班の発表
- ふりかえりと挨拶
16:30~17:30 片付け
当日の先生のツイート
津田塾大学 小中学生プログラミング講座終了。 https://t.co/6SHVjnRLWw 16人の小中学生が楽しんで帰っていきました。今回のチャレンジは学生の皆さんにカリキュラム作成と実施を任せたこと。結果として大成功でした。 pic.twitter.com/IU1sI2s38e
— Kazuhiro Abe (@abee2) 2014, 1月 11
* ちなみにこの先生のポストした写真には私は写っていません。(ラッキー)
たとえば、これを見ると https://t.co/D5Mc6oR75y 小学生に素数は難しすぎるというのは大人の思い込みと分かります。 https://t.co/HXRlWuuHIb https://t.co/y0tFRuNknD 「学ぶことを学ぶ」ことができたということです。
— Kazuhiro Abe (@abee2) 2014, 1月 11
当日の私のツイート
プログラミング教室終わりました!(((o(*゚▽゚*)o)))
— ちょまど (@chomado) 2014, 1月 11
素数とその判定方法について(小学生たち相手に)説明するとき、職業病というか、ホワイトボードとペンがあったのでつい完全に塾講師になってしまいました
— ちょまど (@chomado) 2014, 1月 11
あ、今日は小学生たちに素数判定スクリプトを書かせました。でも本当に最初だから、私が教えたやつは、とてもシンプルで、計算力も膨大なやつです。
— ちょまど (@chomado) 2014, 1月 11
男の子たちは大きな素数を発見するたびに「おおおお!!これは!素数だァー!」「5ケタのを発見した!」って叫んでたから本当に将来有望である(嬉しい)
— ちょまど (@chomado) 2014, 1月 11
後の生徒たちのアンケートの「次に作りたいもの」の欄に「円周率計算機」と書いてあったので多分私の熱意は伝わった!(算数嫌いで社会が好きって言ってた子だった)
— ちょまど (@chomado) 2014, 1月 11
その子たちは、教室が終わった後も粘ってずっとPCの前に座り、自分の作った素数判定スクリプトを使って大きな素数を探し続けていた
— ちょまど (@chomado) 2014, 1月 11
目的
うちの班(講師2人生徒4人)のゴールは、
「子どもたちに素数判定のスクリプトを組ませる」
でした。
プログラミングなんて一度も触れたことがないという、小学生4人を相手にしました。
やったこと
1. 変数について説明
当日、私の班は、私合わせて2人しか来られませんでした…。(寂)(他3人は就活などで欠席)
なので、私が講師係、もう一人が子どもたちの見回り(補佐/キーボード慣れない子の指導など)係、として稼働しました。
ホワイトボードがあったので、まず、私が変数の使い方について説明しました。
塾講師のアルバイトを長年やっているので、ついペンを持つと授業のような感じになってしまいました。(職業病…)
前半に先生のScratchチュートリアルで作ったゲームに、ポイントという制度をつけることにしました。
予定では無かったことですが、ちょうど変数の使い方について説明するのに調度良かったと思ったからです。子どもたちは楽しそうでした! ポイントのついたゲームで楽しそうに遊んでいました。
2. 素数について説明
その次に、素数について説明しました。
ここで一番苦戦すると思ったのですが、意外にも、生徒たちは素数について知っていました。どうやら学校で習ったようです。
でも一応確認テストとして、100マス書かれた紙を渡して、「20までの素数に丸をつけて」と指示しました。大丈夫かと心配したのですが、やっぱ普通に大丈夫でした。みんな優秀でした。素数の教え方については前夜にツイッターで色んな人に聞いたりしてめっちゃ考えておいた(料理に例えるとか原子と分子に例えるとか)んですけどね…。
そこでエラトステネスの篩についても(5分間ほどかけて)紹介しました。
そして、Scratchの画面に戻ります。
3. 素数判定スクリプト
本当はさっき教えたエラトステネスのアルゴリズムで作るのが一番いいのですが、
最初なので、一番簡単な考え方で実装させました。めっちゃ計算量多いけど、シンプルで分かりやすいやつ。
実装させたアルゴリズム
Nが素数かどうか判定する時、Nを1〜Nまでの全ての数で割っていき、割り切れた回数をカウントアップします。(つまりN回ループ)もし割り切れた数が2回だったら、Nは素数です。
なので、変数は「割る数」と「割り切れた回数」の2つを用意。
4. 点数制を実装
ここまで子どもたちがちゃんと理解しているかチェックするため && 子どもたちはゲームが好きなので楽しませるために、
「もし入力された数が素数だったら、その数ぶんの数字が点数として加算されるようにしましょう」
と提起しました。
本当はノーヒントでやらせるつもりだったのですが、さすがに難しそうだったので、ヒントとして
このブロックだけ教えました。このブロックを使うよ、と。(これをどこに挿入するかは教えてない)
さらに、ループ処理(「10回繰り返す」)も適切な位置に入れて、終わりました。
それで、ついにタイムアップです。終わりました。
あとは、休み時間を挟んで、発表の時間になります。
5. 休み時間〜発表の時間
休み時間を挟み、グループに戻ってみたら、
子供たちの作品は、背景が変わっていたり、スプライトが猫から別のものに変わっていたり、少し改変されていました。スクリプト自体は変化していなかったのですが、嬉しかったです。
でももっと嬉しかったのは、休み時間のあいだ、男の子たちがずっとその自分たちの作った素数判定スクリプトで遊んでいたことです。とても楽しそうに「大きな素数を見つけた!」と遊んでいました。すばらしい!! 大きな素数を発見して興奮している!! すばらしい!!
男の子「11117。これ、俺が見付けた素数。(渾身のドヤ顔)」
マジで将来有望です本当に
— ちょまど (@chomado) 2014, 1月 11
さらに。
この簡単なアルゴリズム( https://t.co/chkqETpqtJ )で、変数は「割る数」と「割り切れた回数」の2つを用意したのですが、
ある生徒は、その計算中(演算中)に
「この『割り切れた回数』がもう3を超えた時点でこの数は素数ではないからこれ以上の計算は無駄」
と(続
— ちょまど (@chomado) 2014, 1月 11
あと、今日は1月11日なので、コンビニで買ってきたポッキーを配りました!
6. 発表の時間
すべての班が制作物を順々に発表していきます。
正直言って、鬱でした。
この時 他の班の成果物を初めて見たのですが、他の班はみんな「ゲーム」を作っていました。レーシングゲームとかタイピングゲームとか…。本当に「ゲーム」でした。
それらに対して、うちはただ数を言ってそれが素数かどうか返してくるだけのものです…点数制は付けたけどでも結局ただの素数判定です。(私個人は素数判定が大好きでいかに計算量を減らすかなど考えるのが好きなのですが…) 明らかに小学生ウケの期待できるものではない、と、この時他のグループの内容を見て初めて客観的になれたのです。とにかく憂鬱になりました。
「そうか…こういうものが求められていたのか…」と、次々に出てくる『ゲーム』を見ながら痛感しました。今の今まで素数判定の小学生ウケなんて考えたことなかったです…自分が楽しかったから…本当にこの時初めて客観的になれたのです…。
例えるなら、きらびやかなドレスコードのあるパーティーにジャージで乗り込んだ時のような気分です。
そしてついにうちの班の番になりました。
子どもたちが大勢の前に立ちます。(私達講師は端っこに捌けて、隠れるように座りました。主役は子どもたちですから。) スクリーンに彼らの作品が大きく映しだされます。(保護者の方々含め)40人ほどの視線を前に、彼らは一様に緊張した表情を浮かべていました。
子どもたちが戸惑っていたので、私が一言だけ「どんなものを作ったんだっけ?」とだけ声をかけると、彼らは堂々と話し始めました。「ぼくたちは素数判定のスクリプトを作りました。緑の旗を押すと数を入力するように言われるので…」
その彼らの横顔を見ていて、私は大きな達成感で満たされました。彼らはちゃんと理解していた。私だけが突っ走っていたわけではない、と。
最後に先生に「楽しかったですか?」と聞かれ、子どもたちはそれぞれ「はい、楽しかったです」と即答していました。
7. 終わった後
その子たちは、教室が終わった後も粘ってずっとPCの前に座り、自分の作った素数判定スクリプトを使って大きな素数を探し続けていた
— ちょまど (@chomado) 2014, 1月 11
このTwitterで書いたとおり、本当にずっとPCに張り付いて彼らはあらゆる数を試して素数を探し続けていました。
この子たちのお母様が私の肩を叩き、USBメモリを差し出して
「家でもやりたいので、この子たちのデータをこの中に入れていただけませんか?」
と。もちろん快諾しました!
さらに。
回収した、アンケートには。
後の生徒たちのアンケートの「次に作りたいもの」の欄に「円周率計算機」と書いてあったので多分私の熱意は伝わった!(算数嫌いで社会が好きって言ってた子だった)
— ちょまど (@chomado) 2014, 1月 11
他のグループの子たちはみんなゲームって書いているのに!!
今日で一番感動しました!!!
反省
1.教えすぎました。
もっと子どもたち自身に考えさせるべきだった。過干渉だった、というか、「ここはこうなるから〜」と、しゃべりすぎた。もっと彼ら自身に任せるべきだった。ひとりで突っ走ってしまった。
2.テーマの選択ミス
私は素数が大好きだ!!!!!!!!!!!!!!!!!!! でもちょっと他のグループとくらべて浮いていたというかもっと楽しいやつにすればよかったかも。まあ彼らはとても楽しんでくれたみたいだから私はラッキーだったかも。
3.準備不足
- もっとスマートに説明できたらよかった。予行練習をしておくべきだった。
- もっと「素数がどんなところに利用されているか」ということに対し(RSA暗号について説明できるレベルまで)学んでおくべきだった。
4.完全に緊張してあがってしまっていた。
ちょうど保護者席のすぐとなりで、私の説明を、子どもたちだけでなく保護者の方々もジッと見ていて、完全にあがってしまった。顔とか真っ赤だった。ほっぺた触ったらめっちゃ熱かったし。
まとめ
楽しかったです! やはり子どもたちは可愛いです!
[…] @phasetr この記事(日記)に詳しく書きました! http://chomado.ciao.jp/blog/programming/scratch20140111/ @chomado ありがとうございます。滅茶苦茶参考にします @phasetr […]
[…] @phasetr この記事(日記)に詳しく書きました! http://chomado.ciao.jp/blog/programming/scratch20140111/ @chomado ありがとうございます。滅茶苦茶参考にします @phasetr […]