プログラミング教育は「スキル」なのか、それとも別の何かなのか
プログラミング教育という言葉を聞くと、多くの場合「コードを書けるようになること」を想像するかもしれません。
でも実際は、それだけでは説明しきれない部分があるように思えます。
むしろ、物事の仕組みを分解して理解したり、自分の頭で組み替えたりする力に近いものではないか、という見方もあります。
その意味で、単なる技術の勉強というより「考え方の練習」に近いのかもしれません。
私がパパートの考え方を知ったのは、プログラミングの歴史を調べていたときでした。子どもにプログラミングを教えるうえで、参考にできる人や考え方を探していたのがきっかけです。
調べていくと、今の子ども向けプログラミング教材の多くが、パパートの考え方とつながっていることが見えてきました。ブロックを組み合わせて動かすScratchも、その流れをくむ教材の一つと言われています。
この記事でわかること
- プログラミング教育で本当に育つもの
- シーモア・パパート(子ども向けプログラミングを広めた教育研究者)の「作りながら学ぶ」という考え方
- 「世界の見え方」が変わる理由
- 学校教育との違い
- AI時代における学びの変化
結論
プログラミング教育で育つのは、コードを書く技術だけではなく、物事を組み立てて考える力だと考えています。教室でも「どこが問題だと思う?」と問いかけると、子どもが自分で原因を探すようになりました。
Photo by Vlad Deep on Unsplash
プログラミングは「曖昧さのない世界」として見えることがある
プログラミングの特徴としてよく言われるのは、曖昧さがほとんど存在しないという点です。
指示は必ず結果として返り、エラーが出れば原因がどこかに存在します。
この環境に慣れると、「なんとなく」ではなく「どの条件がどう作用しているか」で考える癖がつくことがあります。
例えばバグが起きたときも、「たぶんここ」ではなく「どの処理の組み合わせで崩れたか」を分解して考えるようになります。
私自身の「見え方」が変わったこと
私自身も、プログラミングを学ぶ中で見え方が変わったと感じたことがあります。
それまでの私は、物事を考えるときの手順がどこかパターン化されていました。似たような問題には、いつも同じやり方で向き合っていたように思います。
ところが、アルゴリズム(問題を解くための手順)にもいろいろな種類があると知ってから、少し考え方が変わりました。たとえばデータを並べ替える方法ひとつをとっても、複数のやり方があり、それぞれに向き・不向きがあります。
目標は同じでも、たどり方は一つではない。そう気づいてから、視点を変えて考えることそのものが楽しくなりました。プログラミングで身につくのは書き方だけではなく、こうした「別の道を探す」感覚なのかもしれません。
教室では、言葉で気持ちを伝えるのが苦手な子が、Scratchでは思った通りに動く作品を作り、得意げに見せてくれることがありました。
シーモア・パパートの構成主義という考え方
この流れの背景にあるのが、シーモア・パパートの構成主義です。
彼は「学習とは知識を受け取ることではなく、自分で作り出すことだ」と考えていました。
子どもは教えられる存在ではなく、試行錯誤しながら理解を構築していく存在であるという考え方です。
エラーさえも失敗ではなく、学びの材料として扱われます。
Logo(ロゴ。画面の中の亀に命令を出して図形を描く、子ども向けのプログラミング言語)は、その考え方を形にした代表例です。
図形を描くことで数学的概念を体験的に理解する仕組みでした。
「どこが問題だと思う?」と問いかけてみた
Photo by Stephen Harlan on Unsplash
子どもと一緒にプログラムを作っていると、思ったとおりに動かない場面が出てきます。そんなとき私は、すぐに答えを教えるのではなく、まず子どもに問題点を口で説明してもらうようにしました。
「どう動いてほしかったのか」「実際にはどう動いたのか」を話してもらったうえで、「じゃあ、どこが問題あると思う?」と質問の形で返していきます。
自分の言葉で説明しようとすると、頭の中が少し整理されるのかもしれません。答えを渡すより時間はかかりますが、子ども自身が原因に近づいていく過程は、パパートの言う「自分で知識を作り出す」学びに近いのではないかと感じています。
教える側にとっては、口を出したくなるのをこらえる時間でもあります。子どもへの声かけの工夫は、Scratchを小学生に教えるときの工夫3つ|講師として教室で試したことでも紹介しています。
作品の発表より「作る過程」を見せたい
私がいた職場はエンジニアの方が多く、作品の発表を主な目標にしていたこともあって、子どもへの説明を省いて先へ進めてしまう場面がよくありました。そのたびに、「プログラミングを習わせる意味は何だろう?」と考えていました。
完成した作品だけでは、子どもが何を学んだのかは見えにくいものです。保護者の方にも、次のような「作る過程」を見えるようにできたらいいと思っています。
- どのように作ろうと設計したのか
- どこでつまずいたのか
- どのように解決したのか
過程が見えると、教室で何が育っているのかが伝わりやすくなります。その大切さに気づく保護者の方が増えれば、プログラミング教室に通わせたいと考える家庭も増えるのではないかと思います。
学校教育との違いは「評価の構造」にある
学校教育では正解にどれだけ早く到達できるかが重視されることが多いです。
一方プログラミング学習では、試行錯誤そのものが学びになります。
エラーを減点として見るか、改善の手がかりとして見るか。
この違いが学習体験を大きく変えています。
つまり、学校教育は結果重視、プログラミングは過程重視の構造だと捉えられるかもしれません。
AI時代で「試行錯誤」の意味が変わってきている
AIの登場によって、正解を探す価値は少しずつ変化しています。
多くの知識はAIが提示できるようになってきました。
その代わりに重要になるのは「問いの作り方」や「改善の回し方」だと考えられます。
つまり知識の量よりも、「試して、直して、また試す」をどれだけ回せるかが大事になる可能性があります。
プログラミング教育はどこに向かっているのか
Photo by Diego Jimenez on Unsplash
今後のプログラミング教育は、コードを書く技術というよりも、問題を構造化したりAIと協働するための思考教育に近づく可能性があります。
変数やループといった概念も、単なる文法ではなく「思考の型」として扱われる場面が増えるかもしれません。
たとえば「同じ作業を何回もくり返すならループ」「条件によって動きを変えるなら分岐」というように、プログラミングの考え方は日常の段取りにも置きかえられます。こうした見方に慣れておくことは、AIに作業を頼むときの指示づくりにも役立つのではないかと思います。
この記事のまとめ
プログラミング教育は単なるスキルではなく、思考の構造を育てる教育として捉えられる可能性があります。
AI時代において、その意味はさらに変化していく途中にあると言えそうです。
FAQ
Q. プログラミング教育は本当に必要なの?
A. 文部科学省の「小学校プログラミング教育の手引」では、プログラミングを通して、筋道を立てて考える力(プログラミング的思考)を育てることがねらいとされています。コードを書く技術だけでなく、考え方の練習として価値があると考えています。
Q. コードを書くことは重要ではなくなる?
A. 書く力は今後も必要ですが、何をどの順番で動かすかを組み立てる力の比重が高まると考えられます。AIがコードを書いてくれても、正しく動いているか確かめるには、仕組みが分かっている必要があるからです。
Q. 子どもに向いている理由は?
A. 作ったものがすぐ動き、うまくいかなければ直してまた試す、というくり返しがそのまま学びになるからです。失敗しても直してやり直せるので、間違いを怖がらずに試しやすいのも理由の一つです。
Q. AIがあれば不要になる?
A. 不要になるというより、AIに何をどう頼むかを考える力として生きてくると考えられます。くり返しや条件分岐の考え方が分かっていると、AIへの指示も具体的にできます。
Q. 子どもがつまずいたら、すぐに答えを教えたほうがいい?
A. 状況によりますが、まず問題点を言葉で説明してもらい、「どこが問題だと思う?」と問いかける方法もあります。自分で気づく経験が、次の試行錯誤につながると考えています。
参考・関連リンク
- シーモア・パパート『マインドストーム』(未来社)国立国会図書館サーチ
- 「構成主義が投げかける新しい教育」(J-STAGE)
- 「中学校『情報基礎』におけるLogoプログラミングの実践と評価」(日本教育情報学会、J-STAGE)
- 小学校プログラミング教育の手引(文部科学省)
- Scratch
関連記事
