シリーズ・プログラミング学習への挑戦2019 – ④誰が為のプログラミング

2019年度、教員に転職して1年目の私は、校内の校務分掌で「情報教育」の担当となり、市が推進する施策でもある、Softbank Robotics社のPepperを用いたプログラミング学習の取り組みに挑戦しました。中学1年生・42人を対象とした、全16時間の取り組みを通じて考えてきたこと・やってきたことを、全4回にわたって書いていきたいと思います。

最終回となる今回のタイトルは「誰が為のプログラミング」。響きだけでこのタイトルを決めたのですが、この問いのようなタイトルの答えは「生徒たちのため」に決まっています。ではその実、生徒たちにとってどんな効果を期待してやったらいいのかということを、私の持論だけで展開していきます。折しも、「#ぜんぶGIGAのせいだ」とか、「小学校プログラミング教育に関する取組状況等調査」とかで界隈が盛り上がっており、何より新学習指導要領において小学校におけるプログラミング教育の全面実施を間も無くに控えていますが、そこでおよそ離されてきたであろうことをほぼガン無視して、話を進めていきたいと思います。

○シリーズ・プログラミング学習への挑戦2019 – ①Hello, Pepper.
○シリーズ・プログラミング学習への挑戦2019 – ②コンセプトとディレクション
○シリーズ・プログラミング学習への挑戦2019 – ③外部人材と「うまいこと」やる
●シリーズ・プログラミング学習への挑戦2019 – ④誰が為のプログラミング


とはいえ、私以外がどう言っていたかをあたってみた

冒頭で息巻いて「持論だけで」なんて言ってみたものの、やっぱり現状の議論や他の人の視点を踏まえた上でものを書いていこうと思い、いくつかのサイトに当たってみました。ちなみにありがたいことに、私の派遣元であるTeach For Japanがプログラミング教育に関する記事を書いていたので、プログラミング教育に関する詳細の説明はそちらに譲って団体HPのPVに貢献することにします。

なんとなくこの辺の記事から感じられるプログラミング教育の目的は、予測不可能な社会のなかで、システムに取り込まれて「使われる」側のままになるのではなく、自ら主体的に活用できる「使い手」あるいは「創り手」を増やしていくことのように思えます。たださらにその背景にはIT人材の不足というのも挙げられるようで、やっぱり創り手を増やしたい、その方が今後の雇用増大にもつながるしね、というのを感じます。この点は個人的にも納得できるところです。私自身が、ICTやプログラミングの領域に片足を突っ込んだ状態のまま育ってきた背景があるからこそ、ITシステムの仕組みみたいなものをなんとなく理解し、ICT(機器だけでなくサービスも)を利活用する過ごし方をできてきたと思うからです。

この、「使われる側から、使う側・作る側へ」という部分は、前任者も、そのまた前任者も意図していたようです。2017年度に最初に取り組んだ先輩教師、つまりこのPepperプログラミングの本校での最初の実践者は、その年のテーマを「AIとの共存」と定め、前述のリンク先の記事にも記載のあるシンギュラリティのことについて取り組みの最初に触れ、実際のプログラミングの取り組みを終えたのちに、まとめプログラムで「プログラムを自分たちで作れるように、AIも自分たちがコントロールできる立場にある」ということを学習したとのこと。実はその先生は情報学部出身で、どちらかというと上述の表現で言う「使い手」側ということもあり、なるほど熟考した上でのメッセージングだな、と思いました。

ところで、学習指導要領上では、現行指導要領でも新指導要領でも、中学校の技術科の内容項目にプログラミングが入っています。新指導要領の方が文言が増えていて、そこには、デバッグ・インタラクティブ性・情報ネットワーク・問題解決、という要素が加わっているように読めます。プログラミングによる計測・制御について、個別具体的なコーディングそのものを指導するのでなく、情報処理の手順や、処理にまつわる概念(条件分岐、繰り返し、変数・配列など)を体験・理解するというところに主眼が置かれていると読めます。別に「体験・理解」だから、「日本全国総コーダー作戦」じゃないというのはわかります。ですが、小学校学習指導要領にある「プログラミング的思考」というものを、よりプログラミング技術に寄せて指導しようとしている意図を感じます。その「プログラミング的思考」は、小学校指導要領上このように定義さてています。

