次世代のIT育成支援
川崎修平(DeNAフェロー)
「プログラミング学習教材のコンセプトとそれに込めた想い」会見
※2014年6月に会見を実施
私の方からは、今回まだこの教材は企画段階でまだ実際お見せできるものはまだできてないのですけれども、そのコンセプトと概要について説明させていただきます。
僕がこの話を聞いたのは南場から聞いたのが最初だったのですが、武雄市の小学校1年生を対象に、しかも全員がタブレットを持っているっていう学校に対してプログラミング教育をやりたいんだけど、やってくれないか、と話しを受けたんです。ほんとにおもしろいと思って、ぜひ僕が自分でやりたいです、という形で、今ここに立たせていただいてます。
すごくおもしろい、おもしろいって言うと語弊がありますね。重要だなと思うのが、まず小学1年生っていうところです。最近けっこうプログラミング学習だとかプログラミング教材など、子ども向けのものが出てきてるんですが、だいたいのものが対象年齢が小学校3年生以上なんです。
その理由としては、論理的な考え方ができるとか、算数の基礎とか、先生の説明が理解できるとかがあって、僕もプログラミング技術そのものを教えるためには小学3年生くらいが効率がいいと思います。
ですが、プログラミングの考え方っていうのはそれ自体が思考の道具としてとても重要だと思っているので、原体験が形成されていく早い段階でぜひとも身に着けておいてもらいたいと思っています。しかもそんなに難しいプログラミングを覚えてもらう必要はなくて、情報技術っていうものがどういうふうに使えるのかを体感的に覚えてもらうことが大事で、そういう意味で1年生向けっていうのがほんとに新しい取り組みとしてやりがいがあると感じました。
で、もう一点が全員ってとこです。最近ではプログラミング講座とかセミナーで小学生にゲーム作りを教えたりとかというような取り組みも増えてきて、それはそれですごいいいことだと思うのですが、やっぱりITリテラシー高い人だけじゃなくて、ごく普通の小学生、ぜんぜんわかんない人もいればすごく理解力の高い人もいて、そういう子たち全員に対して思考の道具として最低限の考え方っていうところでのプログラミングのエッセンスっていうのを持たせてあげたいと。だからエキスパートをつくるためのカリキュラムじゃなくて、全員のための、全員のこれからの人生の道具としてプログラミングというものを使えるようにするというところが非常に意義のある活動だと思いました。
思考と創造の道具としての
「プログラミング」
今回の教材づくりをずっと考えていたのですが、その中で自分がどうやってプログラミングを覚えてきたのかを思い出してみたんです。そうすると僕今38歳で、ちょうどファミリーコンピュータが出たのが小学校の2年生のころだったんですね。で、プログラミングをはじめたのがその2年後で、たまたまこのファミリーベーシックっていう、任天堂のファミコンにつないでゲームがつくれるパソコンのようなものがあったんですが、父親がそれを買ってきました。最初は父といっしょにこの紙を見ながらプログラムを打ち込んでいって「わ、動いた」と。そのプログラムを見ながらここをちょっと数字を変えたらどうなるんだろう、すごい速く動くようになったとか、ここを組み替えてみたら敵にぶつかっても死ななくなった、とか。
そういういろいろなものがどう動いているのを見てプログラムをいじることの「おもしろさ」を覚えて、考えたものをあれこれつくりたいと思って調べていくうちに、「学び」というより、なんだか自然に、勝手にプログラミングの技術とかの知識が身についていったなというのが今振り返って感じるところです。
ここでとても重要だと思うのが、こういうもの(プログラミング)が使えるっていうのが頭のなかに前提としてあると、普段からモノを見た時に、この動きをゲームにしたらおもしろいんじゃないかとか、あと実際のものをみて、これをもっと便利にするためには、プログラムをこういうふうに使ったらできるんじゃないかとか、普段、発想する場面で使える選択肢がすごい増えるんです。そういう考え方はできるだけ若いうちから持ってもらいたく、僕の場合4年生からでしたけど、実際には同じようなことって1年生からでも可能だと思ってます。できるだけ早い段階からやってもらいたいっていうのが僕の想いです。
3つの「身につけてもらいたいこと」
全体の目的なんですが、「子どもたちに身につけてほしいこと」、これはオバマさんの言葉にもありますが、アプリやゲームはダウンロードしたり買ったりするだけじゃなく、自分で創ることができるものなんだという意識でこれから触れるものに対して接することができるようになること。
2点目が、プログラミングを知ることで、普段いろいろ考えるときに、より豊かな発想ができるような道具として身につけてもらいたい、ということです。
3つ目が、これかなり大事なんですけど、それを楽しいことだと思ってもらうことです。
そういう道具をどんどん身につけていろんなことが考えられるようになっていくのが、ほんとに楽しいことで、だからどんどん学んでいきたいと1年生、2年生の段階で感じてもらいたい。このあと本格的なプログラミングを学ぶときに、やらされてる感じじゃなくって、どんどん自分が考えて、もっとすごいものにするワザを学べるんだって自発的に取り組めるような姿勢になることがすごい大事な点だと考えています。
これは新しい取り組みなのでどこまで達成できるかまだわかりませんが、教材の基本的な方針としてこういったものを目指しています。
でさらにもう一声、先の話をしますと、プログラミングの授業というのは、ぼくもやっぱりプログラミングはみんなにできてほしいと思うんですけれども、なにも全員がプログラミングのスペシャリストになる必要はないと思ってるんです。
やっぱり人間っていろいろ個性や得意分野がありますから、僕は割りと周りの人が喜んでくれるものを考えるのが楽しくてしょうがないタイプなんですけども、ある人はプログラミングが好きで世界的なスペシャリストを目指していくかもしれないですし、ある人は絵が得意だったり、音楽が得意だったり、料理をつくるのが得意だったり、もしかしたら友達をつくるのが得意だったりとか全然違う得意分野を持っている人がプログラミングというか、情報技術をどう使えるのかを体感的に知っていることで、今まで出てこなかったようなアイデアだったり作品だったりが出てくるようになる。
というのが僕としては理想的な姿で、そうなると国際的に見ても、技術的とか英語力とか、海外とのコミュニケーションという点で強みはなくても、そこでコミュニケーションが取れるようになって、ただ先端技術に追い付くだけじゃなくって、外国の人達とまじわって共同作業するようになったときに、「こういう発想は日本人じゃないとできないよね」とか「このアイデアは僕達には考えつかなかったな」っていうような、日本人ならではの得意分野や特性を活かした、アイデンティティを持った価値を産んでいけるようになるんじゃないかと。
ブロック感覚で学べる「ビジュアルプログラミング言語」を導入
ちょっと前置きが長くなりましたが実際の教材イメージの説明に入らせていただきます。先ほどご紹介もありましたが、今回はビジュアルプログラミング言語と呼ばれる種類のものを使います。一般的にはプログラミングというとキーボードで英語をタイプして作っていくものをご想像される方が多いと思うんですが、ビジュアルプログラミングってこういう、たとえばブロックを組み合わせるような形でいっさいコードをタイプしないでもプログラミングができるものがあります。
ビジュアル言語の中にも工業向けなど大人が使うものから色々種類があるんですが、今回は、MITのメディアラボが開発しました、Scratchというプログラミング学習のためのビジュアル言語をベースにした教材にしようと考えています。
のちほど実演させていただきますが、日本語化はされているものの、小学1年生に使わせるにはいささか複雑なところがありますので、そういうところを、まず教室で教える場面に最適化した形に進化させたものを今回の教材として使おうと思っています。
これがScratchの画面ですね。ちょっと止まっている画面だとわからないと思うんでこれから簡単な実演をさせていただきます。
これがスクラッチのいちばん最初に起動した時の画面なんですが、白い背景のうえにキャラクターがいます。 ちょっと一個簡単なやつを作ってみます。
じゃあ最初に背景を決めましょう。いろんなものが入っている中で、これを背景にしましょう。これだと何にも動かないんですが、10歩動かすというブロックを置いて、これをクリックすると10歩分動く。そういうつくりです。これをもう少しちゃんと歩いているように見せがければ、「見た目」で10歩あるいてから次の絵に変える、そうするとちょっと歩いているような感じになりました。こういうつながりでプログラミングができますよ、というのがいちばん基本的なところで、これをずっと繰り返すといった書き方ができます。
ここで「このキャラクターがクリックされたらこのプログラムをはじめます」すると、クリックされたら動くようになる。ここでさらにスペースキーが押されたら「Hello」と2秒言う、そうするとスペースキーを押すとしゃべります。
もし、このままだと右側にいくといなくなっちゃうんですけど「もしはじっこについたら跳ね返る」とかこういうブロックを組み合わせていくと、はじっこにいったら戻ってきます。こういう組み合わせでプログラミングしていくっていうのがビジュアルプログラミング言語です。
ご覧になってちょっとイメージ的に小学校1年生には難しいんじゃないのかなと感じられる方もいらっしゃると思いますが、実際にはこのブロックが、もっとまとまった意味のある言葉で「歩く」だとか「ジャンプする」だとかそういうアクションにすることができて、それをうまく組み合わせて、動きとしておもしろいものができたり、組み合わせの順番を変えることで全然人によって違う結果が出てきたりするところのおもしろさを学んでいってもらおうというのが考え方です。
システムそのものだけでなく、"コンテンツをおもしろくすること"が重要
なんにも画面がないとイメージがわかりづらいと思ったので、これをタブレットの画面と思ってください。
これは実際のものではなく現時点でこんな感じのものができますよ、というイメージに過ぎないのですが、タブレット上で課題に必要なパーツがここに並んでて、これを指で持ってきて、それをつなぐとこのキャラクターがこういうふうに動くよね、とか。それをいかにただ動かすだけではなくおもしろいものにするのか。今回の開発の重要度で言うと、実際にシステムをつくるのが半分から4割ぐらいで、たぶんコンテンツを面白くすることが6割くらいを占めてると思っています。
あとは細かい話になってきますけども、今後設計していくうえでの指針というか方針です。
まず1つは、ひとつの正解を目指す、とか、正解か不正解かという詰め込み教育みたいなやり方ではなく、どういうことができるのか、可能性を与えてあげて、結果に対してはオープンに受けとめる、そういう方向で授業ができるような教材にしたいです。
今回は、いろんな題材はありますが、子どもの興味を引きやすいっていうことでゲームというのを作りを対象にします。
ゲームづくりっていうと「え、ゲームですか」っていう感じがするかもしれないですけど、ゲームづくりをするうえ必要になってくるプログラミングの考え方は、どんなプログラミングをするにあたっても必ず必要になってくることなので、そこに関してはまじめっぽいものより、実際に身についてもっと学びたいと思うような題材を選ぶことが重要だと考えています。
これはアプリの特徴ではないですけど、隔週の授業には毎回DeNAから講師を派遣します。まあ、自分なんですけども。これ何が重要かというと、今回の取り組みは本当に新しいので、想定したものを作って「はいこれをつかってください」とはならないと思うんです。実際授業をやってみたら「こんなところにひっかかるんだ」とか「こういう部分には全然興味がなくて、こういう部分に興味があるんだ」とか、そういうところは実際に授業をやってみないとわからないはずなので、授業時間を無駄にしないためにも教材の継続的な改善がとても大事になってきます。
ここで、2週間単位というのがちょうど良いスパンで、自分で授業をやってフィードバックを持って帰って、次の授業の時に教材や使い勝手を改善するというサイクルが8回も繰り返せる。それが8回できるってすごいことだと思います。そういう中で教材作りをできるという環境はなかなか提供されることではないんで、出来上がった最終段階でのクオリティというものはなかなか高いものになるのではないかと思ってます。
あとは授業ごとに、予め使う材料とか使い方をシンプルにして、脱落者が出ないように最初にチュートリアルを用意し、ただそれだけだと正解をなぞるだけになってしまうので、これをやったうえで自由な発想で改造をできるようなパーツを追加し、「このパーツをあげるからみんなで思い思いのものをつくってみましょう」という形でやっていこうと思います。
3点目が授業を円滑に進めるためにどうするかというところです。というとちょっと言葉が悪いかもしれませんが、先生の側で各生徒のタブレットの状態をモニタリングできるようにして、生徒がちゃんと起動できていないとか、課題やっているんだけど間違ってるとかを先生が確認する。「できましたか?」って言って恥ずかしがって、手を挙げなかったりするような子とかがいても、ちゃんとわかってこっそりとフォローに行ってあげるとか、生徒のプライドを傷つけないような形で脱落者を出さないこともできるのではないかと考えています。
あとは「先生が話している時にはさわらないでください」と言ってもやっぱりなかなか離せない、タブレット使ってると楽しいんで。そういう時には「話しを聞け」というボタンを押すとタブレットが触れなくなって先生の話を聞くようにするとか、そんなこともできるようにすることを考えています。
イメージ的にはこんなかんじで、生徒の席順でならんでいて、各生徒がいまどんな状態にあるか、間違ったところにいっていないかとかそういうのがモニターされていて、クローズアップするとその人の状態が見れたりとかそういったようなものを考えています。
あとは細かい話なんですが、プログラミングだけじゃなく実際に情報機器を使ってものをつくるときに重要になってくるその「周辺」のものですね。プログラミングだけではものをつくれないんで、楽しいと思える最少セットに必要なものは作れるようになってもらいたいです。例えば自分のキャラクターを作る機能ですね。
もう一つ重要なのが、友達と作品を交換したり共同で作業できるような機能。これ最初はクラスの中だけで考えていたんですが、これで人と交換したり共同作業することに慣れてくると、将来的には幅広い人々と、さらには海外のひとたちと共同作業しようとか、そういうプロジェクトに参加しようと発展していけると思います。小さい頃からそういう関わりあいを身につけてもらいたいのでこの要素を入れる考えです。
3つのゴール
一応評価はしないということになっているのですが、生徒さんの大事な時間をいただくのでやっぱりゴールは設定しなければいけないと思います。3方向あります。
1つ目はプログラミングに対する意識、もうひとつはプログラミング自体の技術です。で、3つ目はプログラミング技術に限らない情報技術を使いこなすうえで必要な知識を身に着けてもらうこと。この3点をゴールと考えています
まず意識のところに関しては「自分で作れるんだよ」というところと、あと、そんなに複雑なことをやらなくてもシンプルなものの組み合わせでいろんなおもしろいものがつくれるんだと、肌感覚としてなじんでもらうことです。
2点目は技術的な話になってしまうんですが、プログラミングの基礎的な構造で順次実行や条件分岐や繰り返しなどの基本的な要素ですね。それだけ覚えればかなりのことができるので、そこまではちゃんと覚えてもらいたいと思います。あとは「タッチされたら」など「何かが起こったらどうなる」、「入力があって出力がある」という考えを身に着けること。最後のは難しいかもしれないですが「データ」というものの考え方と扱いかたです。とそこまで踏み込めたらいいなと思ってます。
今後の展開について
これが最後のスライドですが、今回10月から半年間の実証研究、その後どうするんだ、というところですが、まだ2年目以降の本格導入の時期やどこまで展開するのかなど現時点では決まっていません。というのも今決めてしまっても、実証研究している間に色んな結果が見えてきて、その通りに運ぶことはまずないと思いますので、様子を見ながらきちっと検討していこうと考えています。
とはいえ教材の枠組み自体は今考えているもので十分小学3年生や4年生ぐらいまでは対応できる、まあコンテンツの開発は必要ですけども、対応できる枠組みですので、そこに関してはどちらかというと実務面というか現場との現実的な話になってくると思います。
講師の確保がひとつ大きな課題になってくると思っています。今回は私が毎回来るので良いのですが、ずっとそういうわけにもいきませんし、全部の学校に対してはどうするのか、6年生まで教材の準備ができでも誰がどう教えるのか、課題ですね。
解決案にはいくつか方向性があると思いますが、ITスキルのある講師が現地の先生と協力して授業を進めていくやり方などを検討していこうと思っています。
長くなりましたが、以上です。
プログラミング学習アプリ『プログラミングゼミ』についてはこちら参考資料
DeNA Programing education
fromDeNA Pr
写真提供:豊永和明/動画提供:武雄市
Scratch is a project of the Lifelong Kindergarten group at the MIT Media Lab
http://scratch.mit.edu