小学2年生のスウちゃん(仮名)は最近、“プログラミング”づいている。
「ロボットごっこ」
1年生の終わりころ、スウちゃんが「ロボットごっこ」をしかけてきた。たとえば「スウちゃん、ちょっと新聞とってきて」と頼んでも、「動かないよ。ロボットに命令してみて。」ってな感じで、新聞一つとってきてもらうのに「前に5歩、左向け。ドアを開けろ。前に8歩……」と延々と指令しなければならない。ゲラゲラ笑ったあと、ロボットと命令者を交代してまたゲラゲラ。
Scratch
これを楽しむということは“プログラミング”に興味を持つかも、と思い、まずはタブレットで楽しめる Scratch Jr. を紹介したら大喜び。が、操作性が今ひとつ(なかなかブロックが思うように移動・接続できない)なのと、単純すぎるのか、ほどなく飽きてしまった。
そこで PC で Scratch を教えてみる。ちょうどその頃(2016年3月末) NHK で「Why!? プログラミング」という番組の放送があり、ますます興味が湧いてきて、かなり真剣に取り組んでいる。
ところが今度は Scratch の自由度の高さが仇となった。キャラクター(コスチューム)を自由に描き変えることができるのだが、そこでお絵かきに夢中になり肝心のプログラムのほうはそっちのけ。まあそれはそれでいいのだけれど。
さらには、なんだか複雑なゲームを構想してしまい、とてもじゃないがすぐに結果が出ないので熱気が冷めてしまった。その前に習得しなければならないものがとてもたくさんある。
ハードウェア IchigoJam
一方で、機会があって「IchigoJam 体験」に参加。スウちゃんは初めてのハンダ付けに挑んだ。案外うまくできるものだ。CPUと数点のパーツだが自分で組み立てて、それでテレビに文字が出るというのは感動するようだ。手で触れることのできる形あるものというも実に大事なことなのだなとあらためて思う。
しかし、いろいろとハードルが高い。コンポジット出力なのでPC用モニターにつなげず、下手をするとテレビにもその端子がなかったりする。家のは大丈夫だったが、いざ始めようとするとテレビの真ん前に本体とキーボードをいちいちセットしなければならないのがちょっと面倒だ。それにそのキーボードの端子も PS/2 だ。これは家にもいくつかあることはあったがどれも US 配列で、日本語JIS配列が前提の IchigoJam BASIC だと、多用するダブルクオーテーションや丸括弧がキートップの印字と異なっていて、スウちゃんはひどく苦労している。しかも黒い画面に表示できるのは白い文字のみ。おっさんホイホイであることは間違いないが、現代の子どもにとって快適な環境とは言えなさそうだ。これを楽しめるようになるには、もうしばらく別のところでの修行が必要だ。
Code.org
Scratch は自由度が高くて的が絞れず、BASIC は何かと障壁が高い上に味気なく、どうしたものかと思っていたところに Code.org にたどり着いた。
- (+) ステージが細かく設定してある。ゴールが設定されているため気が散らない。
- (+) ゲーム感覚でクリアしていくことで、飽きることなく続けることができる。
- (-) 日本語がおかしなところが多い。子ども向けだと翻訳も変えなければならないのだと思わされた。
ゲームっぽいところは良し悪しで、ただそのステージをクリアすることのみが目的となってしまうのがちょっとよくないところ。
スウちゃんは「コース2」から始め、現在はそれを終了しようとしている。「コース3」は日本語訳がされておらず英語のままだ。課題のところはちょっとした文章になっているから自分で理解するのは当分のあいだは無理で隣から教えてやるしかなさそうだが、せめてブロックの単語は英語で覚えてもらうことにしようかなと思っているところ。
ともかく小学2年生である現在のスウちゃんには、これがいちばん受け容れられた。
「ルビィのぼうけん」
そうこうしているあいだに、絵本「ルビィのぼうけん」がちょうど出版された(2016年5月)のでさっそく購入。スウちゃんは主人公が自分と似ているなあととても親近感を覚えて、かなり気に入ったようだ。ワークも、もともと手を動かすのが好きなので特に着せ替えなどは大いに楽しんでいる。
ただ、前に Scratch や Code.org などのビジュアルプログラミング言語を体験してしまっているためか、頭の中だけとか紙と鉛筆だけだけだとなんというか、まどろっこしいような感じらしい。もっと早い時期か、あるいは逆に高学年か中学生くらいになって概念だけを抽象化して捉えられるようになってからのほうが楽しめるのかもしれない。
まとめ
親としてもしっかり事前に構えていたわけではなかったので、いきあたりばったり的に「そういえばこれはどうだろう」と思いついたものに触れさせてみたという感じで、ここまでスウちゃんが実際に体験した順に書いてきた。
いまになって振り返ってみて、ここまでに挙げたものを「小学生が“プログラミング”入門するのに適した順番」に並べ替えてみると、
- 「ルビィのぼうけん」
- Code.org
- Scratch
- ハードウェア (IchigoJam や Arduino?)
になるだろうか。最後の項目に前後してテキスト型プログラミング言語(Python だろうか)が入るかなあ。
「子どものプログラミング」というのは流行のようで、習い事としても人気になりつつあるらしい。ちょっと調べてみただけでもいろいろな教材があって、正直言って驚いた。それでもまだ未成熟という感じもして、もう数年経てばきっと多くの事例がフィードバックされて、より洗練された言語、教材、教授法が出てくるのだろうと思った。
「プログラミングを学ぶ」ではなく「プログラミングで学ぶ」
さて結局のところ、小学校低学年というこの時期だと“プログラミング”といっても、言語はどれかとか具体的なコーディングとかではなく、プログラミングに通じる思考法みたいなもの、つまり
- 論理的に考える
- 手順をこまかく分割
- 類型化してまとめる
- 条件分岐を考える
というようなことを習得する、ということに尽きる。そしてそれは日頃の遊びやお手伝い(たとえば工作、お料理の手伝い……)にすぐに活かされるものだ。
そう考えると将来プログラムを組めるようになる、とかとはまったく無関係に単に「日常生活にとって大事なことを学ぶ」という、何と言うことはない普段の学校や家庭での学びと何も変わらないのだ。
だから、小学生低学年程度の子どもが“プログラミング”に接するというのは、「プログラミングを学ぶ」ではなく「プログラミングで学ぶ」ということ、“プログラミング”そのものが目的ではなく、ひとつの手段・道具に過ぎないのだと思う。