自分が意図する一連の活動を実現するために、どのような動きの組合わせが必要であり、一つ一つの動きに対応した記号をどのように組み合わせたらいいのか、記号の組合わせをどのように改善していけば、より意図した活動に近づくのか、ということを論理的に考えていく力

なるほど、たしかにこの表記ならば、「全国総コーダー作戦」をしているわけではないし、この定義における「プログラミング的思考」は、プログラミング以外の場面でも使えるよな、と感覚的に思ったりしています。


2つの事例を通じて伝えた「世界を自分の手で変えていく」ということ

さて、ここからは私の経験をベースにした話になります。なのでもう一度、指導計画に記載した4つの目的を再掲します。

  1. 日常の生活を基点に社会の課題を発見し、その解決に向けた考察と実践に取り組む経験を持つ
  2. 計画・実装・失敗・修正のプロセスを繰り返すことが、よりのぞましい成果につながることを学ぶ
  3. 問題発見、企画立案、実装結果、考察、という一連の流れを他者に分かりやすく説明できるようになる
  4. Pepperの作動に必要となる、プログラム・シナリオ・画面画像等を通じて、自己表現の機会を得る

今こうして再掲してみて、はてこの目的はちゃんと達成できただろうかと思うと、特に2と3は怪しいなと反省しています。が、ここで言いたいのはその成否のことではなく、目的の部分で技術的側面の優先度を下げた一方、課題解決の実践経験に重きを置くことを一番目に持ってきた、という点です。そもそも今回の取り組みは、技術科ではなく総合的な学習の時間で行なったので、2017年度に実践した先輩教師が言ってくれた「探求学習ですよ」の言葉のとおり、プログラミングを手段にして課題解決に向かうプロジェクトの取り組み方を学ぶということを最重視しました。

私はそれを、このような言葉に置き換えて、ガイダンス時に生徒たちに伝えました。

  • 世界を変えていく力を身につけてほしい
  • 世界はプログラムでできている
  • プログラムは自分で作ることができる
  • 自分のプログラムが誰かを幸せにする

だから、プログラミングを通じて社会の課題を解決してほしい、言い換えれば、Pepperを社会に役立たせてほしい、ということを伝えたのです。

そしてこの「世界を自分たちで変えていく」ためのプログラミング、「自分の手で誰かを幸せにする」ためのプログラミング、という考えを伝えるために、2つの事例を生徒たちに伝えました。一つは、Tech Kids Grand Prix 2018で自由制作部門の1位およびオーディエンス賞を獲得した菅野晄さんの「写刺繍」というアプリです。あるときニュースでたまたま見かけて「これや」と思った作品で、スマホのカメラで撮影した物体を刺繍の図案を作成できるというアプリなのですが、その作成のきっかけが「刺繍が好きなおばあちゃんとの会話を増やしたい」という動機だったそうです。これこそ、日常の生活を基点に課題を発見し、プログラミングで誰かを幸せにしている事例だと思いました。なのでこの事例は、単元の導入として生徒たちに提示しました。余談ですが先日Apple CEOのティムクック氏が来日した時に、菅野さんと話していたようですね。

もう一つの事例は、2018年度のPepperプログラミング成果発表会で金賞を受賞した、静岡県藤枝市立葉梨中学校の事例です。「学校の近くにある高速のパーキングが、静岡空港に近いPAでもあることから中国人観光客が多い」ということに着目し、訪日外国人のニーズ調査しつつレコメンドをしてPAのサービスを向上させようというプログラムを作成。ただ作るだけでなく、実際にPAに設置して実証実験をし、その結果を踏まえて改良してもう一回PAに設置した、というところまでやっていました。今回私が定めた指導の目的の1〜3を見事にカバーしています。そりゃ金賞とるよね、と思わず唸ってしまいました。なのでこの事例は、ひとしきり社会課題の洗い出しが終わったあとに生徒たちに見せました。

