小学生とIT

【教員向け・2026年版】小学校の学年別プログラミング教育の方向性|ピアジェ・パパートの研究と文科省ガイドラインから考える

【教員向け・2026年版】小学校の学年別プログラミング教育の方向性|ピアジェ・パパートの研究と文科省ガイドラインから考える
--- # 元記事

初めてプログラミング教育を担当される先生方にとって、「どの学年で、何を、どこまで教えればいいんだろう?」という疑問は、まず最初に頭をよぎるものかもしれませんね。

文部科学省の「小学校プログラミング教育の手引(第三版)」を読んでみても、目的や活動分類は示されているものの、「なぜこの学年でこの内容なのか」という、子どもの発達段階に合わせた根拠までは、なかなか読み解きにくいと感じる先生もいらっしゃるのではないでしょうか。

そこでこの記事では、その「なぜ?」をひも解くための大切な考え方を2つご紹介し、文科省のガイドラインと重ね合わせながら、学年ごとのプログラミング教育の方向性を一緒に考えていきたいと思います。具体的なカリキュラム設計については別の機会に譲るとして、まずは「どんな視点で考えればいいのか」という枠組みを、私自身も長くIT業界で子どもたちと接してきた経験から、こんな視点でお伝えできれば幸いです。

プログラミング教育の「なぜ」をひも解く、大切な2つの視点

小学校でプログラミング教育を行う必要性は、文部科学省の手引に「プログラミング的思考の育成」として示されていますね。ただ、「なぜ小学生の段階からそれが求められるのか」「なぜ学年によってアプローチを変えるべきなのか」を深く理解するには、2人の研究者の仕事を知ることが大きなヒントになるのではないかと私は考えています。

ジャン・ピアジェの認知発達理論

スイスの発達心理学者ジャン・ピアジェ(1896-1980)は、20世紀において最も影響力の大きな心理学者の一人と評され、「発達心理学の父」とも呼ばれています。彼が提唱した「認知発達段階説」は、子どもの思考がどのような順序で発達するかを4つの段階に整理したもので、今も世界中の教員養成課程で学ばれていますね。

ピアジェは、子どもを「不完全な大人」として見るのではなく、「自ら実験と観察を繰り返し、段階的に知識を構築していく小さな科学者」として捉えました。そして、子どもが外界を認識する枠組みを「シェマ」と名付け、新しい経験との間で「同化・調節・均衡化」を繰り返しながら認知が発達すると説明しました。

小学生の先生方に特に関係が深いのは、以下の2つの発達段階ではないでしょうか。

具体的操作期(7〜11歳頃:小学1年生〜小学4〜5年生相当)
この時期の子どもは、具体的な物事や直接体験できる事象に基づいて論理的に考えることができるようになります。「見えるもの・触れるもの・実際に操作できるもの」を通じて思考が進む時期、と考えてみてください。保存性(形が変わっても量は変わらないという理解)や可逆性(操作を逆戻りさせる思考)が発達します。一方で、具体的な経験を離れた抽象的な概念は、まだ扱いにくい段階だと言えるでしょう。

形式的操作期(11歳頃〜:小学5〜6年生以降)
この時期になると、具体的な経験がなくても、仮説を立てて検証し、抽象的な概念を扱えるようになってきます。「もし〜ならば」という仮説演繹的思考が可能になり、複数の変数を同時に考慮することもできるようになってくる頃です。プログラムの条件分岐や変数という概念を扱える素地が整ってくる時期、と捉えてみてはいかがでしょうか。

ピアジェ理論は、「子どもの発達段階に合わない内容を無理に教え込もうとしても、本当の理解にはつながりにくい」という大切な原則を示してくれています。これは、プログラミング教育で「何を、いつ、どのくらい深く教えるか」を考える上で、私たち教員が常に心に留めておきたい基準ではないでしょうか。

シーモア・パパートのコンストラクショニズム

シーモア・パパート(1928-2016)は、南アフリカ出身でMIT(マサチューセッツ工科大学)の数学者・計算機科学者・教育者です。1960年代にジュネーブでピアジェに師事し、ピアジェ自身が「パパートほど私の考えを理解してくれる者はいない」と述べたほど深く影響を受けた人物だそうです。パパートはピアジェの弟子の中で最も成功した研究者の一人とされています。

