探究型プログラミング学習(探プロ)

プログラミングの考え方を学んで、未来を創る力を手に入れる

プログラミングの考え方を学んで未来を創る力を手に入れる

【レポート】文京区立小学校の先生向け実技研修会 2018.08.23

夏休みもまもなく終わろうとする2018年8月23日に、文京区立小学校教育研究会情報教育部実技研修会、という研修の講師を務めさせて頂きました。

文京区立小学校教育研究会情報教育部と、文京区教育委員会教育センターとの共催で毎年実施している研修で、区内の小学校の先生たちが対象です。

 

2020年からいよいよ、公立の小学校でもプログラミング教育が始まります。

既に、再来年度の教科書にはプログラミングの話が盛り込まれているようですし、気になる先生方も増えてきているようですね。

 

そうした中で、研究会の情報教育部長である駒本小学校の先生よりお声がけ頂き、探プロの紹介とlittleBitsを使った簡単な実技演習を担当させて頂きました。

タイトルは『プログラミングの考え方を身近な問題解決に活かすとは?』です。

f:id:dig_learning:20180826153045p:plain

タイトル

大学院の修士研究で生まれた探プロは、2年前の修了時に

公立小学校で探プロを広める

という目標を立てていました。

当時は教育業界と無縁でしたから、もちろん小学校に縁などないですし、どうやってアプローチすれば良いのかもさっぱり分からない状態でした。

それでも、探プロが伝えたいことを一番伝えるべきところは小学校だと思っていましたし、それは今でも変わりません。

 

素人の自分が先生になるのではなく、教えるプロに伝えてもらいたい。

お金のある一部の家庭の子どもたちだけではなく、全ての子どもに学んでほしい。

そう考えているので、プログラミングは専門家ではなく、学校の先生が、先生たちの言葉で子供たちに学びの機会を提供してほしいと思っています。

 

でも、昨今のプログラミング教育といえば相変わらずプログラミング言語やロボットなどの高価な教材ありきの学習が多いようです。

無料の学習教材も増えていますが、それを教える先生たちにはまだまだハードルが高い。

教材の種類は増えましたが、私が4年前に研究を始めたときから、本質的には何も変わっていません。

そうした中で、学校でプログラミングを教えるってどういうことなのか?

何を揃えて、何をすれば良いのか?

全くの未経験者でも教えられるのか?

と不安に感じる先生たちは増えていると思います。

 

今回の研修では、そうした疑問をもつ先生方に向けて、探プロの真髄を真正面からぶつけてみることにしました。

実はこれ、なかなか勇気のいることなのです。

なぜなら、一般的なプログラミング教育のコンテンツや、指導例として認知されている学習方法と探プロは、全く異なるものなので

それを学校の授業に取り入れることが出来るのかどうか?を問うことは

探プロの真価が問われるといっても過言ではありませんでした。

 

f:id:dig_learning:20180826152728p:plain

研修風景

当日は、真夏の暑い時期にもかかわらず、なんと30名近くもの先生たちが集まってくださいました。

熱心にメモをとっている先生から、カタカナ語に戸惑う先生まで・・・

先生たちは普段、自分が伝える立場だからなのでしょうか??

話し手に向ける視線はけっこう厳しめで・・・

子供たちやその保護者向けに話すのとはまた違った緊張感を味わいました(笑)

 

2時間の研修の構成はこんな感じです。

1.プログラミング的思考とは

2.探プロの紹介

3.ミニワーク

4.プログラミングの考え方身近な問題解決に活かすとは

5.ディスカッション

はじめに、これまでやってきたワークショップや学校向けのコンテンツをいくつか紹介し、プログラミングの考え方を学ぶ学習イメージを掴んでもらいました。

その上で、littleBitsを使ってアルゴリズムを学ぶ方法とその価値を、実際に体験しながら実感してもらいました。

f:id:dig_learning:20180826154911p:plain

先生たちもlittleBitsに苦戦

順次構造、くり返し構造、分岐構造といった基本的なアルゴリズムの考え方を紹介した上で、実際にlittleBitsのブロックを使ってアルゴリズムを組み立て、プログラミングしてもらいます。

やってみると分かるのですが、頭で理解できていることと、実際に手を動かして作ることは、なかなか繋がりません。

むしろ子供の方が柔軟に手を動かし続けることができるので、解答にたどり着くスピードは早いですね。

大人は考えても、なかなか手が動かなかったり、手が動いても、それが何なのか?

理解できないまま終わってしまうこともあるようです。

 

今回の研修で先生たちに知ってほしかったのは、littleBitsの魅力、ではありません。

littleBitsは高いので・・学校で使うにはちょっとハードルが高いです。なので積極的にお勧めすることはできません。

そうではなく、コンピュータを使わなくてもアルゴリズムを学ぶことはできるということや、頭だけで考えるよりも実際に手を動かしながら考えることの方が効果的であるということです。

 

Scratchなどのプログラミング環境を使ってももちろん学べますが、パソコンやタブレットが必要ですし、まずは使い方を知らなければいけません。

学習のハードルをなるべく上げずに、学んでほしいことの本質を的確に伝える手段は他にもあるのだ、といったことに気づいてもらえたでしょうか。

 

そして最後に、洗濯物やプリントを題材にして、身近な問題解決にプログラミングの考え方を活かすとはどういったことなのか?

