こどもとIT
もやもやをエンジニア視点で切り取る!「こどものプログラミング教育を考える2018」開催レポート(2日目)
2018年3月26日 06:00
2018年2月23日(金)、24日(土)に明星大学で開催された「こどものプログラミング教育を考える2018 ~2020年度を見据えた地域の教育実践例~」は、プログラミング教育のカンファレンスながらエンジニア視点のスピーカーが多い印象を受ける面白さがあった。今回は2日目の各セッションのポイントをレポートしよう。
[→1日目のレポートはこちら]
身の回りの問題をプグラミングで解決!高校生がアプリ作り
アシアル社 Monacaプログラミング教育アドバイザーの岡本雄樹氏は、自社サービス「Monaca」を使った高等学校等でのアプリ開発授業について紹介した。
モバイルアプリ開発とひとことで言っても、iPhone(iOS)のアプリとAndroidのアプリでは、通常それぞれ異なるプログラミング言語で開発する必要がある。Monacaは、ウェブサイトを作る技術であるHTML5、CSS、JavaScriptを使ってiPhone用とAndroid用のモバイルアプリを同時に作るためのサービスだ。
もともとプロ向けの開発サービスだが、同志社中学校・高等学校の高3選択科目で採用されたのをきっかけに、高校以上を中心に学校現場での導入が始まっている。ウェブブラウザーから利用できるので各パソコンに開発環境を作る手間がかからず、どこからでも利用できるという便利さや、技術的に比較的習得しやすいことなどが導入の決め手になった。また、目的がアプリ開発であることが、スマートフォン世代の生徒のモチベーションアップにもつながっている。
岡本氏がアプリ制作授業の際にテーマにしているのは「身の回りの小さな課題を解決すること」だ。⾃分⾃⾝や家族、部活動の場などでちょっと困っていることを、アプリを作って解決する経験をしてほしい、という話はとても印象的だった。プログラミングで、身の回りにある課題を解決するための「仕組み」を作るという、ソフト的な「モノ作り」の醍醐味だ。
先生については、仮にプログラミングが得意でないとしても「一緒に学ぶ姿勢」があることが大切だという。「教員側が全てを理解していなくてもいい」と先生が思い、共に学び、恐怖心を取り外していってほしいと岡本氏は語った。
なお、高校段階から見て小中に求めることを言うならば、「キーボードが使えるようになっていてほしい」というのが現状だそうだ。変数に使うような簡単な英単語のスペルがわからなかったり、エラーメッセージの英語を読めなかったりというケースもあるという。最低限の技能や知識をどの段階で習得するのか、小中高の連携もプログラミング教育にとって今後の課題だ。
「もっと学びたい子」を伸ばす環境をコミュニティは作れているか?
さくらインターネットのエンジニア/テクノロージーエバンジェリストの前佛雅人氏は、自社のデータセンターがある石狩市の小学校で行ったプログラミング出前授業について紹介した。石狩市教育委員会の協力のもと、2017年度市内全ての小学校でアンプラグド系の学びやプログラミング体験の授業を実施した。
前佛氏は、プログラミング教育に関する議論が「そもそも論」で止まりがちだと指摘する。誰もプログラミング教育を受けた経験がないため、「プログラミング教育とは何か」という前提がずれたまま議論はかみ合わず、「小学生にプログラミングなんて必要なの?」という否定的な意見も根強いのが現状だ。
その上で、「特別な学校や子どもだけでなく、すべての子どもたちが、コンピューターやプログラミングに触れる機会があることが大切だ。知っているのと実際に体験するのとでは全く違う」と義務教育段階での重要性を主張した。
前佛氏は、自身の「もっと早く学びたかった」という経験を紹介した。小1の頃初めて家にあったコンピューターに触れたものの、両親が詳しくなかった上、自力で学ぶにはアルファベットがわからず挫折。小5~小6で地域のパソコン教室に行けたものの、操作方法を学んで終わり、「もっと知りたい」という思いはかなわず挫折した。高専に入りようやく機器にも情報量にも恵まれた学ぶ環境を手に入れ、一気に勉強したという。
このように、置かれた環境が子どもにとっては限界点になってしまう現実を指摘しつつ、「学校に全ての責任を押しつけるべきではない。学校は体験の場であっていい」とはっきり線引きをした。
「オリンピック選手を育てるのは学校の役割ではないのと同じこと。もっと学びたい子どもや資質がある子どもは、別の環境で学べれば良い。ただ、そのための受け皿は地域や社会全体に必要で、伸びる子のそばには、その資質をつぶさず伸ばす大人の存在や環境があったはず。勝手に力のある子どもが出てくるわけではない」(前佛氏)
前佛氏は、スポーツや芸術分野には、そんなコミュニティと大人の支援体制があるのに対して、コンピューター関連にはその環境がなく、本気で支援する体制がないことを指摘し、「私も含めてコミュニティ側の人間が大きく反省すべきだと思う」と語った。今はオンラインもコミュニティの場になりうる。子ども達の学びを「他人事にせず、エンジニアとして身近にできることから支援を始めよう」という言葉には、子どもに寄り添った目線と現状をどうにかしたいというエンジニアとしての強い思いの両方を感じた。
小学生にPython!? 日野第七小学校のプログラミング活動
本カンファレンスの開催主体である「明星大学プログラミング教育連携研究ユニット(COPERU PROJECT)」を率いる明星大学情報学部准教授・早稲田大学理工学術院客員主任研究員の山中脩也先生も1日目に引き続いて登壇し、日野市立日野第七小学校でのプログラミング活動について紹介した。2017年9月から月に1~2回のペースで、小4~小6の30名によるクラブ活動でプログラミングを実施した。
山中先生は、プログラミング教育におけるプログラミングを、「コンピューターに指示・命令をすること」というよりも「コンピューターと対話すること」と解釈し、エラーメッセージへの対応など、コンピューターとのインタラクションを軸に学ぶことを重視した。そこで教材として用意したのは、なんとキーボードから文字を入力して「書く」タイプのプログラミング言語。プロが使用する汎用言語Pythonと、ビジュアルアートに使われるProcessingだ。子ども向けには、ブロックタイプのビジュアル言語であるScratchがメジャーだが、Scratchにはエラーが出ない。
子ども達は、オリジナル教材のプリントを見ながら短いコードを書いては実行結果を見る、ということを繰り返すという。ウェブブラウザーからオンラインの実行環境を使用し、各自自分のペースで進めていく。当然エラーも出るのだが、山中先生は「コンピューターの中に先生がいるから、対話をしよう!」と声をかけ、エラーが出たら何行目なのかという数字だけでも、子ども自身に読むよう促すそうだ。
エラーが出ないように未然に防ぐ指導をするのはではなく、「エラーは親切」なのだから、怖がらず、そこから自分で間違いを見つけられるようにしようというわけだ。教員の役割も、「Teach(教える)」ではなく「Facilitate(手助けする)」だとし、子ども自身が試行錯誤することを重視している。
あえてテキスト入力のプログラミング言語を教材にするのはチャレンジングな気もするが、子ども達は特に抵抗なく受けいれたという。やってみると、子ども自身がエラーに慣れて自分なりにどんどん進めている姿や、子ども同士で積極的に教え合う様子が見られたそうだ。そんな様子なので、顧問の先生からは「プログラミング活動中、教員は『ラク』だったかもしれない」という感想があったほど。これは決して先生が手を抜いているというわけではなく、まさに「Facilitate」が成立していたのだろう。こんな風に、教師中心で進める授業とは違うスタイルの授業もあっていいはずだ。
こうしてスモールステップで繰り返しプログラムを書く経験をすることで、子ども達は「プログラミング的思考」と呼ぶところの論理的思考や試行錯誤をやっていると見て取れる。もちろん新学習指導要領には「各教科等の特質に応じて」とあるが、国語や算数、理科のような教科の学習内容と無理に結びつけず、シンプルにプログラミング体験として「総合的な学習の時間」で扱うこともひとつの選択肢だろう。
プログラミングの苦手意識を持たせない工夫
母親向けのプログラミング体験を実施した明星大学情報学部准教授桑原明栄子先生からは、プログラミングへの苦手意識をつけないための工夫が提案された。
桑原先生は、未就学児の母親向けにScratchとProcessingの体験を実施して得られた感想や、大学生向けにプログラミングに関するアンケートを行った結果をもとに、苦手意識がどこから来るかを考察。パソコンの画面上ではなく、フローチャートを模した実物のブロックを扱うような教材を創ると、より直感的に学べるのではないか、と提案した。
筆者が知る限りでも、画面を使わない、もしくは画面の外でブロックを操作してプログラムを組むような教材ツールは既に存在する。初歩的なものとはいえ基本的なアルゴリズムを学べるようになっている。未就学児や初心者にとっては、こうしたツールやアンプラグド系の教材が入り口として有効だということが、もっと知られてもいいだろう。
プログラミング教育には新しい学びの形がある
最後に、明星大学教育学部准教授の北島茂樹先生が、前述の山中先生が日野第七小で行った実践をふまえ、プログラミング教育が学び方の新しいモデルになる可能性について話した。
これまでの教育のやり方というのは、教師が授業を行って知識を伝達し、課題を出しテストをしてチェックし、子どもが知識を再現できればOKというスタイル。これからは、知識を活用して子どもたちが自分で動けるようになることが重要なものの、今それができる環境は学校教育の中には少ないという。
その点、山中先生のプログラミング活動では、子ども達が自ら知りたいと思って様々に試行錯誤する様子が数多く見られたというのだ。例えば、とりあえず同じコードをコピー&ペーストして、数値を様々に変えて出力される図形の変化を試したり、わからなければ前の教材のテキストプリントをチェックして自分でヒントを探したり、隣の子に聞いたり、といったことが、教師が促すこと無く自主的に行われていたことが紹介された。
「プログラミングの知識を伝達すればいいというものではない。自分で使えるようになっていくプロセスが重要」という指摘に、教材や学び方の設定の重要性を感じた。知識として教えられるだけだとしたら、こうした試行錯誤は確かに起きづらい。
子ども達が自発的に試行錯誤して学び、活用する力を身につけられるような、新しい学びのスタイルのヒントが、プログラミング教育にはありそうだ。これは学校という場や他の教科の学びにとっても新しい風になるだろう。
2日間通じて、もやもやしているポイントをエンジニア視点で大胆に切り取ってくれるようなセッションが多い印象を受けた。新学習指導要領の解釈やそれにあわせた授業事例が並ぶことが多い中、いい意味で異色のフォーラムだったのではないだろうか。
1日目のレポートでは、Japanese Raspberry Pi Users Groupの太田昌文氏、CoderDojo Japanの宮島衣瑛氏、相模原市の事例、COPERU PROJECTに関する各セッションの紹介をしている。あわせてご覧いただきたい。