小学校プログラミング

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

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

プログラミング教育を担当することになったとき、「どの学年で何をどこまでやればいいのか」という問いは、多くの先生が最初に感じる疑問ではないでしょうか。

文部科学省の「小学校プログラミング教育の手引(第三版)」は、ねらいや学習活動の分類を示していますが、「なぜその学年でその内容なのか」という発達的な根拠まではあまり詳しく触れていません。

この記事では、その「なぜ」を解くための2つの理論的支柱を紹介した上で、文科省のガイドラインと照らし合わせながら、学年ごとのプログラミング教育の方向性を整理します。具体的なカリキュラムの設計については別の記事で扱いますので、この記事では「思考の枠組み」を提供することを目的としています。

プログラミング教育の「なぜ」を解く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つの視点としてまとめます。

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

次の記事では、これらの方向性をもとに、各学年・各教科での具体的なカリキュラム設計の考え方を扱います。この記事で整理した枠組みを頭に置いた上で読んでいただくと、具体的な授業設計の判断がしやすくなります。

← BLOG一覧に戻る