スキップしてメイン コンテンツに移動

投稿

ラベル(教育)が付いた投稿を表示しています

小学3年生の授業参観でアルゴリズムに出会った

小学3年生の娘の日曜授業参観に行ってきた。算数の授業だ。授業の後半、以下のような問題が出された。 問題 : ゴマダラチョウとトノサマバッタがあるゲームをしている。0から9までの数字の書かれたカードがそれぞれ一枚ずつ全部で10枚あって、それを使って3桁の数を2つ作り、その差をできるだけ小さくした方が勝ちとなるゲームだ。ただし百の位は0にできない。できるだけ小さくするにはどのようにカードを選べばよいだろうか。 これを約30人の生徒に考えさせていた。解き方を先に教えるということはしない。生徒が問題を考えている間、先生は生徒たちを見回り、質問などに答える。しばらくするといろいろと答えが挙がってきた。自分の娘は以下のように考えたようだ。 百の位は差が1であればどの数字でも良いので、まず十の位を最小にする数字を考えてみると、最小の数字0から最大の数字9を引いた場合が最も小さくなる。同様に一の位では0と9以外の最小・最大の数字を選ぶ。つまり1から8を引いた場合が最小になる。百の位は残りの数字カードから差が1となるものを選ぶ。解答例は「501-498」や「701-698」となり、差は3になる。 これはまさにアルゴリズムだ。Pythonであれば以下のコードと同じだろう。 digits = range(10) ten = (digits.pop(), digits.pop(0)) one = (digits.pop(), digits.pop(0)) idx = random.randrange(len(digits) - 1) hund = (digits.pop(idx), digits.pop(idx)) a = reduce(lambda x, y: x * 10 + y, map(array, (hund, ten, one))) print "%d - %d = %d" % (a[1], a[0], a[1] - a[0]) 出力例: 601 - 598 = 3 小学3年生の算数だと思ってそれほど期待せずに観に行ったのだが、生徒たちはみな楽しそうに問題に取り組んでいたし、なかなか面白い授業をしているようで何だか安心した。因みに、今回のようなクラス全員で考える問題は普段からよく行っているとのことだった。

Scratchでプログラミングする子供たち

小学2年生の娘に スクラッチアイデアブック を渡したら、あっという間に読み終え、 Scratch を使って自由気ままにいろいろなプログラムを作り始めた。書籍を参考にシューティングゲームを作ったり(砲台は戦闘機の替りに何故か女の子)、耳コピの「かえるのうた」を音の制御で鳴らして口パクで歌う女の子たちのアニメーションを作ったり(表情や髪型、足の微妙な動きなど、芸が細かい)、好きなように想像して、好きなように作っていた。保育園に通う息子は、書籍は読めないけど、Scratchで絵を描いたり、プログラムの部品をいじることはできるので、やはり多様な想像力を働かせて、大人では考えつかないようなスプライトを作り、回転させたり、大きくしたり、音を鳴らせたりして、楽しんでいた。 これはたった一日の出来事だ。子供の吸収力は凄いと感心させられる。以前、「 Scratchで素数を求めてみた 」というブログ記事で、Scratchによるプログラミングが子供の頃に遊んだレゴブロックみたいで楽しいと述べたのだが、その楽しさを表現する能力についてはやはり現役の子供には敵わなかったようだ。それにしても、子供たちが描いた絵が思うさまに動いているのを見ると、自分が子供の頃にもScratchがあったらなぁ、とつくづく思ってしまう。当時、自分で絵を描いたり、ブロックを組み立てたりすることだけでも楽しかったのに、それを好きなように動かせることができたのなら本当にワクワク・ドキドキしたことだったろう。 今回一つ思ったことは、子供たちには最小限のことだけを教えておいて、後は子供たちだけで何とかさせるというスタンスがとても良さそうであるということだ。疑問に思ったことは試行錯誤で解決しようとするし、それでも分からなければ本で調べる。ネットで調べてもいいのだけど、Scratchは日本語のまとまった資料が少ないのでそれが難しい。今後、多くの子供たちにScratchに触れてもらい、たくさんの人たちにScratchを知ってもらいたい。 以下に、参考サイトを挙げておく。 Scratch公式サイト - 想像・プログラム・共有 子どもたちがOSS活動、プログラミング言語「Scratch」が開く未来 非プログラマのためのプログラミング講座 こどもプログラミングサークル‘スクラッチ’ 小学生にプログラミングの楽し...