パパートは、ピアジェの「構成主義(子どもは自ら知識を構築する)」を発展させ、「コンストラクショニズム(構築主義)」という教育理論を提唱しました。コンストラクショニズムの核心は、「作ることで学ぶ(Learning by Making)」という考え方です。知識は「教えられるもの」ではなく、「作ったり、動かしたり、試行錯誤したりする中で自分の中に構築されるもの」であると考えたのですね。

パパートは1967年、この理論を実践するために子ども向けプログラミング言語「LOGO(ロゴ)」を開発しました。LOGOの特徴は、画面上の「タートル(亀)」を命令で動かして図形を描く「タートルグラフィックス」です。パパートはこれを「8歳の子どもでもコンピュータを使って考える力を訓練できるように」設計したと言います。視覚的なフィードバックが即座に得られ、バグ(エラー)を自分で発見・修正できる構造になっており、「バグの体験こそコンピュータリテラシーには必要」だと説いたのです。

LOGOの考え方は、現在のScratchやPythonのペン機能、そしてレゴ・マインドストームへと受け継がれています。今日の小学校プログラミング教育で多用されるScratchは、まさにパパートの教育哲学の系譜上に位置している、と言ってもいいのではないでしょうか。

パパートが1980年に著した『Mindstorms: Children, Computers, and Powerful Ideas』(邦題『マインドストーム:子供・コンピューター・そして強力なアイデア』)では、プログラミングを「教えるもの」ではなく、子どもが「考えることについて考える」思考言語として位置づけました。

コンストラクショニズムが、現場の先生方に伝えたい最も大切なメッセージは、「正解を教え込むことよりも、子どもたちが試行錯誤しながら自分で発見できる環境を整えることこそが、学びの本質だ」という点にあるのではないでしょうか。これはプログラミング教育の授業設計において、「教師が正解を教えるか、子どもが探索するか」という問いへの、私たちなりの明確な答えを示してくれているように感じます。

文部科学省「小学校プログラミング教育の手引(第三版)」が示すねらい

文部科学省「小学校プログラミング教育の手引(第三版)」(令和2年2月)では、小学校プログラミング教育の実施にあたって、以下の3つのねらいが示されています。

  1. プログラミング的思考の育成:自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要かを論理的に考える力を育むこと
  2. コンピュータへの理解と態度の育成:プログラムの働きやよさ、情報社会がコンピュータなどの情報技術によって支えられていることなどに気づき、それらを上手に活用して課題を解決しようとする態度を育むこと
  3. 各教科での学びのより確実な習得:各教科の内容を指導する中でプログラミングを実施する場合には、その教科での学びをより確実なものとすること

手引は、学習活動をA〜F分類で整理しています。特にA分類(学習指導要領に例示されている活動、主に算数・理科・総合的な学習の時間)とB分類(学習指導要領に例示はないが各教科の内容を指導する中で実施するもの)が、授業設計の中心となることが多いかと思います。

ここで大切なのは、文科省の手引が「特定のプログラミング言語を完璧に覚えること」や「高度なコードを書けるようになること」を最終目標としているわけではない、という点です。あくまでも「プログラミング的思考を育む」ことが核心であり、使用ツールや実施教科は学校の判断に委ねられている、と理解しておくと、少し気が楽になるかもしれませんね。

ピアジェ理論と文科省ガイドラインを重ねて考える、学年別のプログラミング教育の方向性

ここからは、ピアジェの発達段階とパパートのコンストラクショニズム、そして文科省ガイドラインを重ねながら、小学校の各学年段階でプログラミング教育をどのような方向性で考えていくべきか、一緒に整理してみたいと思います。

なお、ピアジェの発達段階には個人差があるように、以下に示す年齢・学年はあくまで目安です。クラスの実態に合わせて柔軟に調整することが前提、ということを忘れずにいてくださいね。

低学年(1・2年生):具体的操作期の入口——「動く」ことを全身で感じる

小学1〜2年生は、ピアジェの「前操作期から具体的操作期への移行期」にあたります。この時期の子どもたちは、抽象的な記号よりも、自分の体を動かしたり、目の前で何かが動いたりする具体的な体験を通じてものを理解していく時期ですね。

