変革期を迎えるプログラミング教育!教育の目的や先取り学習方法

学習方法

小中高校のプログラミング教育は変革期の真っ只中にあります。プログラミング教育の必修化が2020年に小学校で始まり、2021年の今年は中学校の全学年、来年2022年からは高校でも始まります。

また、2025年からは大学入試の対象にもなるなど、大きな変化が起きていきます。

必修化の目的は何でしょうか。現在、教育現場での取り組み状況はどうなっているのでしょうか。また、このような動きを先取りした学習方法にはどのようなものがあるのでしょうか。これらの様々な疑問点に答えていきます。

そもそもプログラミングってどういう意味?

コンピュータをビジネスに利用している写真

プログラミングとはコンピュータに命令を与えることです。

「コンピュータに命令を与える」とはどういうことでしょうか? コンピュータを目にしたり、マウスやキーボードなどを操作してコンピュータでWeb検索やワープロ、Excelを使った経験があり、分かっているつもりの方が多いでしょう。

しかし、あらためて「コンピュータに命令を与える」といわれいみると「命令」という言葉が分からず、戸惑ってしまう方も多いと思います。そこで、そもそもコンピュータが何なのか、改めて考えてみましょう。

コンピュータという言葉の語源は「計算をする人」です。2014年に公開された映画「イミテーション・ゲーム/エニグマと天才数学者の秘密」の中でも「計算する人」が登場しています。

この映画の場面は第二次世界大戦中のイギリスです。イギリス情報部の暗号解読センターに、大勢の理系女子が駆り出されていました。

彼女らは、コンピ―タと呼ばれ、足し算・引き算・掛け算・割り算などを繰り返すことで暗号を解読していたのです。

現在のコンピュータは、電子的な機械で電子計算機と呼ばれています。使われ始めたころは、多くの会社で売上の集計などに使っていました。

筆算で売上を集計をする場合を思い出してみましょう。最初に、売上欄と合計欄のある集計表を用意し、予め売上欄には金額を書き込んでおきます。次に、表の上から順番に「売上を直前行の合計に足し算して、結果をその行の合計欄に記入する。記入したら次の行に進む」という処理を繰り返します。

電子計算機でも同様なことを行います。電子計算機の記憶装置上に用意された集計表を使って同様な処理をします。具体的な手順は、「集計表を記憶装置に用意する」[売上を直前行の合計に足し算して、その行の合計欄に記入する][次の行に進む][最終行まで処理したら終了する]です。

[]で示した1つ1つが「命令」で、「命令」をならべたものがプログラムです。プログラムを作る作業がプログラミングです。

電子計算機は、計算以外にも幅広い分野で情報処理する使い方が増え、今ではコンピュータと呼ばれることが多いです。身近なところでは、ノートパソコンやスマートフォンなどはコンピュータです。

プログラミング必修化の目的

iPadを使った小学校の授業風景

文部科学省が2019年5月公表した「小学校プログラミング教育の概要 1」に背景と目的が、「小学校プログラミング教育の概要 2」に学習活動の分類と指導例が書かれています。

必修化の背景にあるのは、「情報化やグローバル化が人間の予測を超えて進展し、人工知能(AI)やインターネットにより社会や生活が大きく変化し、今後10~20年後には現在就いている仕事の半数近くが自動化される可能性が高い」との予想です。

この予想を背景に、「予測できない変化を前向きに受け止めて、『主体的に向き合い・関り合うことで、可能性を発揮して、よりよい社会と幸福な人生の創り手となる』力を子供たちに育む」と必修化の目的が述べられています。

また、文部科学省が2020年2月に公開した「小学校プログラミング教育の手引き(第三版)」の中では、プログラミング教育導入の理由として、

  • プログラミングを経験させることで、コンピュータに自分の求める動作をさせることができるようになる。
  • コンピュータは魔法の箱でなく主体的に取り組むことのできる対象であることを理解できるようになる。
  • プログラミング教育は子供たちの可能性を広げることにもつながる。

ことなど掲げています。また、早期プログラミング教育の効果として、「プログラミングの能力を開花させ、創造力を発揮して、起業する若者や特許を取得する子供も現れている」実態を掲げています。

