2020年度から、小学校で「プログラミング教育」が必修になりました。
世の中にこれだけITが浸透したいま、デジタルネイティブたちがプログラミングを学ぶのも当たり前……なのかと思いきや、「プログラミング」という授業があるわけではないそうなんです。
キーワードとなるのは「プログラミング的思考」。いったい子どもたちは学校で何を学んでいるのか? プログラミング教育で身につけるべき力とは? そして、民間のプログラミングスクールの取り組みとは?
プログラミング教育の有識者として文部科学省の有識者会議にも加わった、株式会社CA Tech Kids代表取締役社長の上野朝大さんに、プログラミング教育についての疑問を聞きました。
小学生向けプログラミング教室「Tech Kids School」を運営する、株式会社CA Tech Kids代表取締役社長。2010年、株式会社サイバーエージェント入社。マーケティング事業部長、新規事業プロデューサー等を務めたのち、2013年サイバーエージェントグループの子会社として株式会社CA Tech Kidsを設立し代表取締役社長に就任。また、2019年に設立した株式会社キュレオの代表取締役社長も兼任する。キュレオ社は小学生向けプログラミング教室として国内最大数となる2,300教室を全国展開している。
一般社団法人新経済連盟 教育改革プロジェクト プログラミング教育推進分科会 責任者。文部科学省「小学校段階における論理的思考力や創造性、問題解決能力の育成とプログラミング教育に関する有識者会議」委員。文部科学省「2020年代に向けた教育の情報化に関する懇談会 基本問題検討WG」委員。情報処理学会、日本産業技術教育学会、日本情報科教育学会、コンピュータ利用教育学会 会員。
「的思考」が生まれたのは、プログラミングが学べないから
――小学校でプログラミング教育が必修化され、「プログラミング的思考」という言葉もよく聞くようになりました。今日は、小学生からプログラミングの考え方を学ぶ意味について、お話をうかがえればと思います。
上野さん:それなんですが……実は私、「プログラミング的思考」という言葉には功罪があると思っているんですよ。むしろ「罪」のほうが多いのではと。
――どういうことでしょうか?
上野さん:そもそものところからお話しましょう。日本における小学校でのプログラミング教育必修化は、新経済連盟としての三木谷浩史(楽天グループの創業者)代表理事の提言をきっかけに、2013年頃からスタートしました。IT技術が社会の根幹を担うことが間違いないなかで、技術を持った若者をもっと増やさねばならない、というのがスタートだったんです。
上野さん:その後、文部科学省は小学校でのプログラミング教育を検討するわけですが、各方面から「初等教育でそんな実践的なことを学ぶのか」という懸念があがったんです。
――そうなんですか? 小学生からプログラミングを学んでも、別に構わないような気もしますが……。
上野さん:小学校は職能教育の場ではないので、「特定の職業に限って求められる技術を小学校で教えるわけにはいかない」という建前があるんです。
プログラミング教育の当初の目的は「技術を持った若者を増やす」でしたから、そのロジックのままでは「IT技術者を育てるために小学校でプログラミングを教える」ことになってしまいます。
――とはいえ、ITやプログラミングについて早くから学ぶ必要がある、という背景は変わりませんよね。
上野さん:そこで生まれた概念が「プログラミング的思考」です。具体的なプログラミングを学ぶのではなく、「プログラミング的な思考を身につけよう」という抽象的なものに落とし込んだんです。文部科学省の「小学校プログラミング教育の手引」では、プログラミング教育のねらいと「プログラミング的思考」をこう説明しています。
① 「プログラミング的思考」を育むこと、②プログラミングの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと、③各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすること
※ 文部科学省「小学校プログラミング教育の手引」(第三版)11ページより
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力。
※ 同じく、文部科学省「小学校プログラミング教育の手引」(第三版)6ページより(強調は編集時に付与したもの)
――あくまで考え方を学ぶだけであって、プログラミングをすること自体が目的じゃないよ、ということにしたわけですね。ということは、国語や算数みたいに「プログラミング」という授業があるわけではないんですか?
上野さん:そうですね。新たに「プログラミング」という教科を設けたわけではありません。具体的な教え方は各学校に委ねられていますが、普段の授業にプログラミング的思考を養う学習法を取り入れる形が一般的になっています。
■ 算数(小学校5年)
正多角形の基本的な性質を学ぶため、プログラミングによって正方形や正六角形を書く。「線を引く」「決められた角度で曲がる」という手順を組み合わせ、繰り返しの命令を用いればプログラムが簡潔に書けることを知る
■ 理科(小学校6年)
プログラミングを通じて、電気の性質や働きを利用した道具について学ぶ。どのような条件を設定すればセンサーやスイッチを意図したように制御できるのか、プログラムを作って実験する。
※ 事例は「小学生プログラミング教育の手引」(第三版)、および「小学校を中心としたプログラミング教育ポータル」を参照
▲文部科学省によるWEBサイト『小学校を中心としたプログラミング教育ポータル』では、上記のほか、多くの小学校によるプログラミング教育の事例がまとめられている
――算数や理科の授業でプログラムを作るのは、なんだか楽しそうですね。これはこれでプログラムの仕組みを学べるような気がするのですが、どの辺りに功罪を感じられているのでしょうか?
上野さん:功罪の「功」は、「2020年に間に合わせたこと」だと考えています。
プログラミング的思考という概念を作り、既存の教科でカバーできるとしたことで、カリキュラム作成や人材確保など、時間がかかる問題を回避できました。とにかくプログラミング教育を始める、という意味では、役に立ったのではと思います。
一方、功罪の「罪」は「プログラミング『的思考』を学べれば、実際のプログラミング技術は不要」という勘違いを生んでしまったことです。プログラミング的思考を身につけたいのであれば、プログラムを学ぶのが最も確実だと思うんですよね。
「的思考」の授業ではプログラミング習得が難しい理由
――小学校からプログラミング教育をするために「プログラミング的思考を学ぶ」ことにした。でも、プログラミング的思考を学ぶにはプログラミングが必要……。なんだか、卵が先かニワトリが先か、みたいな話になってきました。
上野さん:プログラミング的な考えかたを学ぶこと自体は、間違ってはいないと思います。ただ忘れてはいけないのは、プログラミングを通じて身に着けることのごく一部を抽象化したものがプログラミング的思考だということ。抽象化した概念だけを教えても、プログラミングという「具体」を十分に理解するのは難しいでしょう。
プログラミングの学び方も、具体的なやり方はそれぞれの学校と先生に任されています。なかには体育の授業にプログラミング教育を取り入れている、というケースもあるようで。
――どんなことをやるのかも気になりますが、「それならパソコンを使ったほうが間違いないし、話が早い」と感じる人もいるかもしれません。
上野さん:そうなんですよね。そもそも国語や算数、体育といった教科には、それぞれ本来の学びの目的があります。そこに無理やりプログラミング的思考を混ぜ込めば、やっぱりおかしなことになってしまう。
さらに学校の先生方も、「実際のプログラミングはできないけど、プログラミング的思考を教えている」という状況にあります。これは「それ自体はできなくても、『思考法』なら教えられる」という状態にした、という点ではプログラミング教育を早期に導入するための「功」の部分ではあります。
▲上野さんによる、「プログラミングの技術」と「プログラミング的思考」の関係性のイメージ。それぞれが全く異なったものではないが、「『的思考』で学べることは、技術を身に着けることで学べることのごく一部」とのこと
上野さん:一方で、これから先に「じゃあ、プログラミングそのものは別に理解しなくていいんだ」と勘違いする先生が増えてしまうと、教える内容が本質からどんどん遠ざかるでしょう。
繰り返しますが、プログラミング的な思考を学ぶこと自体は重要です。でも、現在の指導要領で推奨されている方法で「プログラミング的思考」を学ぶだけでは、プログラミングの上澄みをすくっただけにならないかと、私は危惧しています。こういう取り組みをしている国は、他にありませんし(※)。
※ イギリスでは初等教育でアルゴリズムを学び、中等教育で2つ以上のプログラミング言語を使いこなすことを目的としてカリキュラムが組まれている。ちなみに、このカリキュラムが設定されたのは2014年のこと
――やはり「初等教育は職能を学ぶ場ではない」という反発が、ひとつの壁だったのでしょうか。
上野さん:そうですね。ただ個人的には、もうプログラミングは職能にあたらないのではと思います。
学校では体育や家庭科も教えますが、これを「スポーツ選手や料理人になるための職能を学んでいる」とは言わないですよね。社会生活を営むためのスキルや、教養として教えているわけです。
音楽だってそうで、「音楽で生計を立てているわけじゃないけど、楽器は弾けます」という人だってたくさんいるじゃないですか。
――そう考えると、「ITで生計を立てているわけじゃないけど、プログラムは組めます」という人がいたって、別にいいですもんね。
上野さん:今や、AIが人間の仕事を奪うといわれる時代です。コンピューターリテラシーは「社会生活を営むためのスキル」になっていくでしょう。であれば、プログラミングは職能ではなく、体育や家庭科と同じようなスキルと考えていいだろう、というのが私の意見です。
――となれば、既存の教科に紛れ込ませるのではなく、カリキュラム全体に手を加える必要がありますね。
上野さん:そうですね。先日、2025年以降の大学入学共通テストで新教科「情報」が追加されるというニュースになりました。高校では既に「情報」が必須科目になり、中学でも「技術」でプログラミングを学びます。
体系的にプログラミングを学ぶとなれば、今後、小学校の学習指導要領でもプログラミングが「格上げ」される可能性もゼロではないと思っています。
「自分では作れないけど理屈はわかる」が日本を救う
――ではプログラミング教育の「あるべき姿」についても聞かせてください。プログラミングを学ぶといっても、どれくらいのレベルまで身につけるのが理想なのでしょうか?
上野さん:もちろん、すべての人が高度なシステム開発ができるようになる必要はありません。ひとつ理想を挙げるなら、「自分では作れなくても、理屈はわかる」状態になることだと思います。
――作れなくても、理屈はわかる?
上野さん:たとえITが専門でない職業に就いても、なにか業務で改善したいことが起きたとき、「プログラミングでこういうことができるな」という発想があれば、専門職に頼むことができますよね。受発注にあたってのコミュニケーションも、全く知らないよりはスムーズに行えるはずです。
プログラミング教育によって、すべての人が「自分では作れないけど理屈はわかる」を習得すれば、日本の生産性向上につながると思うんです。そう考えれば、プログラミングを学ばないという選択肢は、もうないでしょう。
――その「理屈がわかる」状態が現在の教育方針における目標だとしても、「プログラミング的思考」を育むための今のやり方では不十分かもしれない、と。
上野さん:その通りです。プログラミングと聞くと「黒い画面に文字がびっしり」といったイメージを持たれる方も多いと思うんですが、理屈を学ぶのであれば「Scratch」などのビジュアル言語でも十分なんですよ。
▲「Scratch」の画面。命令が書かれたブロックを組み合わせてプログラミングし、結果が右上の画面に表示される。教育用に無償で提供されており、世界150以上の国と地域で利用されている
上野さん:Scratchでは、あらかじめプログラムが書かれたブロックが用意されています。「10歩動かす」「ずっと繰り返す」「もし~がされたら~する」といったものですね。このブロックをドラッグアンドドロップして組み合わせることで、プログラミングができるんです。
――なるほど、だから「ビジュアル言語」なんですね。
上野さん:そもそも、子どもはキーボードでのタイピングが苦手です。特に日本の子どもは、英語で書かれたプログラムを読み書きするのが難しい。
しかしScratchであれば、タブレットでもプログラミングができますし、実行や修正も手軽にできます。ブラウザベースなので、インストール作業も不要。プログラミングの入門には、素晴らしいツールです。
――上野さんが代表を務める「Tech Kids School」でも、Scratchでプログラミングを学ぶのでしょうか?
上野さん:Scratchを扱っているのは、小学1年生が対象のクラスだけですね。技術の習得というよりは、PC操作に慣れてもらう、プログラミングを楽しいと思ってもらう、といった入口としてScratchを使っています。
というのも、Scratchは「積極的になにかを教える」ようにできていないんです。「さぁどうぞ!」「自由にやってください!」と言わんばかりに、環境だけが用意されていて、好きに触ることができる。
それはそれで優れた思想なのですが、プログラミング教室では別に教材や講師を用意する必要があります。この課題を解決するために、我々で「QUREO(キュレオ)」というeラーニング教材を開発しました。
▲CA Tech Kidsが開発した「QUREO」。Scratchをベースに、チャプターごとに「イフ工場」「リセット平野」などの単元が設定されている。段階を踏んでプログラミングが学べるようにカリキュラムが作られている
――「プログラミング教育は始まったが教える先生がいない」のは、教育の現場でも課題になっていましたね。
上野さん:それと同じ問題が、民間のプログラミング教室でも起きているようです。QUREOでは、教材内のキャラクターが講師になって、レッスンを進めるようにしています。一般的なプログラミングの仕組みの理解なら、QUREOで十分ですね。この教材を使った「QUREOプログラミングスクール」というプログラミング教室を、この2年で大きく全国展開させ、現在全47都道府県に2300教室以上あります。
一方、弊社が直営している「Tech Kids School」は“ガチ勢向け”のスクールなので、小学校3年以上になるとiPhoneアプリ開発や、Unityを使った3Dゲーム開発を行っています。小学校高学年になると、自分でiPhoneアプリをストアでリリースしているお子さんもいますよ。
小学生の興味関心×プログラミング=明るい未来
――“ガチ勢”のキッズたちの活躍は、以前i:Engineerでもご紹介しました。AIやARも使いこなして、本当に大人顔負けですよね……。
▼小学生がリサーチ、マーケティング、アイデア出し!? キッズプログラマーの実力に現役エンジニアも驚いた!
上野さん:本当に、彼らの活躍はすばらしいです。ただ「スクールの受講者全員が、iPhoneアプリのリリースするのが理想」とは、私はまったく思っていません。自分がやりたいことを実現するのに、iPhoneアプリである必要もないし、リリースを目指す必要もないじゃないですか。
その子がたどり着きたい目標は、こちらから提示するものではないでしょう。何をやりたいかは、自分で考えてもらう。でも、思いついたアイデアの実現に必要な技術は我々が惜しみなく教えてあげる、というスタンスです。
――プログラミングそのものが目的ではなくて、やりたいことを実現するための「武器」を身につける、という感じでしょうか。
上野さん:そうですね。実際、Scratchだけ覚えても解決できることは多いんです。でもそれは、格闘技に例えるならパンチだけ覚えた状態。
もっと強い敵を倒すなら、キックや投げ技なども覚えたほうがいい。本人が、より高度な技をマスターして「もっと強くなりたい」と望むなら、私達がそれを教えない理由はありませんから。
――小学校でプログラミング的思考に触れた子どもたちにも、「もっと強くなりたい」と望む子が出てきそうです。
上野さん:本来は公教育でプログラミング教育がすべてカバーできればいいんですが、お話したように「プログラミング的思考」に落とし込んだ経緯があり、現場の先生たちもかなり難しい制約のなかで、プログラミング教育に取り組まれている状況です。
公教育でできることに限界があるからこそ、我々のような民間教育が頑張るべきでしょう。公教育と民間教育が相互補完的な関係になることで、子どもたちの「もっと学びたい」「もっと強くなりたい」という声に応えていければと思っています。
――プログラミングを学んだ子供たちが、どんな未来を作ってくれるのか楽しみです。
上野さん:「Tech Kids School」は2013年の設立なので、当時小学生だった生徒が、いま高校生になっているんです。自然言語処理で映画脚本を解析するシステムを作った子や、食物アレルギーを持つ人のための翻訳コミュニケーションアプリを作った子、目が不自由なおじいちゃんのために新聞を読み上げるアプリを作った子もいます。
興味関心のあるテーマがあって、自分の持つ知識や技術があれば、それを掛け合わせて新しいアウトプットを生み出せます。身の回りの課題や、社会問題を、技術を使って改善することもできるでしょう。こういう子どもたちが増えていくと、日本の未来も明るいなと思いますね。
文=井上マサキ/編集=伊藤 駿(ノオト)