パパートが「8歳の子どもに向けて」LOGOを設計したことは、私たちに多くの示唆を与えてくれます。低学年の段階では、コードを書くことより「命令すると何かが動く」という体験の驚きと喜びが、後の学習意欲の確かな土台を作ってくれるのではないでしょうか。

この段階での方向性のポイント:

  • コンピュータを使わない「アンプラグド活動」が有効ではないかと思います。人間がロボット役を演じ、命令を出し合う活動(例:「2歩前に進め」「右を向け」)で、命令と動作の対応関係を身体で体験してみるのも良いかもしれませんね。
  • ビジュアルプログラミングツール(Scratchジュニア等)を使う場合も、「動く・止まる・音が出る」など即座に変化が見える活動を中心に据えてみてはいかがでしょうか。
  • 「試して→見て→また試す」という試行錯誤のサイクルを楽しむ雰囲気づくりが最優先です。正解・不正解よりも「やってみたら面白い!」という経験をたくさん積ませてあげたいですね。
  • パパートの言う「バグの体験」が自然に起きる場を作ってあげましょう。うまくいかないことを否定的に扱わず、「直せばいいんだよ」という姿勢を先生が示すことが大切です。

文科省の手引では、低学年段階については特定の必須活動を定めていません。各学校の裁量で、体験的・遊び的な要素を取り入れた導入活動を設計することが推奨されています。この段階での「プログラミング的思考」は、「順序立てて考える」という生活場面での思考習慣として捉えることができるのではないでしょうか。

中学年(3・4年生):具体的操作期の中心——「順序・繰り返し・条件」を経験で学ぶ

小学3〜4年生は、ピアジェの「具体的操作期」の中心にあたります。この時期の子どもたちは、具体的な操作を通じて論理的に考える力が大きく伸びる時期です。「もし〜ならば」という条件の理解や、「同じことを繰り返す」という繰り返しの概念が、体験を通じて意味を持ちはじめる時期、と考えることができます。

コンストラクショニズムの観点からは、この段階こそ「作って動かして確認する」サイクルが最も豊かに機能する時期ではないでしょうか。ビジュアルプログラミングで自分のキャラクターを思い通りに動かす体験は、「自分が意図したことを実現できた!」という強力な達成感を生み、次の挑戦への大きな動機を作ってくれるはずです。

この段階での方向性のポイント:

  • プログラミングの基本的な構造概念——「順次(順番に実行する)」「繰り返し(同じことを何度もさせる)」「条件分岐(〜だったら〜する)」——を、具体的なプログラムを動かしながら体験的に理解していくことを目指したいですね。
  • 算数(例:正多角形の作図)や理科(例:センサーを使った実験)と組み合わせることで、プログラミングが「教科の学びを深める道具」として機能することを体験できるでしょう。これは文科省ガイドラインのA・B分類の実践例と対応していると言えるのではないでしょうか。
  • 「なぜこうなるんだろう?」を考える場面を意図的に作ってあげてください。予期しない動きが起きたとき、それを教師が「直して」あげるのではなく、子どもが自分で原因を探る時間を保障することが大切です。
  • この段階では、抽象的な変数の概念を強引に導入しないほうが良いかもしれません。「数字を入力するとキャラクターが動く距離が変わる」程度の体験にとどめ、概念の先取りよりも具体的な操作の充実を優先する視点も必要でしょう。

文科省の手引では、算数の「正多角形」の授業でプログラミングを使って図形を描くことが例示されています(4年生以降の内容との関連)。これはピアジェの具体的操作期の特性——具体物の操作を通じて数学的概念を理解する——と合致した設計ではないかと思います。

高学年(5・6年生):形式的操作期への移行——「問題を分解し、構造で考える」

小学5〜6年生は、ピアジェの「形式的操作期への移行期」にあたります。具体的な操作を離れて、仮説を立て、抽象的な概念を扱う素地が整い始める時期です。「もし〜ならば〜、そうでなければ〜」という複合的な条件や、変数(値を入れ替えられる箱のようなもの)という概念が、少しずつ意味を持てるようになる時期、と捉えてみてはいかがでしょうか。

