【プログラミングの教え方】生徒へ伝えるべき重要なポイント




こんにちは!プロクラスの吉田です。

いよいよ来月から小学校でプログラミング授業が始まります。

教員の方々は今まさに一生懸命プログラミングについて勉強し、試行錯誤しながら子供たちにどう教えようかと考えておられる状況かと思います。

先日京都市太秦小学校にて教職員の先生方20名にプロクラスが無料の研修を行わせていただき、大変好評いただいたきました。

僕たちが四角形の描画についての教え方を伝えたのですが、文科省から降りてきている教材や教え方は「算数でプログラム使って教える三角形の描画」についてだったのですが、先生方が既に勉強されていたので、大体の先生がすぐに理解していただけました。

ただ、「生徒へ教えるべき重要なポイントについて」とてもためになったとお言葉をいただきました。

■生徒へ伝えるべき重要なポイントとは

プログラミングを教える上で重要な部分は「プログラムのツールや命令を教える」ことではないということです。

私が考えるプログラミングで教えるべき順序は、

1)まず目的を理解する(目的のイメージをしっかり持つ)(目的化)

2)目的を達成するために必要な要素に分解する(要素分解し必要パーツの抽出:論理的思考)

3)要素を使って、目的を達成できるように並び替えて手順を考える(論理的思考)

4)組み立てに必要となる「言語の命令」を学ぶ(調べたりして得る知識)

5)命令を知った上で組み立てる(論理的思考)

6)組み立てて動作を確認する(目的との比較)

7)動作に問題があれば修正して正しければ終了

の工程を順序に従って、しっかりと教えられているかが重要です。

これは、みなさんが一度は経験したことのあることと同様の工程と大体同じ。

その「経験したこと」とは、実は旅行や引越ししたときにすることとおなじなのです。

■旅行で目的地(最寄り駅)に到着するポイント順序

旅行にいく場合や、家を引っ越したことある人は、それを思い出してみながら読んでみてください。
旅行に行く時の順序、はじめて家から駅に向かう思考の順序、と一緒なのです。

1)海に遊びに行く(目的のイメージをしっかり持つ)(目的化)

2)海までの旅程を分解する(パーツの抽出:論理的思考)
(車で行く、朝ごはん、高速、お昼ご飯、海で飲むドリンク、駐車場、海に潜る、日焼けする)

3)旅程を並び替えて手順を考える(具体的に手順に並び替え:論理的思考)
(家から車でコンビニに寄ってから、朝ごはんをマクドナルドで朝マックする、高速に乗って、パーキングエリアで休憩して、お昼は手打ちで有名なお蕎麦を食べて、近くのコンビニでドリンクを買って、海辺の駐車場に止めて、海に入って、海辺でシートを敷いて、日焼けして、海の家でシュノーケルを借りて、海に潜る)

4)事前に調べるべき知識(実際の情報を検索したり電話したりして学ぶ)
 天気予報⇒晴れる予報、朝ごはん食べられるところ⇒高速手前のマクドナルド、休憩⇒行く途中のパーキングエリア、有名な食べ物⇒手打ちのお蕎麦屋さんがある、海の近くのコンビニやスーパー⇒ローカルのコンビニしかない、ビーチ近くの駐車場は⇒ビーチから少し歩くが安い駐車場がある、シュノーケルレンタルサービスのある海の家⇒2件ある(事前に調べて得る知識)

5)実際の情報(知識)を得た上で組み立てる(論理的思考)
 天気予報⇒くもりなので、ガウンを持っていくことにしよう。朝ごはん食べられるところ⇒マックで朝マックする、休憩⇒途中のパーキングエリアにでコーヒーを飲む、有名な食べ物⇒手打ちのお蕎麦屋さんがある臨時休業のため通過して海の家でBBQしよう、海の近くのコンビニ⇒アルコールとジュースを購入できる、ビーチ近くの駐車場は⇒ビーチから少し歩くが安い駐車場で止めよう、シュノーケルレンタルサービスのある海の家⇒○○家さんで500円でレンタルできるのでする

