この記事は約 8 分で読むことができます。
1.プログラミング必修化までの経緯
日本では、2020年より小学校でのプログラミング教育が必修化され、全国各地で導入に向けた準備が進んでいますが、政府はどのような経緯でプログラミング教育の導入・必修化に向けた取り組みを始めたのでしょうか。
小学校・中学校(初等・中等教育)でのプログラミング教育の実施については、2013年の日本政府発表の「世界最先端IT国家創造宣言」ではじめて述べられています。
それ以降、日本でも民間のプログラミング塾などが活発化していきました。一方、小学校・中学校では、現在の学習指導要領が完全実施されてから間もないこともあり、あまり大きな動きは見られませんでした。
しかし、2016年4月の第26回産業競争力会議で、安倍総理がプログラミング教育の必修化を宣言し、大きく動きが変わりました。
政府はプログラミング教育を、これから来るであろう第4次産業革命を牽引するためと見ています。第4次産業革命とは、18世紀末以降の水力や蒸気機関による工場の機械化である第1次産業革命、20世紀初頭の電力を用いた大量生産である第2次産業革命、1970年代初頭からの電子工学や情報技術を用いた一層のオートメーション化である第3次産業革命に続く、大きな技術革新のこととされています。
IoT(モノのインターネット)およびビッグデータ、AIなどが第4次産業革命を牽引する技術としてあげられていますが、このような技術を駆使して日本が国際競争力を勝ち抜いていく人材を育てる意図が、プロミング教育の推進にあるといえます。
2.これまでの日本のプログラミング教育の歴史
1989年~
選択制ながら、義務教育でのプログラミング教育が始まる
日本におけるプログラミング教育を含む情報教育は、1960年代以降から工業、商業、情報など職業に関する教育を行う専門高校において、職業教育的アプローチに基づく情報処理教育としてスタートしました。
さかのぼると1970年公示の高等学校のの数学科の学習指導要領において初めて、普通教育でのプログラミングに関する記述がなされています。その後、1989年に公示された学習指導要領で義務教育として初めて、普通教育でプログラミングに関する記述がなされました。中学校の技術・家庭科と、高等学校の数学科においてです。
中学校の技術・家庭科で学習する内容は、地域や学校の実態および生徒のと特性等に応じて、A~Kまでの11の領域のうちから、7以上の領域を履修させる事となっています。
そのうち「A 木材加工」「B 電気」「G 家庭生活」「H 食物」の4領域が、必修領域でした。プログラミングを学ぶ「F 情報基礎」は選択領域で、選択するかどうかは学校の判断となっていました。
当時の中学校技術・家庭科で実施されていたものは、プログラムによって絵を描く授業や、技術分野の領域と関連する「ものづくり」を意識した計測・制御など、幅広いものでした。教育環境として用いられたプログラミング言語は、BASICやLOGOなどがありました。
BASIC
初心者向けプログラミング言語として1970年代以降のコンピューターで広く使われていた。
LOGO
1967年に8~12才の児童に向け設計された教育用プログラミング言語。関数型プログラミング言語のようにプログラムを記載できる他、タートルと呼ばれる画面上のカーソルの動きと線描を命令することでプログラムに基づいたグラフィックを画面上に生成できる。
高等学校の数学Aおよび数学Bについては、既修の内容に関する数学の問題をコンピューターに実行させる程度の内容を扱っており、事象を数学的に考察し処理する能力を育てることが目標となっていました。
こちらも中学の技術・家庭科同様、選択科目で、つまり中学校・高等学校ともに、すべての生徒に教えていたわけではありませんでした。
1998年~
高校に「情報」が追加も、履修率約7%
その後、1998年に改訂された学習指導要領で、新たに高等学校において、教科「情報」が制定されました。教科「情報」は、「情報A」「情報B」「情報C」の3科目がおかれ、いずれか一つを実施すればよいことになりました。また数学科でも内容の整理が行われ、「数学B」で数値計算を対象にしたプログラミングが実施されることになりました。
このように、1998年から高等学校では情報教育を専門に扱う教科「情報」が設置され、そのうち「情報B」においてはプログラミングを教えることになりましたが、選択科目であるため、ここでもすべての高校生がプログミングを体験するわけではありませんでした。
2008年の筑波大学の調査によると、2007年時点でにの各科目の教科書採択率は「情報A」が81.8%、「情報B」が7.2%、「情報C」が11%でした。つまり、高等学校でプログラミングを学んだ生徒はたった7%弱であったと考えられています。
1998年から中学校の技術・家庭科においては「情報とコンピュータ」が必修となり、すべての中学生が情報について学びました。しかし、科目内での学習項目の中でプログラミングは選択項目であったため、一部の生徒が学んだという状況は、これまでと変わりありません。
2008年~
中学で必修化
2008年に改訂された現在の学習指導要領からは、中学校技術・家庭科の「情報に関する技術」内のプログラミングも必修化されるようになりました。これにより、すべての中学生がプログラミング教育を受ける環境が整いました。
また、翌年の2009年に改訂された高等学校の学習指導要領からは、教科「情報」は、「社会と情報」と「情報の科学」に再編成され、プログラミング教育は「情報の科学」において実施されています。そして、2020年からは小学校段階からもプログラミング教育が必修となるのです。
3.小学校で必修化された場合の授業の実際
たとえば算数の場合、例示として学習指導要領に、
第3 指導計画の作成と内容の取扱い
2 第2の内容の取扱いについては、次の事項に配慮するものとする。
(2)数量のや図形についての感覚を豊かにしたり、表やグラフを用いて表現する力を高めたりするなどのため、必要な場面においてコンピュータなどを適切に活用すること。
また、第1章総則の第3の1の(3)のイに掲げるプログラミングを体験しながら論理的思考力を身に付けさせるための活動を行う場面には、児童の負担に配慮しつつ、例えば第2の各学年の内容の[第5学年]の「B図形」の(1)における正多角形の作図を行う学習に関連して、正確な繰り返し作業を行う必要があり、更に一部を変えることでいろいろな正多角形を同様に考えることができる場面などで取り扱うこと。
と記載されています。
この場合の教材としては、図形を描けるプログラミング言語や、自走ロボットなどがあります。ただし、正多角形をプログラミング言語でどのように描かせるのかの視点に注意する必要があります。
たとえば、Scratchというプログラミングツールで正四角形を描く場合、スプライトと呼ばれるキャラクターにペンを持たせて前進と回転を組み合わせることで図形を描くことができます。正四角形を描くプログラム例としては、100歩前進し、反時計周りに90度回転を4回繰り返します。
正五角形を描かせるには、100歩前進、反時計周りにに72度回転を5回繰り返します。
このように正多形をプログラムで描くには、前進と回転を、辺の数だけ繰り返せばよいことになります。ただし、この考え方には注意が必要です。プログラムでは、回転する角度が内角ではなく、外角で設定します。正四角形では、外角と内角は角度は同じ角度ですが、それ以外の正多角形では異なります。
この違いを伝えて理解させないと、プログラムを教科の学習内容と関連付けて理解できません。
同様に、自走式ロボットなどでも注意すべき点があります。自走式ロボットで正五角形を描く場合、機械的特性を事前に把握しておくことが必要となります。安価な自走式ロボットでは、タイヤと床面の抵抗、モーターの特性、ギアや駆動機構の作りなどでも、左右どちらかに曲がってしまう問題が多く発生します。
その場合、最初のスタートした点と、ロボットが描いた最後の点が一致しないなど、正しいプログラムなのに不完全な図形になる場合があります。こういった問題はプログラムで調整できない場合もあり、ハードウェアの調整を行う知識も必要になる場合もあります。
まとめ
今回は、日本におけるプログラミング教育の歴史と、小学校で必修化された場合の授業の実際についてまとめてみました。プログラミング教育については、今後も記事を書かせていただきたいと思います。
参考
松村太郎、山脇智志、小野哲生、大森康正(2018)『プログラミング教育が変える子どもの未来 AIの時代を生きるために親が知っておきたい4つのこと』翔泳社.
経緯をわかりやすくまとめた記事をありがとうございます。
Facebook で紹介したところ、私の周りの方が十数件シェアなさいました。
人気のある記事だけに、より正確な記述にするとよいのでは、と思う部分があります。
細かな部分ではありますが、確認させていただけますでしょうか。
コメントありがとうございます。
まだまだ勉強の途中ですが、読んで頂き感謝しております。
具体的に、どの部分が不正確なのか、ご指摘頂いてよろしいでしょうか。
1および2については、参考として示された書籍をあたっていないのではっきりと言えないのですが、私の周囲に1990年代当時からの中高の先生だった方や実情を知る方がおられて何点か指摘がありました。可能であれば DM でお知らせいたします。
3の「たとえば算数の場合、正多角形の作図を行う学習に関連して、図形を描けるプログラミング言語や、自走式ロボットを用いてプログラミング作業を行う事例が、学習指導要領に記載されています。」についてですが、学習指導要領に当該事例は記載されていないと思います。
また、「プログラム教科の学習内容と関連付けて理解できません。」についてですが、これはもしかして、「プログラミングの体験と教科(算数科)での学習内容を関連付けて理解することができません。」ということでしょうか。それとも「プログラミング教科」というものがあるのでしょうか。
平成29年告示の小学校学習指導要領には、算数の「指導計画の作成と内容の取扱い」という項目において、
(2)数量や図形についての感覚を豊かにしたり、表やグラフを用いて表現する力を高めたりするなどのため、必要な場面においてコンピュータなどを適切に活用すること。また、第1章総則の第3の1の(3)のイに掲げるプログラミングを体験しながら論理的思考を身に付けるための学習活動を行う場合には、児童の負担に配慮しつつ、例えばだ2の各学年の内容の〔第5学年〕の「B図形」の(1)における正多角形の作図を行う学習に関連して、正確な繰り返し作業を行う必要があり、更に一部を変えることでいろいろな正多角形を同様に考えることができる場面などで取り扱うこと。
との記載がありますが、そのことがプログラミング教育に関連しているのでしょうか。
http://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2018/05/07/1384661_4_3_2.pdf
お示しいただいた箇所が、新学習指導要領でプログラミングの体験が例示されている部分であるというのはご認識のとおりです。
しかし、
「図形を描けるプログラミング言語」
や
「自走式ロボットを用いてプログラミング作業を行う」
という記載はございません。
すみません、「プログラミング教科」ではなく、「プログラム教科」でしたね。
ご指摘ありがとうございます。
ご指摘のところを修正していおきました。
確認をお願いします。
ありがとうございました。
ご対応いただき、ありがとうございます。
より正確な表現になったと思います。