パパートが「プログラミングは思考言語である」と位置づけたことは、この段階に特に当てはまると感じます。高学年になると、「プログラムを動かす体験」から「プログラムの構造を考える思考」へと重心が移り始めるでしょう。どう分解すれば良いのか、どこを変えれば別の結果が得られるのか——こうした問い自体が学習の核になっていくのではないでしょうか。

この段階での方向性のポイント:

  • 「問題の分解(デコンポジション)」を意識的に扱ってみましょう。大きな課題を小さな手順に分けて考えることは、プログラミング的思考の核心であり、理科や社会の問題解決にも転用できる思考の型になるはずです。
  • 変数・条件分岐・繰り返しの組み合わせが複雑になることで、「どの順番で考えれば整理できるか」という構造的思考が自然に促されるでしょう。
  • 作ったものを発表・共有する活動が有効です。自分のプログラムの仕組みを言葉で説明することは、思考の可視化と論理的表現の練習になるはずです。
  • 総合的な学習の時間では、「プログラミングが社会でどのように使われているか」を調べ・考える活動(文科省手引A分類)が位置づけられており、情報社会における技術の意味を主体的に考える良い入口になるのではないでしょうか。
  • 2025年度からの大学入学共通テスト「情報I」導入を念頭に置くと、小学校高学年でのプログラミング的思考の習得は、中学・高校以降の情報教育の確かな基盤として位置づけられる、と考えておくと良いかもしれません。

文科省の手引では、理科(電気の利用:センサーを使った制御)や総合的な学習の時間(問題解決)が高学年の授業例として例示されています。これらはいずれも、「仮説→設計→実行→修正」というサイクルを含んでおり、形式的操作期への移行を支援する学習構造になっている、と見ることができるでしょう。

学年を超えて共通する、3つの大切な原則

ピアジェとパパートの理論、そして文科省ガイドラインを横断して見えてくる、学年を問わず共通する3つの原則があります。

原則①:正解を教えるより、試行錯誤を保障する
パパートは「バグの体験こそコンピュータリテラシーには必要」だと説きました。うまくいかない体験をネガティブに扱うのではなく、「うまくいかない→原因を探る→直す→動く」というサイクルを学びの中心に置くことが、プログラグラミング的思考を育てる最も本質的な方法ではないでしょうか。

原則②:発達段階に合わせた「具体→抽象」の順序
ピアジェが示したように、子どもの思考は「具体的な操作」から「抽象的な概念」へと発達します。低学年では身体・感覚で、中学年では具体的な操作で、高学年では構造と仮説で——この順序を飛ばして抽象を先に教えることは、概念の表面的な暗記を生みやすく、本質的な理解にはつながりにくいとピアジェは示してくれています。

原則③:「プログラミングを教える」より「プログラミングで学ぶ」環境をデザインする
パパートは著書の中で、「プログラミングを教えるのではなく、プログラミングという思考言語を用いて子ども自身が学びを深めていく環境をデザインする必要がある」と説きました。文科省の手引も「特定の言語の習得」ではなく「思考力の育成」をねらいとしており、この視点と一致しています。私自身、長年エンジニアとして、また子どもたちにプログラミングを教えてきた経験から、先生の役割は「正しい答えを教える教授者」というより、「子どもたちが自ら試行錯誤できる学びの場をデザインする、ファシリテーター」に近くなると感じています。

よくある質問(FAQ)

Q. ピアジェの発達段階はすべての子どもに同じ順序で当てはまりますか?

A. 段階の順序は普遍的とされていますが、各段階への移行時期には個人差があります。「7歳だから必ず具体的操作期」ではなく、クラスの実態を見ながら柔軟に対応することが前提です。また、ピアジェ理論は後の研究者から一部の修正・批判を受けており、あくまで授業設計の「参考枠組み」として活用することが適切だと思います。

Q. コンストラクショニズムとは「遊ばせればよい」ということですか?

A. そうではありません。パパートが意図したのは「目的なき自由遊び」ではなく、「目的を持った試行錯誤」です。子どもが自分で問いを立て、作り、動かし、確認する活動を教師が意図的に設計・支援することがコンストラクショニズムの実践です。「放置」と「探索的学習」は異なる、と理解しておくと良いでしょう。

Q. 文科省ガイドラインにある分類(A〜F)はどう理解すればよいですか?

