2017年3月に日本語版がリリースされたiPad用のプログラミング学習アプリ「Swift Playgrounds(スウィフトプレイグラウンズ)」は、はたして日本の教育現場で使えるツールになるのか。プログラミング教育関係者やSwift開発者など、立場の異なる有識者4人に話を聞いた。
子どもが学べる本物のSwift
グローバルな教育分野の動向をみても、近年はプログラミング教育やコンピュータサイエンスを小中学校の段階から取り入れる国々が増えている。子どもが楽しく学べるプログラミングツールも続々と登場し、コンピュータやタブレットさえあれば学校や自宅で手軽にプログラミングが学べる環境も整ってきた。
アップルが提供する無料のプログラミング学習アプリ、スウィフトプレイグラウンズ(以下SP)もその1つだ。2016年9月より提供開始された同アプリでは、アップルが開発したプログラミング言語「スウィフト(Swift)」に触れながら、基本的なプログラミングの概念を体系的に学ぶことができる。「コードを学ぼう」というレベル別のコースで構成されたドリル教材が用意されており、子どもたちは3Dの愛らしいキャラクターをスウィフトで動かしながら宝石を集める課題に取り組む。宝石を集めたら次の課題へ進むという具合で、自分でステップアップしていける。
SPの一番の特徴は、タイピングスキルが未熟な子どもでも本物のスウィフトコードに触れられる点だ。「move」や「forward」などコードが表記されたブロックをタップするだけで、子どもでも本格的なコードを入力できる。子ども向けのプログラミングツールといえば、ブロックをつないでプログラムを組み立てるビジュアルプログラミング言語を用いているものが多いが、SPはビジュアルのわかりやすさをテキストコーディングにも活かした新しい形のプログラミング学習ツールだといえる。
当初は英語版の提供のみだったが、2017年3月に日本語版が登場した。プログラミング教育が広がりを見せる日本の教育現場において、SPはどのように活用できるだろうか。プログラミング教育関係者やスウィフト開発者など、立場の異なる有識者に話を聞いた。
永野 直氏
千葉県立袖ヶ浦高等学校
情報コミュニケーション科教諭
山口勝也氏
合同会社コベリンCIO、
Swiftプログラマー
安川要平氏
子どものためのプログラミング道場
CoderDojo Japan代表理事
竹林 暁氏
小学生・中学生向けプログラミング教室
TENTO代表取締役社長
新しいプログラミング学習の形
—まずは、皆さんの立場から見たSPの印象を聞かせてください。
竹林●日本語版がリリースされたことは、プログラミング教育に携わる者として歓迎ですね。やはり英語だと子どもはとっつきにくいですから。ただし、私たちの運営するTENTOでは基本的にPCを使ってプログラミングを教えているので、iPad限定のSPをどのように扱うかは正直まだ悩み中です。とはいえ、SPはドリル型教材のほかにも、自由に教材を作り込めるのが魅力なので、どんどんスクールで使える教材を開発したいとは考えています。
永野●基本的に学校のプログラミング学習はPC教室で行われるのが前提です。ところがiPadでプログラミングが学べるSPは、場所を限定せずに普通教室でも使えるし、家庭学習として自宅で学べるのがいいですね。また単なるドリル教材で終わらずに、学習者が指示されていないコードで答えても反応してくれるのがいいと思います。センサを使ったり、ほかの外部デバイスにつないだりと、拡張性も優れているので面白いことができそうだなと考えています。
山口●私もプログラミングをiPadで学べることはいいことだと思います。私が勉強したときはパソコン+開発環境のセットアップ+教材を揃えなければならず、ハードルが高かったからです。SPは、スウィフトの基本的な書き方とイベントハンドリングなどの基本的な概念を効率的に学べるのがメリットですね。iPadだとテキストでソースコードを入力するのは大変ですが、コードの補完やUIが工夫されていて使いやすいなと感じました。
安川●そうそう、SPはコードの補完に優れていますね。またソフトウェアキーボードにブロックが表示されるのは新鮮で、そのブロックをタップすればコードが入力されるのは、わざわざ書く必要がなくてとても便利だと思います。私が全国のCoderDojoを見てきた限りでは、2Dではなく3Dのアニメーションで動くのが、子どもウケが良さそうだなと感じています。何気にBGMがあったり、キャラクターの動きに音がついていたりと、子どもたちがのめり込む要素があるのもいいなと。音とかデザインとか、いろんなものを総合的にシームレスにつなげていて、実にアップルらしい。ただ、プログラムを実行してから動き出すまでが少し遅いかな…。
山口●確かに、実行するまでに5秒ほどあって、これは私も遅いかなと思います。プログラミングは書いては試し、書いては試し、という作業が大切なので、もう少し速く実行できるといいですね。生徒たちも慣れてくると、実行が遅いことにストレスを感じるようになるかもしれません。
竹林●それにしても、既存の子ども向けプログラミングツールに比べると、SPが持つ自由度の高さは魅力的です。ほかのツールであればあらかじめ用意されたブロックを使って課題をクリアしたり、作品を作ったりしますが、SPの場合はそれに加えて、子どもたちが自由にコードを書いてもいい環境なんです。これがとてもいいと思います。たとえば、探索アルゴリズムのような難しいプログラムだって組めちゃうわけですから。
安川●私も、試しに再帰関数をSPで書いたら、ちゃんと動いたんでびっくりしました(笑)。
永野●出来レースじゃないところがいいんですよね。「コードを学ぼう」のコースでは、ドリル教材の形でプログラミングの基本概念を学べますが、用意されたコード以外のコードを使ってプログラムを入力しても動いてくれる。しかも、iPadのコード入力もクイックタイプ(QuickType)やコーディング専用のキーボードが用意されていて、タブレットならでは魅力だと思います。新しいプログラミング学習の形といってもいいんじゃないでしょうか。
竹林●ただ、自由にコードが書ける反面、ちゃんと動かなかったときのエラーが英語表示なのはネックですね。日本語版といっても、そこは英語のままなので。
“アプリを作れる”ことを知る
—そもそも、子どもたちがプログラミング教育としてスウィフト言語を学ぶことは、どうお考えでしょうか? また、SPはどのくらいの年齢層で使えるツールなのでしょうか。
山口●開発者の視点でいうと、スウィフトは後発の言語であるがゆえに配列操作や型システムなど、モダンな機能が多くてプログラミングをするのが楽しいですね。またiOSアプリ開発で以前から使われていたオブジェクティブC(Objective-C)に比べ、コードが簡潔で短く、かつバグが発生しにくいというメリットもあります。ただし、SPで学んだからといってスウィフトで開発できるようになるかは別問題です。実際にアプリを作るためには、データ構造やクラス設計など大きな構造を考えることが必要になってきます。子どもたちがスウィフトを学ぶメリットは、言語が持つ利点よりも、普段から親しみのあるiOSアプリを“作れるということがわかる”ことのほうが大きいのではないでしょうか。
安川●私もそう思います。プログラミング教育にスウィフトが適しているか否かということよりも、「普段使っているアプリも自分で作れるんだ」という子どもたちの気づきにつながることのほうが重要だと思いますね。たとえばビジュアルプログラミング言語のスクラッチ(Scratch)は、子どもたちにも親しまれており、プログラミングツールとしても優れていますが、私たちが普段使うアプリがスクラッチで作られているかというと、そうではありません。その点、スウィフトはプロが使う一般的なプログラミング言語ですからね。より幅広い表現が可能になるため、その分、実践的な学習の幅も広がるのではないでしょうか。
永野●中高生のiPhone所持率は高いので、“iOSアプリを作りたい”というモチベーションでスウィフトを学ぶ生徒も当然います。実際に本科の生徒たちが取り組んだ課題研究の1つには、「歩きスマホ防止アプリ」をスウィフトで作ったグループがいました。このグループの生徒たちはプログラミング初心者でしたが、やはり自分たちが持っているiPhoneで動くアプリを作りたいというモチベーションがありました。当時はSPがまだなかったので、本を見ながら手探りでスウィフトを学びましたが…。
竹林●私は、SPに関してはスウィフト言語がどうこうというよりも、ビジュアル言語からテキストコーディングへ移行するためのツールの1つと捉えています。子どものプログラミング教育においては、タイピングスキルを必要としないビジュアル言語からテキストコーディングへの移行をどのように行うかという課題がありますが、近年は「コードモンキー(CodeMonkey)」や「コードコンバット(CodeCombat)」のようなその橋渡しとなるようなツールも出てきて、SPもその流れの1つだと思います。ただ、iPadでしかSPが使えないということは、対象年齢としては小学生で使うのがいいのかなと思ったりしているのですが、皆さんどうですか?
永野●学校教育においては、中高生が向いているかなと思います。SPはプログラミング自体を学ぶためのツールという側面が強いので、次期学習指導要領で提示された小学校のプログラミング教育の目的とは少し異なるからです。その目的とは、算数や理科など既存の教科の中で論理的思考力を育成することであり、プログラミング言語そのものの習得ではありません。ですから、総合的な学習の時間以外では、SPを授業で扱いにくいかもしれませんね。一方で中高の場合は、技術・家庭や情報など、教科でプログラミング作成ができるので、SPを取り入れやすいでしょう。実際に、アップルはiBooksでSPの教師用ガイドブックを無料公開していますが、それを見ても対象は中学生かなと思います。
安川●まだSPを使って教えたことがないのでハッキリとした年齢が言えるわけではありませんが、自分のイメージとしてはスクラッチをひととおり終えた子どもが使うとよいのではないかと考えています。スクラッチはブロックとコードがきっちり噛み合わさっていてブロックを並べれば動きますが、SPの場合は表現の幅が広がる分、文法的に間違ったコードも簡単に書けてしまい、エラーが起こりやすくなっています。エラーメッセージも英語です。初めてのプログラミング体験がそれだとあまり良い印象を抱かないと思うので、スクラッチに慣れた子どもがいいかなと考えました。
山口●学校教育で考えると、どうしてもカリキュラムと結びついて取り組むハードルが上がりますが、私個人としてはこれほどまとまった教材がiPad一台で手に入るのは魅力なので、子どもの自学自習に大いに活用できると思います。家にiPadがあれば、いつでもプログラミングを自学できる環境があるというのは大きい。自分が子どものときにあったら、絶対に使っていたと思います。ただ、ちょっと漢字が多いかなと思うので、やはり小学生よりも中学生が向いている気がします。
●Swift Playgroundsの特長
SPでは、レベル別に分かれたコースが用意されている。各コースでは、関数、forループ、条件分岐コードなどのプログラミングの基礎概念を体系的に学ぶことができる。1つの課題をクリアすれば次の課題へ進むという具合にステップアップで進められる。
キーボードにはQuickTypeを採用。これにより、入力のストレスなく、タップだけでコード入力が可能に。各キー上にグレーで表示されている数字や記号は、そのキーをフリックすることで入力できる。文字種ごとの表示切り替えが不要になる便利な仕掛けだ。
より入力負担を減らすべく、よく使うコードはコードライブラリからドラッグするだけで入力できる。
愛らしいキャラクターが魅力のSP。3Dアニメで見た目にかわいらしく、BGMやキャラクターの動きにも音がついているなど、子どもたちがのめり込みやすい仕掛けが施されている。3Dアニメはさまざまな角度に動かすことが可能だ。
よりよいプラットフォームへ
—皆さんは今後、SPをプログラミング教育の中でどのように活用していこうと考えていますか? また、どんな活用に期待していますか?
安川●自学自習の話が出ましたが、SPは反転学習と相性がいいのではないかと思います。たとえば、SPで文法の基礎やデータ構造などを家庭で学習してもらい、実際の授業ではiOSアプリ開発のトライ&エラーについて取り組んだり、対面でしかできないような授業ができればいいなと思いますね。その場合は、個々の学習者の進捗を把握できるようなシステムも必要でしょうね。
永野●先ほど話した教師用ガイドブックでもその点は触れられていて、SPの活用は授業の中で一斉にプログラミングを行うことだけにとどまりません。たとえば「if」文のところでは、バスケットボールではスリーポイントエリアの中と外で得点が変わることなど,条件による違いを皆で体感できるような、日常生活とプログラムを結ぶアクティビティの例がたくさんあります。
山口●プログラマーとしては、プログラミングに興味を持ったり、好きになる子どもが増えてほしいなと思っています。SPはiPadで学べるので、これまで以上に多くの子どもたちがプログラミングに触れる機会を提供できるのではないかと期待しています。現状を見ると、プログラミング教育は親の影響力が大きく、親がプログラミングを知っているかどうかが子どもの学ぶ機会に影響する傾向があります。iPadという子どもにとっても身近なデバイスでプログラミングが学べることを活かし、プログラミングコミュニティの裾野が広がることを期待したいですね。
永野●SPは体系的にスウィフトの基本文法が学べるので、長期休暇などに課題として与えるのもいいなと考えています。またセンサやカメラなども活用すれば、教科の中でもっと使っていけると思うのです。たとえば、理科の実験データをSPでグラフにするといった形もその1つでしょう。その場合は理科室にiPadを持っていって、その場でプログラミングを使ったシミュレーションができますしね。ひととおり「コードを学ぼう」でスウィフトの基本を学んでから、教科の中で使っていくといいのではないかとイメージしています。
竹林●私はやはり、教材が作り込めるメリットを活かして、よりよいプログラミング教材を多く作っていきたいです。先ほど、SPは中学生に向いているという話がありましたが、それは今はまだ教材が充実していないだけだと考えています。今後、教材が増えたり、誰かが作った教材を共有できたりするような形になれば、もっと小学生でも使いやすいプログラミングツールに変わっていくと思うのです。iTunes Uのコンテンツシェアをみても、よりよい学びのコンテンツが集まるプラットフォームへと進化しています。SPも、良質なプログラミング教材が集まるプラットフォームへと進化してほしいですね。
ビジュアルプログラミング言語
ビジュアルプログラミングは、タイピングが未熟な子どもでも各種などのブロックをつなげることで簡単にプログラムを組み立てられる。SPの前段階の学習ツールといえる。代表的なものに、MITメディアラボが開発したScratchなどがある。
テキストコーディング
テキストコーディングは、子どもにとってハードルが高く、プログラミング教育の世界ではビジュアルプログラミングからテキストコーディングへの移行をどのように行うのがよいかについて、しばしば課題に挙がる。SPがその架け橋になるかもしれない。
XcodeのPlayground
もともと「Playground」は、Xcodeに組み込まれており、Swiftで記載したコードの実行結果を表示するものだ。コンパイルやビルドといった少しややこしい手順を後回しにして、プログラムを打ち込むだけでさまざまな機能を試せる。それをよりわかりやすい形でiPadアプリにしたのがSPだ。(写真は千葉県立袖ヶ浦高校でのXcodeを使ったアプリ開発の様子)
iBooksには、SPの教師用ガイドが無料で公開されている。中学生を想定した指導内容で、SPを用いた授業のポイントや工夫を紹介している。生徒が自分だけの閉じた世界でプログラミングを学ぶことがないように、実世界とのつながりを意識させるアクティビティやグループワークも紹介。ルーブリックにもとづいた生徒の評価やポートフォリオも用意されており、指導者に手厚い。