どちらの事例も、明確かつ強力な「なぜそれをするのか」があり、その実現の手段としてプログラミングをしていることがわかります。コンセプトへの着目が先か、コーディング技術の習得が先か、という順序については詳細はわかりませんが、明らかに主従関係で言えば、コンセプトが主でプログラミングが従です。言い換えれば、コンセプトの実現においては、プログラミングは数ある手段のうちの一つで、それがたまたま採用されただけだとも考えられます。どちらにせよ、この2つの事例からは、自分の身の回りの世界を、自分の力で変えていこうとする意志が見えると思います。


プログラミング的思考とは、現状と理想をつなげること

さてここでもう一度、「プログラミング的思考」の定義を引いてみます。

自分が意図する一連の活動を実現するために、どのような動きの組合わせが必要であり、一つ一つの動きに対応した記号をどのように組み合わせたらいいのか、記号の組合わせをどのように改善していけば、より意図した活動に近づくのか、ということを論理的に考えていく力

もし仮に、プログラミングではない他の手段でコンセプト実現を達成しようとしたとしても、意図する活動の実現のために、何を組み合わせ・その組み合わせをどう改善すればいいのかを考えることは避けられません。その意味では、プログラミングとは究極、【現状と理想の間をとりもつもの】であって、私にとってみれば、このモデルは数多の「仕事」に概して当てはまるものだと思っています。言うなれば、すべて「仕事」というものや「プロジェクト」というものは、そのプロセス自体がプログラミング的である、ということです。

2018年末に書いた記事「講演録:「採用活動」から、就活を考える」に掲載したスライド。つい先日、生徒会新役員にもこの話をした。

長くなったついでに思い出話を挟みますが、私は新卒で入った会社でデータ集計を担当していました。その時代のとある上司が、「集計は、バラバラになっているデータを、意図する形をイメージした上で、どうすれば最短距離でそこにたどり着けるかを考えることが大事だ」ということを話したうえで、大事なのはツールではなくロジックだ、ということを私に伝えてくれました。こと集計に関しては過去の記事でも書いたのですが、プログラミングや集計に限らず、【現状と理想を取り組みで結ぶ】ということは、およそ生きる上で様々な場面で遭遇するでしょう。だからこそ大事なのはコンセプトであり、そして試行錯誤をしながらもプロジェクトを推し進めていくことであると思っています。そこには、およそ正解というものはありませんが、どう振る舞えばよいかは体感的に学ぶことができると思います。

今回の取り組みではあまりにも実装の時間が短く、前述の通り、アジャイル開発の醍醐味とも言える試行錯誤・デバッグのプロセスを全チームが体験するには至りませんでした。しかし1チーム、割と早い段階で意図するプログラムが完成したところがあり、そのチームはデバッグと改善に取り組みました。病院で順番待ちの受付をしてくれるPepperという題材で、タッチをトリガーに「あなたは●番目です」とカウントアップするというメイン部分は確かに完成していました。しかし、訪れた人がどこにタッチすればいいかわからなかったり、画面が消えずに残ったままで次の来訪者を受け付けられなかったり、と、ユーザビリティの観点で不十分なところがありました。すぐに指摘することを待って、「まず自分たちで触ってみ。それで、変えたほうがいいところがないか考えてごらん」とけしかけると、私が「変えたほうがいい」と思った部分に生徒たちも気づき、改善作業に入ることができました。

このプロセスを引き出すことに、プログラミング学習を実施する意味があり、そこに教師の役割があるのだと思います。この本質を押さえさえすれば、技術的側面は(語弊を恐れず言えば)瑣末な問題でしかないとすら言えるでしょう。プログラミング自体に知識・技能面で高いと思われるハードルがある分、「やべぇぞ、どうすんだ」となっているのが、昨今の現場の混乱の根本ではないでしょうか。だとすれば、いったん落ち着いて「プログラミング的思考」の本質に立ち返るべきだと思います。私はそれを、【理想に向かって、自分たちの手で、現状をよりよくしていくこと】だと捉え、それを生徒たちに伝えようとしてきました。それが「世界を変えていく力」だと思っています。