また、この手引きの中で小学校プログラミング教育のねらいは、

  • 児童に、「コンピュータに意図した処理を行うよう指示することができるということ」を各教科等で体験させる。
  • 「知識及び技能」「思考力、判断力、表現力等」「学びに向かう力、人間性等」などの情報活用能力に含まれる資質や能力を育成すること。
  • 各教科等での学びをより確実なものとする。

であるとしています。

プログラミング的思考とは

コンピュータの詳細な動きを考えている写真

先に指摘した「思考力、判断力、表現力等」を育むにはプログラミング的思考を鍛えることが必要だとしています。

小学校プログラミング教育の概要 1や小学校プログラミング教育の手引き(第三版)の中で、プログラミング的思考について次のように述べています。

プログラミング的思考とは、

  • コンピュータにさせる全体行的な動きを考える
  • そのためには、コンピュータにさせる詳細な動きとその順序を考える
  • 詳細な動きを命令に置き換える
  • これらの命令をどのように組み合わせれば自分が考える動作を実現できるか考える、
  • その命令の組み合わせをどのように改善すれば意図した動作により近づくか考える

といったことを論理的に考えていく力であるとしています。

プログラミング的思考を鍛える

学校プログラミング教育の手引き(第三版)では、「コンピュータに意図した処理をさぜるためには論理的な思考力を身に付ける」学習活動が必要だと言っています。

そこで、前節の「コンピュータにさせる全体行的な動きを考える」の一例として「正多角形の作図する」場合を考えてみましょう。

 小学校プログラミング教育の概要2の実戦事例として、「算数」第5学年で学ぶ「正多角形の作図」が紹介されています。算数の時間に習う方法とプログラミングでは作図の仕方が異なる点に注意しましょう。詳細はこの節の後半で説明します。

正多角形は「辺の長さが全て等しく、角の大きさが全て等しい多角形」と定義されています。

算数の作図時間では、この定義からかけ離れた方法で作図しています。プログラミング的思考でいう「コンピュータにさせる全体行的な動きを考える」の部分が論理的に行われていないのです。

これに対し、プログラミングでは、この定義通りに作図を進めれば、目的の正多角形が作図ができるというアプローチです。定義があるのですから、その定義通りに作図することが論理的です。このように考えれば、どういう風に作図するか悩むことはありません。

 この例から分かることは、プログラミング的思考とは「与えられた課題を理解して、その課題解決に向いたストレートなコンピュータの動かし方をすればよい」ということです。思考を巡らし、難しく考える必要は無いのです。

筆者の経験から言えることは、プログラミングの大部分は、このような思考法でよいです。ただし、ものすごく処理時間がかかって実用的でない部分については、例外として思考を巡らせればより短時間で処理できる方法が見つかるかもしれません。

【算数の時間に習う方法】

コンパスと分度器を使って次のように作図します。コンパスで円を描き、半径を一本描きます。円の中心角を例えば正六角形ならば中心角を6等分しますから、中心角は60°になります。

最初の半径から分度器で測って60°のところに中心から円周へ直線を引きます。今引いた線から60°のところに再度中心から円周へ直線を引きます。

これを繰り返して6本の線とします。6本の線と円周が交わったところが正六角形の頂点となります。最後に、隣接する頂点同士を直線で結べば正六角形が完成します。

【プログラミングで習う方法】

正多角形は「辺の長さが全て等しく、角の大きさが全て等しい平面図形」と定義されています。プログラミングでは、定義に示された通りの手順で作図します。

例えば、辺の長さ10の正六角形の場合です。正六角形の隣接辺の間の角度は算数の授業で習った通り120°です。プログラミングによる作図では、長さ10の直線を引き、その先端120°の方角に長さ10の直線を引く、・・・・、という動作を6回繰り返します。

6回繰り返したところで、最初の線の始点が最後の線の終点と重なり、正六角形の作図は完了します。

IT人材の育成

学校プログラミング教育の手引き(第三版)によれば、小学校のプログラミング教育がめざすのは、プログラミング技術やプログラミング言語を習得した人材ではありません。

プログラミング教育で目指す人材は、次のようなことに気付き、理解し、考え、実践し、プログラミング的思考ができる人材です。

  • コンピュータは日常生活の様々な場面で使われ、生活を便利にしていることに気付く
  • コンピュータには得意なことと、得意でないことがあることを理解
  • コンピュータがプログラムで動いていることを理解
  • プログラムを人間が作っていることを理解
  • コンピュータを人間が意図したように指示して動かすことができることを理解
  • 身近な問題を解決するために、コンピュータを活用しようと考える
  • コンピュータ等を活用して、より良い社会を築こうと考える
  • 他の人と一緒になって取り組み、ねばり強くやり抜く
  • 他の人が作ったプログラムをコピーしない
  • コンピュータウィルス対策をおこない、情報が漏れないよう気を付ける