6)組み立てて動作を確認する(目的との比較)
7)動作が正しければ終了
 実際に朝にはくもりなので、ガウンを入れる。朝ごはんを食べる予定のマックは駐車場が一杯で店に入れないので、通り道のコンビニに変更、朝ごはんにおにぎりを車で食べながら時間をショートカットする。運転が疲れてきたので、休憩するために途中のパーキングエリアにドトールがあるのでコーヒーを飲む、手打ちのお蕎麦屋さんが臨時休業のため通過、海の近くのコンビニでアルコールとジュースを購入した。ビーチから少し離れた安い駐車場で予定通り止められ、海の家でシュノーケルレンタルとBBQをしてから、海に潜って遊んだ。くもりなので残念ながら日焼けはできなかったけど、とっても満足な旅行でした。

この一連の旅程を「旅行の企画(目的設定①)」「事前の要素出し(要素分解②)」「予定の手順に並び替え(要素整理③)」「不明事項の調査(命令④)」「要素と命令の組み立て(プログラミング⑤)」「旅行の実施(実行・デバッグ⑥⑦)」の流れで実施したわけですが、これを順次実行するのはまさにプログラミングなのです。

ここれは、社会に出たときに、試される「アクティブラーニング」「論理的思考」「能動的な問題解決力」であると言えますし、この力をプログラミングによって定着学習させていくべきと考えているのです。

これは、私が5年間毎月第二週の土曜日10時から開催している「わくわく無料プログラミング教室」で毎回お話ししていることなのですが、

最近学校に読んでいただいた際に、先生方にお話しするとも多く、「考え方が実践的である」「プログラミングという教え方や考え方がよくわかった」「是非、講師たちに説明して欲しい」といつもとても良く言ってくださいます。

とある私立の中高一貫校に来年の中学への学習指導要領に向けた1年前のこの春4月から、プロクラスキッズのカリキュラムが導入決定していただいたのですが、この学校の中高の進学指導部長である先生からとても熱いメッセージをいただきました。

返信、有難うございます。
今週の研修の件、何卒よろしくお願いいたします。

内容ですが、今回の研修の位置づけを2通り考えております。

1つは、実際に授業を担当される先生(予定)に対しての研修。
2つ目に、教職員に対してのプログラミング授業導入に向けてのキックオフ的位置づけ

以上、2点です。
「なぜプログラミング教育なのか?」
「プログラミング教育の行きつく先はどこなのか?」
「プロクラスの教育は、他のプログラミング教育と何が違うのか?」

を初回の実施研修の前に、お話しよろしくお願いいたします。

先般、吉田さんとお話しさせていただいた際に、プロクラスの目指すプログラミング教育に、私はハッキリ言って心酔しております。

他のプログラミング教育も多々リサーチしましたが、はっきり言って次元が違うと感じています。

プログラマーを育てるのではなく、プログラミング能力(思考)を磨く、能力の高い人材をプログラミング教育で生み出し、

将来社会で活躍させるという軸(幹)の部分は、他のプログラミング教育を行っている業者からは感じられませんでした。

つきまして、今回導入するプロクラスのプログラミング授業は、今後の私たちの学校の募集活動の軸にもなりうると考えております。

その幹の部分を教職員で共有し、本校の広報担当者が私たち学校のプログラミングについて語れる・担任が保護者や生徒へ私たちのプログラミング教育について語れる状況を作り出したいと思っています。

<一部割愛>

このメールをいただいたとき、本当に嬉しく思いました。

また、今まで自分自身がプログラミングを学んできて30年ほど経つのですが、はじめは私も「プログラミングする」ということに囚われて、手段を目的化していたところがあったのですが、プログラマーを離れたある時点から、社会での全ての考え方が今回ご紹介した、「企画〜目的化〜要素分解〜組み立て〜実行」までが含まれていることが見えてきました。

自然とこの7つのパートに分けた考え方ができるようになっていましたし、もっというと、本質的な考えを抽出することができる力がついて、まだまだ道途中ではありますが、拘らせていただくいろいろな会社の課題を解決できるようになっていると言えると思います。

そんな経験を、今の子供達、社会人の人たちに伝えたい、というのが「プロクラス」の本質です。

私たちが、プログラミング元年となる今年の学校教育に貢献できれば幸いです。

吉田