適材適所の分業スタイル

世界を変えていくための手段は、何もプログラミングだけではない。正直、コーディングには得手不得手があると思っていて、私のようにのめり込むことができる人がいれば、拒絶反応を覚えてしまう人もいると思っています。一斉型授業で「これが正解」とコーディングを教えるならまだいいとして、今回のような、作品を作り上げるプロセス、言い換えれば答えのないプロセス・自分たちで正解を創り上げるプロセスにおいて、苦手だと思うことを強いて本質の学びを受け取れない状況をつくってしまうのは、やりたくありませんでした。それに、実際のプログラミング開発の場面(特に私がイメージするのはWebプログラミングの世界ですが)では、サーバーサイド・フロントサイド・デザイナー・ディレクター、などなど、様々な役割を持った人たちがチームを組み、適材適所で力を発揮することが当たり前なはずです。そのことを、体感して欲しいと思っていました。

今回の取り組みで、「プログラミングの技術的側面を全員が体験すること」を捨てでも優先したかったのはまさしくこのポイントです。そしてその具現化のためにやったのが、チームの中での役割を、プログラマ・デザイナー・ディレクター(シナリオライター)の3つに分けることでした。4人1チームのメンバー編成は、まず私の独断と偏見で「なんとなくこの生徒は〇〇向きだな」と3つの役割に分類したうえで行った一方、チーム内での役割設定は、チームメンバー間での話し合いに任せました。当初の予想通りにハマるチームもあれば、そうでないチームもありましたが、結果的にこの分業制を行なったことが、今回なんとか全チームがプレゼンテーションまでこぎつける、その成功要因だったと振り返っています。

それぞれの期待役割は以下の通りです。

  • ディレクター :①Pepperとユーザーのやりとりの詳細を考える ②最終プレゼンテーションの原稿を考える
  • プログラマー :ディレクターと相談をしながらプログラムを作成する
  • 画面デザイナー:プログラムにおいて必要なタッチディスプレイの画面をPowerPointで作成する

ちなみにPepperプログラミングで、Scratchベースの開発環境であるRobo Blocksを使うと、チーム全員がプログラマとしてプログラムをパーツ的に制作した場合、ドラッグ&ドロップで統合をすることができないという仕様になっており、プログラミング自体の分業が困難なのです。その上でも今回の役割分担は、実際の開発場面に近く、また合理的でもあったという点で、自分が工夫をしたポイントだと胸を張っています。


得意の発揮で見えてくる新たな一面

適材適所ということについては、実は校長からも、

無理しなくていいからさ。設定した時間の範囲の中で、できることをして欲しい。そのなかで一人でも、コンピューターの領域に興味を持ったり、才能に目覚めたりする生徒が出ればいいな、と思っている。案外、普段の勉強では力を発揮できない生徒が、開花するかもしれないね。

という話をもらっていました。正直、今回プログラミング学習に取り組んだ生徒たちの中には、気持ちの面で安定しなかったり、「きちんと」学習に向かえなかったり、といった、学校という枠組みのなかで考えたときにしんどさを抱える生徒もいました。ただ彼らと過ごす中で、ある生徒は絵を描くことに熱中していたり、またある生徒は成績は振るわないもののクラスの中でリーダーシップを発揮したり、という様子を目の当たりにしてきました。そうした、普段の教室では見られない姿を発揮できるかもしれないという期待もありました。今回の役割分担、とくに「画面デザイナー」というポジションは、この背景や期待から設定したものでした。

実はちょうどこの時期、普段の英語の授業を通じて生徒とのコミュニケーションに悩んでいた時期でもあり、この記事にあるような葛藤を持ちながら日々を過ごしていました。「なんでこの生徒は私のいうことを聞いてくれないのか」みたいな、こちらのエゴ全開な悩みだったわけですが、そういう思いを抱く対象となる生徒が、例えば画面デザイナーとしてプレゼンテーションの寸前まで「まだ完成していないんだけど」とこだわりながら制作に勤しんでいたり(ぶっきらぼうながらも「これ私が作った最新の画像じゃないから差し替えて」と頼んできた時に、その生徒のこだわりとやる気を感じました)、例えばディレクターとしてプレゼンテーション原稿を考えるためにインターネットを駆使して背景情報をかき集めてきたり、例えばプレゼンテーションでのデモンストレーションでユーザー役として堂々と演技したり、「そうだ、この生徒はこんな良さを発揮できるんだよな」と再認識する、あるいは「そうか、この生徒はこんな力を発揮できるのか」と新発見する、ということがありました。