他教科の学習内容のさらなる理解

小学校プログラミング教育の概要2の実戦事例として、「理科」第6学年で学ぶ「電気の性質や働きを利用した道具」の単元で、パソコンで機器を制御する「コンピュータ制御」の実験することが紹介されています。

実験では、ノートパソコンと扇風機、人感センサー、照度センサーを使い、人の有無や明るさによってノートパソコンで自動的に扇風機のオン・オフを制御するプログラムを組みます。

この実験を通じて、プログラミングを体験できます。また、センサーの働きに対する理解が深まり、センサーを日常生活の中で上手な使って、電気を効率良く使うにはどうしたら良いかを考える機会にもなります。

プログラミングの現在の教育事情は?

自動車ロボットをコンピュータで動かす様子

文部科学省の公開している中学校技術・家庭科(技術分野)内容「D 情報の技術」の中にある事例1-1 D情報の技術 研修(D!)の中でプログラミング教育について、小学校・中学校・高等学校で行う情報教育について書かれています。

小学校のプログラミング必修化の目的にでてきた、「『知識及び技能』『思考力、判断力、表現力等』『学びに向かう力、人間性等』など情報活用能力に含まれる資質や能力を育成する」は小中高教育に一貫するものです。

この中で、小学校では「全教科でプログラミング的思考を育む学習」を行い、中学校では「技術教育の一部として情報教育」を行うとされています。また、高等学校は「共通教科情報または専門教科情報の中で、高度のプログラミング学習への橋渡しの役割」を持つとされています。

小学校の導入例

2020年2月公開された「小学校プログラミング教育の手引き」の改定(第三版)の中に始動例が追加されました。その始動例は、総合的な学習の時間において「プログラミングが社会でどう活用されているか」に焦点を当てて企業と連携しながら行うというものです。

従来の指導例は、算数や理科などの教科に限られていたのですが、選択の幅が広がりました。

そこに掲載されている指導例として、「自動車メーカーと連携した例」と「住宅メーカーと連携した例」、「インターネット関連企業と連携した例」があります。

以降では、自動車メーカーと連携した例を詳しく紹介しましょう。社会科と連携して、本田技研のセーフティトレーニングセンターを訪問し、自動車が今後どう発展していくのかヒアリングしました。その際、安心安全な自動車の鍵を握るのはセンサーとプログラミングであることを知ったそうです。

後日、プログラミングと自動車型ロボットを使って衝突回避のプログラミングを体験し、仕組みを理解したそうです。そこで、模造紙で作った街の中を自動車型ロボットを走らせ、目的地に行って帰ってくるプログラムを作ることにしたそうです。

これらの体験を通じて、「自動車型ロボットを思い通りに動かすには様々な命令を順序を変えて組まなければならないことが分かった。思い通りに動いたので達成感があった。」などの感想が児童から寄せられているということです。

プログラミングにはIPADを使い、ビジュアル言語を使ってプログラミングしたそうです。

中学校の導入例

新学習指導要領が2021年度から全面実施になり、中学生の全学年でプログラミング学習が行われるようになりました。

中学校では、小学校で学んだ計測・制御とは別に双方向性のあるコンテンツやネットワーク・データ処理に関するプログラミングも学びます。

次に次に導入事例を紹介しましょう。この事例は、人型ロボット(ペッパー)を活用したプログラミング学習により地域密着型の課題解決したもので、2020年10月に第35回時事通信社「教育奨励賞」特別賞を受賞したものです。

この中学校では「総合的な学習の時間」にプログラミング教育を採り入れ、生徒が自ら決めたテーマに沿った課題解決学習を実戦しています。教科書も正解もなくアイデア勝負でゴールを目指すプログラミング思考を通じて型にはまらない自由な発想を引き出しているそうです。

2017年2月にソフトバンクグループの社会貢献プログラムに採択され、ペッパーを活用した本格的なプログラミング学習がスタートしたそうです。

高校の導入例

高等学校学習指導要領(平成30年告示)解説によれば、「共通教科情報科」と「専門教科情報科」の2系統があります。

