


「小学校でプログラミング教育が必修化されたけれど、そもそも『プログラミング的思考』って何?」
「子どもにどう教えればいいのか、具体的なイメージが湧かない……」
そんな悩みを持つ先生方は多いのではないでしょうか。
「プログラミング的思考」という言葉は少しむずかしく聞こえますが、実はパソコンを使わなくても、小学生の日常生活や普段の授業の中にたくさん隠れています。
この記事では、プログラミング的思考の分かりやすい具体例を、小学生の「日常」と「学校の授業」の2つの視点からたっぷりご紹介します。これを読めば、今日からすぐに子どもたちへ声かけができるようになりますよ!
プログラミング的思考と聞くと、「パソコンでむずかしいコードを打ち込むこと」だと勘違いされがちです。しかし、実は全くの別物です。まずは、その定義から紐解いていきましょう。
文部科学省は、プログラミング的思考を「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組合せたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」と定義しています。
少しややこしく聞こえますが、要するに「目的を達成するために、物事を順序立てて考え、効率よく解決していく力」のことです。パソコンの操作スキル(コーディング)を学ぶことではなく、あくまで「考え方」そのものを指しています。
よく似た言葉に「論理的思考力(ロジカルシンキング)」がありますが、プログラミング的思考はその一部とも言えます。
| 論理的思考力 | 物事の道筋を立てて、矛盾なく考えること。(例:AだからBになる) |
|---|---|
| プログラミング的思考 | 論理的思考をベースに、「いかに効率よく、最適な手順で目的を達成するか」までを考えること。(例:AからBに行くために、どのルートが一番早くてミスがないか) |
つまり、より「実践的・実行を前提とした考え方」がプログラミング的思考なのです。
プログラミング的思考は、大きく5つの要素に分けられます。ここでは、小学生の日常生活によくある行動を具体例にして解説します。
大きな問題を、扱いやすい小さな手順に分ける力です。
例えば「カレーライスを作る」という目的があった場合、いきなり作り始めるのではなく、「野菜を切る」「肉を炒める」「ルーを入れる」「ご飯を炊く」といった小さな工程に分解します。「部屋の片付け」も同様に、「まずおもちゃを箱に入れる」「次に本を本棚に戻す」と分けることで、行動しやすくなります。
分解した要素を、正しい順番に並べ直す力です。
「朝、学校へ行く」という目的のために、「顔を洗う」「着替える」「朝ごはんを食べる」「ランドセルを背負う」といった手順を、効率的な順番に組み合わせます。順番を間違えると、着替えた後にご飯をこぼしてやり直しになる……という失敗から学ぶことも大切です。
過去の経験からパターンを見つけ出し、他のことにも応用する力です。
「昨日は筆箱を忘れた。今日は体操着を忘れた」という失敗から、「前日の夜にランドセルの前に置いておく」という共通のルール(パターン)を見つけ出します。これが一般化です。
物事の「重要な部分」だけを抜き出し、不要な情報を捨てる力です。
例えば、お小遣い帳をつけるとき、「赤いパッケージのチョコレートを買った」という詳細よりも、「お菓子代として100円使った」という事実(金額)だけを抜き出して計算します。大事な情報だけを抽出する抽象化のスキルです。
考えた手順が本当にうまくいくか、頭の中で試して改善する力です。
遠足の計画を立てる際、「このルートだとお弁当の時間に広場に着かないかも」「雨が降ったらどうしよう」と事前に予測し、計画を修正していく行動がシミュレーション(デバッグ)にあたります。
実は、小学校の先生方はすでに日々の授業の中でプログラミング的思考を取り入れています。
算数や理科だけでなく、あらゆる教科で実践できる具体例を見てみましょう。
文章の起承転結を考え、順序立てて作文を書く活動は、まさにプログラミング的思考の「組み合わせ」です。また、長文から筆者の主張という重要な部分だけを抜き出す「要約」は、「抽象化」の力を大いに鍛えます。
複雑な図形の面積を求めるとき、そのままでは計算できません。そこで、図形を「三角形」や「四角形」など、自分が知っている公式が使える形に切り分けます。これは「分解」の典型的な例です。算数はプログラミング的思考と最も親和性が高い教科と言えます。
「跳び箱が跳べない」という課題に対し、「踏み切りの位置」「手のつき方」「目線」など、動作を一つひとつ確認(分解)し、どこがうまくいっていないかを見つけて直す(デバッグ・シミュレーション)。体育の授業でも、体を使って論理的に考えるプロセスが実践されています。
最後に、子どもたちのプログラミング的思考をさらに引き出すためのアプローチを3つご紹介します。
いきなりパソコンに向かう必要はありません。紙と鉛筆を使ったパズルや、カードゲーム、ボードゲームなど、パソコンを使わない「アンプラグド」な教材を活用しましょう。遊びの中で自然と論理的な思考プロセスを体験させることができます。
考え方に慣れてきたら、実際にツールを使ってみましょう。画面上のブロックをつなぎ合わせるだけで直感的に操作できる「Scratch(スクラッチ)」や、お絵かき感覚で動かせる「ビスケット」は、小学生の導入に最適です。自分が考えた手順ですぐに画面が動く楽しさが、学習意欲を高めます。
一番手軽で効果的なのが、大人からの「声かけ」です。子どもが何か失敗したときにすぐに答えを教えるのではなく、「どうしてうまくいかなかったのかな?」「次はどういう順番でやってみようか?」と問いかけ、子ども自身に手順を考え(シミュレーションさせ)る習慣をつけましょう。
プログラミング的思考とは、特別な才能や高度なITスキルではありません。
目的を達成するために、物事を細かく分け、順序立て、改善していく「生きるための問題解決能力」そのものです。
カレー作りや遠足の計画、日々の国語や算数の授業など、小学生の身の回りには具体例が溢れています。まずはむずかしく考えず、日常のちょっとした行動を「これってプログラミング的思考かも?」と意識することから始めてみてください。