事実、画面デザイナーは画面デザイナーとして、プログラマーはプログラマーとして、ディレクターはディレクターとして、それぞれに果たして欲しいとこちらが想定している期待役割を果たし、良質なアウトプットを出せていたと思います。それはひとえに、枠組みがあるとは言え、比較的嫌いじゃない、あるいは好きだという役割を自分で選択しているからだと思います。その力を結集してこそチームでプロジェクトに取り組むことの意義であり、それが私のいう「わたしとはちがうあなたと、いっしょにうまいことやる」ということだと思っています。これはプログラミング学習に限った話ではありませんが、プロジェクト学習で学んで欲しいことはこの部分であり、それがプログラミング学習である場合には、それぞれが自身のクリエイティビティを楽しみながら発揮することを可能にするのだと思っています。あえて全員にコーディングさせなかった最大の意図はここにあります。


さいごに:「すべては子どもたちと、その未来のために」

「誰が為のプログラミング」という問いへの答えは、生徒たちのため。もう一歩踏み込んで言えば、生徒たち自身が「世界を自分の手で変えていく」ため、そのために「わたしとはちがうあなたと、いっしょにうまいことやって、誰かに役立つことをする」ため。こういうスタンスを持ち、あるいは経験を持つ人が増えていけば、予測不可能な未来に対して悲観することなく生きていくことができるはずです。折しも、本市の教育の基本方針には「すべては子どもたちと、その未来のために」という文言があります。何のためにやっているんだと聞かれれば、そこに戻ってくるのも当然です。

惜しむらくは、今回のシリーズ記事て展開してきたような話を、もっと同僚教員と積み重ね、学年団としてさらに強固なスクラムを組んで、計画的に取り組みを進めたかった、けれどできなかった、というところです。一人で抱え込んだり、外部に頼ったりする場面が多く、一番近くにいる人たちと一緒に進める感覚を持つべきだったことは反省です。しかし、同僚教員や管理職は、私の実現したい世界観を分かって、惜しみない協力をくれました。そして何より生徒たちが、程度の差があれど、今回のチャレンジに自分たちから向かっていってくれました。このことは、かえがたいことだということを認識しなければなりません。

今回、全てチームが一定のアウトプットをすることに到達し、その中から苦渋の決断ながらも学校代表を決めるにあたり、学年教員+管理職の投票で同点1位が2チームとなりました。その後の決選投票で本校代表となった「お仕事紹介Pepper」のチームは、市内大会金賞・1位、全国大会に向けた映像審査を通過し、来たる2月9日に最終発表を迎えます。指導を担当した私としても、まさか全国に行けるとは思っていませんでしたが、この取り組みに携わった全ての人の努力が実を結んだ結果だと思っています。そのすべてのステップにおいて、誰が一番ワクワクしていたかと言えば、明らかに私であることに違いはなく、それが伝播したことによる成果だとすれば、この上ない喜びです。

そもそも、技術科教員ではない、英語教員である私が、(別に本業の英語がそっちのけというわけではありませんが)プログラミング学習に試行錯誤をしながら取り組んでみて、やはりその大変さ、難しさと、それにも勝る重要さを感じたことが、今回のシリーズ記事を書くきっかけとなりました。全部で3.5万字を超える、それこそ卒論レベルくらいの長さになることは本人としても予想外でしたが、それほどに熱を込めて取り組んできたんだということが自分でもよく分かりました。このシリーズで、私が世に投げかけたことが、議論を呼んだり、あるいは誰かに火をつけたり、そういうことにつながることを期待してやみません。

Comments

comments