課題満載のSTEM教育でも、コロナ下で起きていた教育現場のパラダイムシフト:踊るバズワード 〜Behind the Buzzword(17)STEM教育(5)(5/6 ページ)
本シリーズでは、STEM教育の中でも特にプログラミング教育を取り上げてきましたが、やはり課題(ツッコミどころ)は満載です。それでも、いろいろと調べていくうちに、いくつかの光明も見えてきました。
結局「プログラミング的思考」とは何なのか
では、次に、その「プログラミング的思考」なるものを考えてみたいと思います。
この「プログラミング的思考」については、”プログラミング的思考”&”文部科学省”で検索をかければ、かなりのページがヒットします。民間の教育機関も、いろいろなことを書いていますが、その”プログラミング思考”なるものの教え方(教育方法)は、どこにも書かれていません。
問題の発見→モデル化→コーディング→検証? なるほど、それは分かった。では、「それをどうやって子どもに教えるのか」 を提示する具体例を見つけることができないのです。
うそだと思うなら探してみてください。"プログラミング思考"の定義や概念図の後、いきなりScratchのインストール方法の話やコーディングの話にジャンプします。私は、教育現場における「問題の発見」「モデル化」「運用評価」の実施例を、見つけられませんでした(誰か、見つけたら教えてください → stem@kobore.net)
前半で、EE Times Japanと私が、教育関係者へのインタビューにこだわってきた理由の一つは、この"プログラミング思考"なるものの教え方(教育方法)を、私に教えて欲しかったからです。
自分の無能をさらすようで恥ずかしいのですが、私が、このページに出てくるような、モデル化の「分解」「抽象化」「一般化」「組合せ」をコーディングレベルの展開できるようになったのは、米国赴任中の2年間、毎日12時間くらい、コードを書きまくり、オブジェクト指向プログラミングの本を執筆していた同僚から指導を受けた後のことです。
そして、今なお、私は、そのオブジェクト指向プログラミングのモデル化や一般化や汎化について、他人に、上手に説明する自信がありません。
『プログラミング的思考とは、プログラミングの話ではない。プログラミングと関係のない、現実の社会課題などへの解決手法のことなのだ』と言われるなら ―― それでもいいです。
では、
『そのモデル化の実例は、どこに記載されているのですか?』
『プログラングのモデル化より100倍は難しそうな現実世界の社会課題のモデル化、というものを、どうやって子どもに教えるのですか?』
と、お聞きしたいのですが ―― 一体私は、誰にインタビューすればいいでしょうか?
「プログラミング的思考」がどんなものであるか、を理解するコンテンツはいろいろあります。特に優れているのが、NHK for Schoolの「テキシコー」です(参考)。トップページに「コンピュータを使わずにプログラミング的思考を育む」と記載されています。
この番組では「プログラミング的思考とはどういうことか」の具体例が満載されています ―― が、「プログラミング的思考がどういうものであるかをテレビで見ること」と、「プログラミング的思考ができるようになること」は、まったく別の話です。
これは冒頭の、『テレビで見て大体分かった。大丈夫だ』といって、スキー場で酸欠死しそうになった父や、私の作ったマニュアルを一度も読まず、リモコンを操作しようとせず、『分からない』と言い張り続けた母と、同じです(これが言いたいためだけに、冒頭に父と母に登場してもらいました)。
この件については、今回のインタビューに応じて頂いたD教室の運営者の方と、熱い議論になりました。
結論としては、「コンピュータを使わずにプログラミング的思考を育む」などという無謀な挑戦はやめて、英語や数学と同様に、「きちんとプログラミングを教えて、定期テストに出題し、受験科目として取り組む」方が、素直、低コスト、かつ、成果が出やすい(テキシコーを理解できる)のではないか、という話に落ち着きました。
でも、これは「教わる側(子ども)の問題ではなくて、教える側(教師)の問題かもしれんなー」、とか考えています。プログラミングを教えられる教師を準備するのが、簡単ではないことは、私にも分かります。
いずれにしても、「テキシコー教育」で、父のように「デジタルは分かった。大丈夫だ」と断言する人間を量産するようなことになれば、彼らこそが、デジタル化社会の最大の障害物となることは、はっきりと断言できます。
では、今回の内容をまとめます。
【1】文部科学省、教育委員会、小学校の校長先生などにインタビューを申し入れてきたのですが、ことごとく断わられてしまいました。そこで、今回は、民間の子ども向けプログラミング教室にインタビューしてきました。
【2】ここ数カ月で、子ども向けプログラミング教室の数が急増している状況に驚きました。プログラミング教室の教材のベースは「ゲームプログラミング」で、特に「見える化(ビジュアライズ)」で、子どもの集客を図るという戦略は分かりましたが、その一方で、現時点でのプログラミング教室は、受験対策(新科目「情報」)、スキル向上、就職対策などの出口戦略が、(現時点では)明確ではないことも分かりました。
【3】そして、プログラミング教室に「女子がいない」という事実から、プログラミングを自らの意思で学びたいと考える小学生女子は、(現時点では)いない/絶望的に少ないと考えました。近年では、女子が理系の選択をしないのは、社会の思い込みと同調圧力が原因である(環境説)、とされているようですが、江端家では、嫁さんの一言「レールの上を走り回っているおもちゃ(プラレール)の何が楽しいの?」の一言から、この環境説を再度見直すことにしました。
【4】その結果、男性ホルモンから性別の嗜好が決定されて、その後、社会環境で決定されていくという、一連のプロセスで説明できることが分かりました。そして、その起点となるのが、中学生の「科学実験」である、という仮説を立てました。また、女性のプログラマーは着実に増加している一方で、日本のITを支える人口が、増えておらず、近年は微量ながら減少に転じているかもしれない、という結果を示しました。
【5】文部科学省の唱える「プログラミング的思考」(テキシコー)について調べた結果、そのコンセプトやら考え方は山のように標榜されている一方で、その具体例が絶無であるという事実を明らかにしました。そもそも、モデル化(一般化や汎用化)の理解には、プロのITエンジニアである私ですら困難を極めたのに、それを、プログラミング抜きで、どうやってティーンたちに教えるのか、という根本的な疑問を呈しました。
以上です。
次女の慧眼
江端家の次女は、中学受験の頃に、全国模試(算数)で、偏差値80越えをやすやすとたたき出し、常に上位者としてランクインしていました ――私は次女が算数の勉強をしているところを見たことがありません、腹立たしいことに。
しかし、その後の次女は、与えられた才能を育成することなく、一方的に消費し続けて、そして高校卒業時には、ついにそれを使い果したようです。親としては、次女の勉強に強制的に介入して、数学の才能を伸ばすこともできたかもしれませんが、結局、私は何もしませんでした ―― 面倒くさかったからです。
次女は、数学は得意でしたが、他の理系教科の成績はボロボロだったようです。日頃から、「物理法則が、一体何の役に立つというの?」という、文系的な定番フレーズを垂れ流していました。
私は次女を見て、人間を「理系」「文系」という枠組みで分けるのは、無理があるんだなぁ、と実感したものです。
それはさておき。
次女が、大学の建築学科のAO入試の面接の前に、私は一夜漬けで、C/C++と、WebGLをたたき込みました。そして、自力でのインストール、設定、サンプルプログラムのコーディング、デバッグ、実行のやり方を教えました。ただし、私はこれらの作業に一切手出しをしませんでした。
面接官が、プログラミングに対して質問をしてくるセリフを、予想できたからです ―― それは『どの場面で苦労しましたか?』です。
「インストールが途中で止って、その後の再インストールができなくなった時です」
「設定するファイルを、違うディレクトリで作って、いつまでも環境設定が反映されなかった時です」
「プログラムのコンマを、大文字にしたままで、エラーが取れなくて、随分悩んだ時です」
「デバッグのトレースが、思うところで停止してくれなくて、泣きそうになった時です」
「実行ファイルが暴走して、パソコンの電源を止めなければならなくなった時です」
という生々しい意見は、実際にプログラミング環境を作るところから始めなければ、絶対に出てこないからです。そして、『プログラムなんて、死ねばいいのに』と、心の底からから思える人だけが「プログラマー」と呼ばれる資格を持つのです。
面接官が、アルゴリズムの内容を尋ねてこないことは、当初から分かっていました。なぜなら、面接の時間内で、アルゴリズムを理解することはできないからです。
ともあれ、私は、次女に、制御系の言語(C/C++)と、Web表示系の言語(WebGL)を、一通り叩き込みましたから、後はほっといても、自分から勝手にプログラミングを始めるだろう ―― てなことを、のんきに信じていた時期もありました(遠い目)。
次女は、プログラミングに全く興味を示しませんでした。今でも、大学から出された課題のために、しぶしぶUnityを使っているのを目にするくらいです。
今回のコラムを執筆する前に、次女に『なんでプログラミングを始めないんだ』と尋ねたところ、次女は言いました。
―― だって、プログラムって、バカだから
と。
『”.”と”,”、“:”と”;”を打ち間違えただけで、そして、”{“と”}”のネストが合わないだけで、簡単にエラーを吐くようなバカに付き合っていられるほど、私はヒマじゃないの』と言われました。
私は「真理だ……」と思いました。我が娘ながら、その慧眼(けいがん)を褒めてやりたい気持ちになりました。
『プログラムの方から、人間に歩み寄るべきである』 ―― プログラミング教育の最終解は、案外、「ここ」にあるのかもしれません。
Copyright © ITmedia, Inc. All Rights Reserved.