先生たちと一緒に考えました。

 

プログラミングを学ぶと問題解決に活かせる、と説明する本や雑誌はたくさんあります。

でもそれは、解決手段としてプログラミングを活用する、という話をしているだけです。

そんなの当たり前ですよね。技術が問題解決の手段になっていることくらい、誰だって分かっています。

 

探プロではこう説明します。

プログラミングを学ぶと問題解決に活かせるのは、その考え方自体をあらゆる問題解決に応用させることができるからです。

 

プログラミング的思考という考え方が、モノゴトを正確に効率よく進めるための考え方であるとするならば

曖昧であることによっておきている様々な問題は、プログラミングの考え方を使うことで解決できる可能性があります。

これは、必ずしも技術の話に限りません。

 

例えば、日常の家事にだって使えます。

洗濯物を早く干すには?料理を3品同時に手早く作るには?

学校の忘れ物をなくすには?山積みのプリントを確実に分類するには?

 

小学校に通う子どもを育てる親たちにとって、子どもが技術を身につけることよりも、身近な問題を自分の頭で考え、解決できるようになることの方がよほど重要なことではないでしょうか。

 

もっというと、プログラミング的思考は万能ではありません。

次世代の子供たちは教養として、プログラミングを学び、プログラミング的思考を身につけるべきである

という意見は間違ってはいませんが、それが全てではありません。

いわゆるプログラミング教育はプログラミング的思考を身につけることを目的としているので、必要なスキルの一部しか身につけられないのです。

 

社会の中で生きていくには、モノゴトを効率化するだけでは解決できないことがたくさんあります。

例えば、人間同士のコミュニケーションもそうです。噛み合わないコミュニケーションを円滑にするために重要なことは何でしょうか?

今までにない新しい発想が求められる場面ではどうでしょうか?

 

プログラミング教育、というとプログラミング的思考だけが注目されがちですが

プログラミングの考え方を学ぶ、と言い換えれば、身近な問題から社会の問題まで対象は広がり、身につけられるスキルはぐっと広がります。

だから、探プロでは21世紀型スキルに注目し、『未来を創る力』を身につけることを目的としています。

f:id:dig_learning:20180826161008p:plain

 

プログラミングの考え方を学ぶと、どうしてこういったスキルが身につくのでしょうか?

先ほどの例であれば、コミュニケーションの問題を解決するために「インタフェース」の考え方を使います。

モノやプログラム同士をつなぐためには、つなぎ方を事前に決めておくことがだいじ、です。

これはプログラミングの話に限らず、人間同士のコミュニケーションにも使えるのです。

 

また、新しい発想が必要になるときは、既にあるものを何か他の用途にも使えないか?と考えます。ここでは、モノゴトを抽象化したり共通化したりするプログラミングの考え方が使えます。

(詳しくは『変身する公園をつくろう』を参照)

 


今回の研修では最後に、先生たちにこんな問いを投げかけました。

プログラミングの考え方を授業の中で使うとしたら

どのような学習が考えられるでしょうか?

するとおもしろいことに、全教科での活用案が出てきたのです!!

例えば・・・

・国語)学習のまとめをする際、分類の考え方を使う

・算数)割り算の筆算をくり返し構造で説明する

・理科)実験方法の手順を考えさせる

・社会)地域の特徴を学ぶ際、特徴を抽象的に表現する 

・体育)準備から片付けまでの一連の流れをアルゴリズムで説明する

・家庭)カレーづくりの段取りを考えさせる

・図工)変身する公園を作る(抽象化、ポリモフィズムの考え方を取り入れる)

・音楽)メロディのくり返しをアルゴリズムで説明する

・その他)掃除を手早く終わらせるアルゴリズムを考えさせる

    ※早く終わったグループが他のグループを手伝う人間らしさもまた良し

 

なんて面白い!

先生たちの意見を、私は感動しながら聞いていました。

小学校のあらゆる授業で少しずつ、プログラミングの考え方を学ぶ、というのは探プロの最も理想とする在り方です。

こうやって自然に、当たり前のように子供たちが学ぶことができる場が既にあるのですから、プログラミング教育を特別なものとして構える必要なんてないのです。

 

今回の研修では

「“プログラミングの考え方を日常の問題解決に活かす”学習は、授業に取り込めるでしょうか?」

というアンケートになんと、90%近くの方がYESと回答してくれました。

理由にはこんな意見が。

取り込めるというよりは、今やっている学習が「プログラミング的思考のこの考え方にあたる」などを意識化させられれば 実はすでに実践していることがたくさんあると思いました。

気づくか気づかないかの差しかないから。

問題解決のために、分類したり、手順化したり修正したりする学習は、ふだんから授業の中にあるから。

思考する場面では、ほとんどの場面(多くの教科や生活場面)でいかせると思ったからです。

 

プログラミングの考え方を学ぶというのは特別なことでもなんでもなく、既に私たちがやっていることなのだ、と気づいてくれた先生たちがいることに、非常に勇気づけられます。

 

探プロの真髄が伝わった瞬間でした。本当に嬉しかったです。

 

これからも、一人でも多くの先生たちに、探プロの考え方や、授業の中での活用方法を伝えていきたいと思います。

とはいえ身が一つなので・・・

そろそろ本を書かないといけないかも、と本気で考え始めました。

@tanpro-lab