※この「プロにキク!」では、毎回その道のプロに話を聞いて、私たちエンジニアに効きそうなノウハウをシェアしていきます。
さて、今回のテーマは「プログラミング教育」です。2020年にはプログラミング教育が小学校で必修化されることは有名ですが、そもそも何故プログラミング教育が必要なのでしょうか。そして、具体的にどのように学んでいくのが良いのでしょうか。
今回は、長年プログラミング教育に携わっている下記のお二人の大学教授にお話しを伺っていきたいと思います。
東京情報大学 総合情報学部 教授の松下孝太郎(まつした こうたろう)先生
横浜国立大学 教育学部 教授の山本光(やまもと こう)先生
――松下先生、山本先生、よろしくお願いします。
松下先生:はい、よろしくお願いします。
山本先生:よろしくお願いします。
なぜプログラミングを学習する必要があるのか
――まず、そもそも子供や学生にプログラミングを学ばせるのは何故なのでしょうか?
松下先生:2020年にはプログラミング教育が小学校で必修化されるわけですが、外的要因も理由の一つとしてあります。
――外的要因?
山本先生:諸外国と比べると日本はかなり遅れているので、早くやらないといけないということですね。韓国は2007年からプログラミング教育を実施しています。また、イギリスは2014年から、フィンランドは2016年から小学校でプログラミングを必修化しています。
――え!他の国ではとっくに必修化しているんですね。
松下先生:今は世界的に見て、ソフトウェアを押さえている企業が強いですよね。
山本先生:GAFAが象徴的でしょう。
――ああ、Google、Amazon、Facebook、Appleですね。
松下先生:日本人全員がITに携わるわけではないですが、プログラミング教育は“未来の可能性を広げる”という国家戦略でもあるわけです。
――なるほど、国レベルでの壮大な話なんですね。
山本先生:それだけではありません。プログラミングを学ぶというのは技術的な面だけでなく“プログラミング的思考を学ぶ”ということでもあるんです。
――“プログラミング的思考を学ぶ”というのは具体的にどういうことでしょうか。
山本先生:日本の学校教育というのは「学習指導要領」に基づいてカリキュラムが組まれるわけですが、その「学習指導要領」の目玉として“三本の柱”というのがあるんです。
――ほう、その“三本の柱”とは。
山本先生:「知識・技能」、「思考力・判断力・表現力」、「学びに向かう力・人間性」、の3つです。プログラミングというのはこの3つの力が端的に学べるいいツールだというわけです。
――なるほど、国家レベルの背景だけでなく教育的な観点から見てもプログラミングは有効だと。では、子ども達がこれから学ぶとしたら、どんな言語から学べば良いのでしょうか。
松下先生:お子さんが今から学ぶなら、Scratch(スクラッチ)が良いでしょうね。
これから学ぶには最適の「Scratch(スクラッチ)」
――なぜScratchが良いのでしょうか。
松下先生:いきなりCとかJavaでは少しハードルが高いですよね。Scratchはコードがブロックに埋め込まれているような感じでパズル感覚で簡単に学べます。
山本先生:for文とかif文などの定型文がブロック化されていますから、コードを打たなくてもプログラミングができてしまうんですね。
松下先生:専門的に言うならば“シンタックスエラー”が出ない、ということです。
――なるほど。初歩的な構造化プログラミングが学べる感じですね。
松下先生:それに、英語でも中国語でもほぼ全世界の言語に訳されていますので世界中で使えるという利点もあります。
山本先生:実際に小学生に教えてみても、ゲーム感覚で楽しそうに学んでいます。キャラクターが動くので結果がすぐに出るし、達成感が得られるという点が良いのだと思います。
――確かに、これなら小学生でも取っつきやすいですね。
山本先生:小学校では昔から「勉強が得意な子」と「運動が得意な子」で分かれていたイメージありますが、今はさらに「ゲームが好きでプログラミングが得意な子」という“活躍できる3軸目”ができた印象です。
松下先生:大学生でも、文系の学生が教養のひとつとしてScratchを学んでいたりします。
――へえ、もう学校では浸透しつつある、と。構造を理解するだけというのは逆にすごくシンプルな感じがしますが、いきなりJavaとかを学ぶのは良くないのでしょうか?
山本先生:英語などの外国語を学ぶ時も同じことが言えますが、外国語を覚える前に自分の主張を論理立てて喋れるようにしておくことが大事じゃないですか。
――確かに。母国語をしっかりと理解しないとダメですね。
松下先生:だから、まずは何よりも自分がしっかりと表現できることが大事ですよね。やはりCやJavaをいきなりやると大変で挫折してしまう人もいます。でもブロックを組み合わせるスクラッチに慣れておけば、次の言語を学ぶ際にも「forのブロックは、繰り返しってことか」と接続しやすいわけです。
山本先生:いいものが出てきましたよね。昔は無かったですから。
「Scratch」を学ぶうえでオススメの本
――そんなお二人はScratchの本をいくつか出されていますね。
松下先生:ええ、まず単純にScratchを操作するためにステップバイステップで手順だけを知りたいという方にはこちらがオススメです。
『今すぐ使えるかんたんScratch』(技術評論社)
山本先生:これは現在あるScratch本では一番簡単に作ってあります。Scratchの基本操作や、ファイルの保存などが分からない初心者の人でも大丈夫ですよ。
――ファイルの保存を知らなくても大丈夫だなんて、スゴイ!
松下先生:あとはこちらのScratch本ですね。
『親子でかんたん スクラッチプログラミングの図鑑』(技術評論社)
――こちらはどういったScratch本でしょうか。
松下先生:「親子でかんたん」というタイトルの通り、教育的な視点で書いてあるのが特徴です。子どもが読んで学ぶのもそうですが、親が読んでもたくさん学べるような作りになっています。
――ああ、親子で何かを作ってみるというのはいいかもしれませんね。
山本先生:そうなんです。うちの子は小学3年生のときに、夏休みの自由研究で「レゴをScratchで制御して動かす」というのをやりました。
――おお、小学3年生で夏休みにScratchを!ちなみに、その場合は何を学校に提出するんですか?
山本先生:レゴを動かしている様子を撮影してYouTubeにアップロードし、URLのQRコードを提出させました(笑)
――わあ、すごく今っぽい!(笑)
松下先生:すごくいいですよね。
――あと、改訂版が最近出たということですが、何が改訂されたんでしょうか?
『親子でかんたん スクラッチプログラミングの図鑑(Scratch3.0対応版)』(技術評論社)
松下先生:Scratchのバージョンが3.0になり、主に画面のデザインと操作手順が少し変わっています。ただ、そんなに大きな変更ではないので旧バージョンを使ったことがある人は「ここはこうだろう」とすぐ分かるはずです。
――バージョンは最新のものを使ったほうがいいんでしょうか?
松下先生:今後を考えると新しい方が良いですが、急いで変更する必要はないですね。2.0を使ったままでもいいし、3.0に変えてもいい。
山本先生:イギリスの小学校なんかは古いバージョンを10年ぐらいずっと使い続けていますね。関連資料もたくさんありますし。
――他のScratch本との違いは何でしょうか?
松下先生:やはり、私たちは2人とも長年にわたって子どものプログラミング教育に携わってきましたから、「学ぶ時にどこでつまずくか」というのを肌で感じています。そういった教育経験を活かしてこの本を書いているところでしょうか。
山本先生:パッと見じゃ伝わらないんですが、読みながら手を動かしてみると分かりますよ。つまずきそうなところに大事なポイントが書いてあったり、段階的に少しずつ学べるようになっていたりします。
――なるほど、「プログラミング教育に携わる大学の先生が書いているScratchの本」が他にほとんど無いわけですね。
今どきのプログラマにも読んでほしい理由
松下先生:今の大学生を見ていると、プログラミングへの敷居は低くなっているように感じますね。シンプルな言語も多いですし。
――確かに、昔はプログラミングを学ぶ人って何だか特殊な人でしたものね。
松下先生:それに環境設定が大変でしたよね。動くまでの設定とか、マシンのスペックとか。
山本先生:今の言語は構造も単純ですし、細かな設定がいらないというのは確かに大きいですね。有志が作ったライブラリもいっぱい公開されていますし。
松下先生:1990年後半に3Dの画像処理をやろうとしたら、システム一式で1000万とか掛かっていましたからね(笑)
――うわあ。高いですねぇ。今はサクッとできそうですものね。
山本先生:ただ、環境が整った弊害として「自分で何も作ろうとしない人が増えた」という問題もありますね。考える練習はしたほうがいいと思います。
――なるほど、確かに。
山本先生:お子さんがいるプログラマであれば、この本を一緒に見ながらアルゴリズムをゼロから勉強するつもりで取り組んでいただくもの良いかと思います。
松下先生:それと、お子さんには作品を公開してもらいたいですよね。
――作品を公開?
松下先生:ええ、Scratchで作った作品をYouTubeのように公開できるようになっているんです。それで友達同士で見せ合うなんてのも良いかもしれませんね。
大学の先生だから言える、プログラミングへの思い
――プログラミング学習に対する思いってありますか?
松下先生:そうですね。日本は資源の無い国なので人材こそが資源だと思うんです。ですから、こういった本をどんどん読んで優秀なエンジニアがたくさん育ってくればいいと思っています。加えて、企業の経営層の皆さんにお願いしたいのは、「技術者の待遇をあげて欲しい」ということですね。
――ああ、それは声を大にして言いたいですね(笑)
松下先生:若くても技術が高い人にはどんどん対価を払うべきです。そうでないと、より良い環境を求めてよその国にいってしまったりしますから。
――確かに。
山本先生:これからプログラミング教育が必須になるというのはいい流れがきているな、と思います。もともと教育では「出合い」と「適性の見極め」がポイントになっていて、早いうちから「合っているか合ってないか」と確かめられるのは大事なんです。
――ああ、子どもの頃に何に出合うかって大事ですよねぇ。
山本先生:ええ、ですからScratchの本を部屋にポンと置いておくだけでも、もしかするとお子さんにとって何かの機会になるかも知れませんよね。
――ふと手に取って興味を持つかもしれない。
山本先生:興味を持ったとしてもScratchの職人を目指すわけではありません。プログラミングに触れる機会を積極的に作るということが良いのではないかと思います。
――興味を持ってもらって、プログラミング思考を身につけてもらう、と。
松下先生:そうですね。そして私たちは教育の現場で若い子に技術を身につけてもらう動きをしますから、企業側は待遇を良くして受け入れてもらいたいなと。繰り返しになりますけども。
――いえ、待遇は大事ですからね。何度でも言いましょう(笑)
松下先生:そうすれば、良いタッグが組めて世の中も良くなっていくのではないでしょうか。
お子さんがいらっしゃる方は教育として親子でScratchを。そしてプログラマの方は基本のアルゴリズムを学び直す意味でも一度Scratch本を手に取ってみてはいかがでしょうか。
松下先生、山本先生、ありがとうございました!!