【共通教科情報科】

各学科に共通する教科で、情報Ⅰと情報Ⅱに分かれています。

情報Ⅰは必修科目で情報活用が多くを占めています。その一方で、コンピュータの仕組みを理解し、プログラミングやシミュレーションによって問題を発見・解決する活動を通して知識や技能を身に付けることを求めています。

情報Ⅱは選択科目で、情報社会やコミュニケーション、データサイエンスが多くを占めていますが、プログラミング関係ではシステム開発の進め方の理解が求められています。

【専門教科情報科】

主として専門学科において開設される教科です。実践的・体験的な学習を行い、職業人に必要な資質と能力を育成することが求められます。情報セキュリティや情報テクノロジーなどの他、プログラミングは、ネットワークやデータベース、コンテンツ制作などとともに実習科目の1つになっています。

なお、2022年度から導入される学習指導要領で情報Ⅰが必修になることを受けて、プログラミングや情報リテラシーを扱う情報科目が2025年からの大学受験に追加することになっています。

次に、商業科で行った「情報Ⅰ」のプログラミング授業の事例を紹介しましょう。

これは、これは商業科と情報科のある高校の事例で、プログラミング授業は情報科と兼任する先生が行ったそうです。この学校では、2年次に選択科目してプログラミング授業を行っています。

商業科目の検定試験ではJavaまたはVBAのマクロ言語が必要なので、VBAのマクロ言語の実習をしました。この中で、ループ、カウント、条件分岐、配列という基本的なプログラミングの考え方を学ぶことを心がけたということです。

商業科なので実践を重んじ、練習問題は商品コード、単価、数量からなる売上表を入力して、売上合計金額や平均金額などを計算し、決算結果を画面表示するシンプルなものでした。

プログラミングを先取り学習したい!という方へ

高度な数学問題を処理するプログラムを作っている様子

小・中学生の子供を抱えた親は、プログラミングに関心を持たせることや将来プログラミング言語を学ぶための足掛かりをつけさせたいと考えているのではないでしょうか? 高校生の場合は、自身がもう少し本格的にプログラミングを勉強したいと思う方が多いと思います。

先取り学習は小・中学生を対象としたものと、高校生を対象としたものでは全く異なりますので、詳しく見ていきましょう。

小・中学生の場合

ビジュアルプログラミング言語としてScratchとViscuitをここでは紹介します。

Scratchはコンピュータに命令する体験ができ、将来プログラミング言語を学ぼうと考える方の入門として最適です。

Viscuitは、細かな命令でなく「なになにしたい」という考えを、ビジュアルな操作でコンピュータに直接与えて、ゲームや動画を作成します。Scratchを含む様々なプログラミング言語では、「なになにしたい」を実現することもプログラミングの対象になります。

ゲームや動画を作る場合、色々な「なになにしたい」が必要になりますが、Viscuitを使えば簡単にゲームや動画を作ることができることが分かるでしょう。ゲームや動画の作成が簡単にでき、創造力を養うのに役立つでしょう。

Scratch(スクラッチ)

世界中の学校やプログラミングスクールで初心者学習用に使用されているビジュアルプログラミング言語です。

Webで自由に使うことができます。自分だけのゲームやアニメを作ったり、作ったものを公開したり、他の人が作ったゲームで遊んだりできます。

プログラミング言語を憶えたり文字を入力したりする必要がなく、マウスやタッチ操作だけでブロック遊びをしている感覚でプログラムを組めるのが特徴です。

Scratchを立ち上げると、4分割された画面が表示されます。画面右上は作ったアニメやゲームを表示させる部分です。

画面右下にはアニメやゲームに登場させるキャラクターが控えています。ここで、猫のキャラクターを選択すると、画面右上の中央に猫が表示されます。画面左には複数のブロックがあり、その表面に「10歩動かす」「15度右に回す」など書いてあります。

画面中央はキャラクターの動きを指示するところです。今、猫が選ばれているので猫の動きを指示することになります。画面左からブロック「10歩動かす」を選んで画面中央に置けば、画面右上の猫が10歩移動します。

Scratchは、自由度が高いので高度で複雑なゲームを作ることもできます。このため、中学生にもおすすめです。

Scratch

Viscuit(ビスケット)

自分で描いた絵をビジュアルに動かすことでプログラミングできます。

