Code.orgの日本での活動の中心である「みんなのコード」さんから新しいコンテンツが発表されました。
その名も「プログル」!
https://proguru.jp/
狙ってきたなーコレ!ある意味非の打ち所の無いコンテンツですね。
「学校(授業)で使えるプログラミング教材」のキャッチフレーズに違わず、小学校の授業をターゲットにベストマッチの教材です。今回発表された初回コンテンツでは5・6年生を対象とした「公倍数」の問題をプログラミングしながら体験していくことができます。
すでに学習指導要領(案)でも公表されているとおり、2020年の小学校のプログラミング教育では「プログラミング」という単元があるわけではなく、各授業の中で「プログラミング的思考」を養うためのカリキュラムを取り入れていく事になっています。つまり、総合的な学習の時間等を除いて、既存の国語や算数の学習内容とプログラミング教育を融合したコンテンツが求められているわけですね。「プログル」はそのど真ん中を狙ったコンテンツとなるわけです。
プログルの始め方は簡単です。(なるべく簡単なものを選んで紹介しているわけですが)プログルのホームページから「公倍数コースを始める」をクリックしてください。一般的なビジュアルプログラミングのユーザーインターフェースなので、Hour of Codeの一般的な問題をやったことがある子であればスムーズに進めていくことができると思います。
このコンテンツでは公倍数の理解を深めるとともに、プログラミングの基本的な概念である「順次処理」「繰り返し」「条件分岐」を身につけることができるとしているのですが、これはこのコンテンツが実はFizzBuzz問題という有名な問題を段階的に解いているからなんですね。
FizzBuzz問題とは欧米の遊びで、数人で順番に数字を言っていきながら、3の倍数の人はFizz、5の倍数の人はBuzz、3と5の公倍数の人はFizzBuzzと言うゲームが発端で、これをプログラミング能力の簡易テストとして取り入れたエピソードが広まって有名になった問題です。この問題はどのようなプログラミング言語でやっても、標準的な回答としては「順次処理」「繰り返し」「条件分岐」を含むプログラムになるので、ちょっとしたテストに最適だったんですね。ちなみに日本では世界のナベアツさんがこのFizzBuzzをアレンジしたネタで一斉を風靡したことがありました。(ちょっと古い?)
みんなのコードさんの発表では、今後もプログルでは日本の教育カリキュラムに沿ったコンテンツを発表していくとの事で、次は多角形コースを開発中とのことです。
https://prtimes.jp/main/html/rd/p/000000012.000015742.html
私は学習指導要領のパブリックコメント案を最初に見た時、算数の指導要領案に突然「多角形のプログラミング」が紹介されて、びっくりしました。メジャーなコンテンツにそんなのあった?と思ったのです。しかし、直後に公開されたみんなのコードの利根川さんブログでは、この学習指導要領案の多角形の件について、親和性があるので良いよねみたいなトーンだったので少し違和感を感じてたんですね。それほど指導要領はあまり具体的な事例を指した文章でも無いのに「親和性がある」と断言できるのは、なぜだろう?と。
http://tonegawa.hatenablog.com/entry/2017/02/14/204547
「謎はすべてとけた!」(キリッ!金田一少年風)
有識者会議のメンバーですから、事前に把握済みというか、多角形コンテンツは利根川さんもリーディングしたひとりなのかもしれません。(裏は取ってませんよ。状況証拠からのただの推理です。)別に営利目的では無いので、事前の情報を元に開発を進めたうえで、ご自身のブログでポジショントークをしていたとしても問題はないでしょう。これからも良いコンテンツをスピーディーに発表していただきたいものです。
ただ、別の角度から懸念点も述べておきたいと思います。
かなり個人的な感覚なのですが、このコンテンツの成り立ちについて懸念点もお話しておきたいと思います。
そもそもこのコンテンツは、日本のプログラミング教育の方針が「既存のカリキュラムの中で学習する」ことになったから「最適」なコンテンツなんですけど、そもそも「既存のカリキュラムにプログラミング教育を取り入れるだけで十分なのか?」という懸念が私にはあります。漠然とした懸念なので、はっきりとは説明できないのですけど、そのように感じる根源たる一つの事象をお話しておきます。
仕事柄毎年新人のプログラミング教育の進捗を確認します。すると有名大学出身にも関わらずプログラミング習得が芳しくない子がでるんですね。有名大学を入学できる力があるので、論理的思考力が無いわけがないんです。つまり、プログラミングという能力は論理的思考力+αが必要な能力だと考えられるのですが、現在の学校教育ではその+αを鍛えないまま卒業できるパスがあるってことだと思います。その能力について私ははっきりと断言することはできないのですが、おそらく抽象化能力なのではと考えています。プログラミングって論理的にコードを並べるんですけど、並べる前にその「粒」を抽出しているんですね。その抽出は作るものによって違うので、抽象化能力ってすごい幅広い言葉になってしまい、それ以上の説明がすごく困ります。ただ、その能力を鍛えてこなかった子は、論理的に並べる「粒」が抽出できないので、いつまでも前に進まないのでは?と思っています。
その抽象化能力を自分はいつ持つことができたのだろうと考えると、幼少期の色んなモノづくりの体験だったのじゃないかと思っています。モデルガン分解して組み立てなおしたり、オリジナルの釣りの仕掛けや道具を作ったり・・・。クリス・アンダーソンの「Makers」を読んだときにすごくしっくり頭に入ってきました。プリミティブな物作りの体験が現代の教育には必要だと。それは私の原体験と合致してると思えます。
ITと現実世界の更なる融合をしていくこれからの時代。そこで生きる能力って、これまで教育カリキュラムとして成立していなかったものを取り入れなきゃいけないんじゃないですか?だとするなら既存の算数や理科にプログラミングを融合させたものが教育コンテンツの正解って言うのは間違っている気がする訳です。そもそもの前提条件が違うんじゃ無い?というのが私の感覚なんですよね。それって現場の先生達の負担を考えて、妥協として設定した制約なのではないでしょうか。先生達って学校によってはかなりブラックな職場環境だったりするので、その制約を設定しなければならなかった事情もわからないわけです。しかし、そうだからといって時代が必要とする教育のイノベーションを遮断してはいけないわけです。
プログルはとっても考えられていて、現在の条件下では最良のコンテンツの一つです。しかし、その条件そのものが不十分だとするならば、これがプログラミング教育のゴールになってはいけないとも思います。