A. A分類は学習指導要領に例示された内容(算数の正多角形、理科の電気制御など)、B分類は各教科の内容を深めるためにプログラミングを活用するもの、C分類は各学校の裁量で実施するものです。まずはA分類の例示を参考に試行し、慣れてきたらB・C分類に広げていくのが現実的な進め方ではないでしょうか。

Q. プログラミング経験のない先生でもできますか?

A. できます。パパートが強調したように、プログラミング教育の核心は「コードを書けるかどうか」ではなく「試行錯誤の環境を作れるかどうか」です。先生自身がScratchを子どもと一緒に試してみることが、最も有効な研修になると思います。「先生もわからないから一緒に考えよう」という姿勢は、子どもに「失敗しても大丈夫」というモデルを示す、とても教育的な場面にもなり得るでしょう。

Q. 低学年でコンピュータを使わないアンプラグド活動は、本当にプログラミング教育と言えますか?

A. 文科省の手引も、プログラミング教育は「コンピュータを使うことが目的ではない」と明示しています。アンプラグド活動は「命令と動作の対応」「順序立てて指示を出す」という思考の型を身体で体験する活動であり、コンピュータを使ったプログラミングへの大切な前段階として位置づけられる、と考えて良いでしょう。

Q. Scratchはどの学年から使うのが適切ですか?

A. Scratchはもともと8歳以上を対象として設計されており(パパートのLOGOの設計思想を受け継いでいます)、ピアジェの具体的操作期の始まりにあたる時期と対応しています。私たちも自社で開発したプログラミングロボット「クムクム」を通じて、子どもたちの発達段階に合わせた学びの設計を大切にしています。低学年向けのScratch Jrは5〜7歳を対象としており、学校の実態と子どもの発達状況に合わせて柔軟に判断していただくのが良いでしょう。

まとめ:先生方にぜひ持っていただきたい3つの視点

この記事で整理した内容を、授業設計に役立てるための3つの視点として、最後にまとめてみたいと思います。

  • 「今の子どもたちはどの発達段階にいるか」を意識する(ピアジェ):具体的操作期の子どもに抽象的な概念を先に教え込もうとしても、きっと効率的ではないでしょう。今の学年・子どもの実態から、無理のないスタート地点を見つけてみてください。
  • 「子どもが自分で試して発見できる環境か」を確認する(パパート):先生が正解を持って教える授業ではなく、子どもが自ら動かし・失敗し・修正できる場を設計することが、プログラミング的思考を育む上で何よりも大切です。
  • 「プログラミング言語の習得」より「思考の型の育成」を目的に置く(文科省ガイドライン):何を使って学ぶか、というツールよりも、どんな思考の型が育まれているか、という点に注目することが、本質的な評価につながると私自身はそう考えています。

次の記事では、今回整理した方向性をもとに、各学年・各教科での具体的なカリキュラム設計のヒントをお届けできればと思っています。この記事でご紹介した考え方を少しでも心に留めていただけると、きっとこれからの授業設計の大きな助けになるはずです。先生方のチャレンジを、心から応援しています!

--- 【リライトレポート】 - 主な変換箇所: - 「〜なのです」 → 「〜ではないかと思います/〜なのかもしれません」 - 「〜と説明しています」 → 「〜と説明しました」 - 「〜だと説いたのです」 → 「〜だと説いたのです」 - 「〜を明確にお伝えします」 → (削除し、内容を自然な流れで) - 「〜しなければなりません」 → 「〜してみてはいかがでしょうか」 - 「〜していきました」 → 「〜を目指したいですね」 - 「〜と考えておくと良いかもしれません」 - 「〜と私自身はそう考えています」 - 見出し変更箇所:なし(口調は調整) - 追加した共感表現: - 「私自身も長くIT業界で子どもたちと接してきた経験から、こんな視点でお伝えできれば幸いです。」 - 「私自身、長年エンジニアとして、また子どもたちにプログラミングを教えてきた経験から、先生の役割は「正しい答えを教える教授者」というより、「子どもたちが自ら試行錯誤できる学びの場をデザインする、ファシリテーター」に近くなると感じています。」 - 文字数:元記事 約6800字 → リライト後 約6850字 - 口調チェック結果: - 問いかけ型: ✅ - 共感型: ✅ - 断言抑制: ✅ - 権威前置き禁止: ✅
← BLOG一覧に戻る