例えば、魚の絵を描いたとします。ビスケットではメガネという機能を使って動きをコンピュータに教えます。メガネの左レンズの中央に魚を置いたとします。右レンズには、少し時間が経った後の魚の位置や泳ぐ向きが変わった魚を置きます。右レンズと左レンズにある魚の位置や向きに違いがなければ動きが無いことを意味します。

この際、右レンズには左レンズの位置のズレが大きいほど高速に移動し、回転角が大きいほど高速回転すると解釈され、そのメガネを取り消すまで同じ動きを継続します。

Viscuitは、使い方でLOGICやART、COMPUTER SCIENCEまで幅広い用途があり、子供から大人まで楽しめます。

ビスケット Viscuit

高校生の場合

高校生が独学でプログラミングを学ぶ場合、お薦めのプログラミング言語は次のものです。

  • HTML/CSS:Webサービスで用いられることの多い言語で学習のハードルは低いです。
  • JavaScript:Webページで使われる言語で、有用性が高いです。
  • PHP:Webサーバー用の言語です。HTML/CSSを覚えてから勉強しましょう。
  • Python:AIやインターネット、IOTなどの開発に使われる言語です。
  • Ruby:日本発の言語で、シンプルな文法で豊富な動作環境が特長です。

これらの言語は以下の方法で学ぶことができます。

Progate

初心者向けのプログラミング学習サイトで、プログラミング学習の登竜門として普及し、今では100以上の国で200万人以上のユーザーがいます。基礎レベル(HTML初級編とRuby基礎編)は18レッスンです。、それ以上のレベルには70レッスンあり、有料で月額1078円です。

レッスンでは、スライドの説明を見てインプットしたり、実際にコードを書いて理解度を確認したり、書いたコードと利用者の書いたコードの比較をおこないます(これは、きれいにコードを書く癖をつけるためです)。

Progateのレッスンは、人気の高い順にHTML&CSS、JavaScript、Python、Ruby on Rails5、Javaとなっています。このランキングには社会人も含まれていますのでご注意下さい。

Progate

ドットインストール

全てのレッスンを3分程度の動画で提供しています。457レッスンを4881本の動画で配信しており、スマホで見ることもできます。たとえば、Webサイトを作れるようになるには、15レッスンを視聴する必要があり、動画の数は208本です。

無料会員と有料会員があり、まずは無料会員で試してみて有料会員に切り替えるとよいでしょう。有料会員の月額は1080円です。

ドットインストール 3分動画でマスターできるプログラミング学習サービス

中にはスクールに通う人も

高校生向けのスクールがあり、学校のプログラミング学習についていけるように通う人や、身近なWebアプリ作りに興味をもって通う人、将来エンジニアになる夢をもって通う人もいます。これらのニーズを背景に、高校生を対象として様々な特長をもつプログラミングスクールがあります。

まとめ

プログラミング必修化は小学校からスタートし、今年2021年からは中学校で全面実施になりました。来年2022年から高等学校でも始まり、2025年には大学入試にも出題されるようになります。

必修化の目的は、人工知能やインターネットで社会や生活が大きく変化し、現在就いている仕事の半数近くが自動化される10~20年後を見据えて、主体的に向き合い・関り合うことで、よりよい社会の担い手となり、幸福な人生をおくれる能力を培うことです。

小学校や中学校では取り組み中で、先行して取り組んでいる高校も一部あります。プログラミングの先取り学習したいというニーズに応えて、小学生から高校生までを対象に様々な教育サービズが提供されています。

自力でWebサイト制作やWebアプリ開発ができるようになるスクール

「自力でプログラミングで何か作れるようになりたい!」「いつか、プログラミングを使って稼ぎたい!」

このように思っている方にぴったりなスクールが、COACHTECHです。

COACHTECHはフリーランス特化型のスクールで、自力でWebサイトの制作やWebアプリ開発ができる人材の育成に取り組んでいます。スクールの卒業生は現場では使えないと言われる中、COACHTECHではアウトプット中心の学習で、実践的なプログラミングスキルが身に付きます。

実際に、プログラミング未経験から案件を獲得できた方も多いです。

「プログラミング学習についてもっと知りたい!」「未経験でもちゃんとプログラミングスキルが身に付くのか不安」という方は、ぜひ無料カウンセリングにお越しください。

学習方法
\ この記事をシェアする /
COACHTECH Lab.
タイトルとURLをコピーしました