特別企画
プログラミング教育が本格始動!

今こそプログラミングのことをサクッと理解しておこう

2020年度から順次施行される新学習指導要領に基づいて、いよいよ小学校からプログラミング教育が必須化される。また、ビジネスにおいても、プログラミングやその思考方法が求められる時代だ。プログラミングの世界を少しのぞいてみよう。

プログラミング教育はなぜ必要なのか。子供達はこれから何を学ぶのか、きちんと理解しておきたい

プログラミング教育はなぜ必要なのか。子供達はこれから何を学ぶのか、きちんと理解しておきたい

そもそもプログラミングとは?

はじめに、コンピュータープログラミングの基本を簡単に理解しておこう。

コンピューター用語として使う“プログラミング”という言葉は、コンピューターを動かすために必要な“プログラム”を作る行為を指す。

では、その“プログラム”とは何だろうか。コンピューターのプログラムというと、難解な文字の羅列でよくわからない世界、というイメージを持つ人が多いだろう。

しかし、考えてみると日常的によく使う言葉でもある。たとえば、コンサートや結婚式、運動会などの各種イベントにはプログラムがあり、そのプログラムに沿って物事が進行する。

要は、成すべき事を時系列に列挙したものがプログラムであり、コンピューター用プログラムも基本は同じこと。人が意図した通りにコンピューターを動かすために必要な手順をまとめた指示書なのである。

ただし、コンピューターの頭脳であるCPUは、「写真を開いて」のような自然言語を理解できない。理解できるのは「0」と「1」だけで表す機械語のみ。いっぽう、人は機械語で指示書を作るのが難しい。

そこで、自然言語と機械語の橋渡し役となるプログラミング言語を使ってプログラムを書き、最終的にCPUが理解できる機械語に置き換えて(“コンパイル”と呼ぶ)実行することになる。プログラミングをするには、プログラミング言語の習得が必須ということだ。

そのプログラミング言語は200種類を超え、ホームページ作成なら「HTML(エイチティエムエル)」「CSS(シーエスエス)」「JavaScript(ジャバスクリプト)」などを使うし、iPhone/iPad用アプリの作成には「Swift(スウィフト)」、Android用アプリの作成には「Kotlin(コトリン)」と、目的や用途に合わせて異なる言語を利用する必要がある。

これからプログラミングを習得しようとするときは、どのプログラミング言語を選ぶかがとても重要になるということを理解しおきたい。

プログラミング教育の目的は?

プログラミングがプログラミング言語を使ってプログラムを書くことならば、プログラミング教育=プログラミング言語の習得をイメージするかもしれないが、実はそうではない。

特に、小学校におけるプログラミング教育では、「プログラミング的思考」を身につけることを第一義としている。そのため、「プログラミング」という教科が新設されるのではなく、従来の算数や理科などのカリキュラムの中に「プログラミング的思考」が組み込まれる。

プログラミング的思考について、文部科学省は以下のように説明している。

「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」(引用元:「小学校プログラミング教育の手引(第三版)」)

プログラミング的思考を働かせるイメージ(引用元:「小学校プログラミング教育の手引(第三版)」)

プログラミング的思考を働かせるイメージ(引用元:「小学校プログラミング教育の手引(第三版)」)

教科の中にどのように組み込まれるのか、一例を示しておこう。

たとえば正三角形を作図するとき、これまでは定規と分度器、コンパスを利用してきた。これからは、くわえてプログラムで書く方法も考えることになる。

具体的には、以下のような指示を正確に行う必要があることを学ぶ。

スタートボタンを押す
  ↓
ペンを下ろす
  ↓
長さ100mmの線を書く
  ↓
左に120度曲がる
  ↓
長さ100mmの線を書く
  ↓
左に120度曲がる
  ↓
長さ100mmの線を書く
  ↓
左に120度曲がる

このとき、すべての辺の長さが等しく、内角が120度であることを理解していないと、コンピューターに正三角形を書かせることができない。モノの性質や情報を正確に理解していないと、プログラムは書けないということも知るわけだ。

また、同じ作業が繰り返されるとき、作業をまとめてそれを何回繰り返すか指示することで、より簡単に指示が出せることも知る。これは、プログラミングで使う関数のことだ。

このように、課題の解決に向けて情報を収集・分析し、論理的に解決策を組み立てることを学ぶことが、プログラミング的思考のベースになっている。

正三角形を書くプログラムの例。左は1操作ずつ指示したもので、右は繰り返しの操作をまとめて簡潔に指示する例(引用元:「小学校プログラミング教育の手引(第三版)」)

【関連情報】
・小学校プログラミング教育の手引(文部科学省)
https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1403162.htm

ではなぜ今、プログラミング的思考が必要なのだろうか。

その背景には、現在の急速に進むグローバル化、情報化社会において、コンピューターが不可欠の存在であることが挙げられる。

しかも今後はさらに、AI(人工知能)をはじめとするテクノロジーは益々進化するので、これまでとは生きていくために必要とされる能力が異なってくる。

そこで、既存のコンピューター技術を使いこなすスキルではなく、ベースとなるプログラミング的思考によって未来を生き抜くために必要な力を養うことが大切だとされているのである。

もうひとつは、世界的なIT人材の不足だ。テクノロジーは進化し続けているが、その技術を支える人材が不足しており、将来的にはますます足りなくなると予測されている。

日本は特にIT人材教育が遅れているので、その裾野を広げる目的もある。もちろん、先にも述べたようにプログラマー育成が目的ではない。しかし、テクノロジーに興味を持ち、理解し、新たなモノを創造する人材の育成は、日本の社会にとっても急務なのだ。

プログラミングの基本を学ぶ

今や子供たちばかりでなく、現代のビジネスシーンにおいてもプログラミング的思考は求められている。転職を考えるときに、ITスキルが高ければ転職先の選択肢が広がるし、プログラミングができれば大幅な年収増も期待できる。

ただし、いきなりプログラミング言語を学ぶのは敷居が高いので、プログラミングがどういうものなのか、少し体験してみてはいかがだろうか。お子さんやお孫さんがいる方は、一緒にトライしてみるのもいい。

以下に、プログラミングの入門や学習に最適なWebサービスやアプリ、学習用教材などを紹介しておく。

<Webサービス/アプリ>

1.Hour of Code


プログラミング教育を推進する米国の非営利団体Code.orgが運営する学習サイト。プログラミングをこれから学ぼうとするとき、いきなりプログラミング言語でコード(テキストベースの命令)を書くのはなかなか難しい。

まずは、プログラミングの概念などを理解したうえでステップアップするのがいいだろう。その点「Hour of Code」は、ビジュアルプログラミング言語を使い、ゲームの要素も取り入れた学習ツールなのでおすすめだ。

ビジュアルプログラミング言語とは、文字や記号などのテキストを書くのではなく、あらかじめ用意された命令を並べるだけで視覚的にプログラミングができるものだ。そのため、子供や初心者にもなじみやすい。まずは、ビジュアルプログラミング言語で基本を学ぼう。

Hour of Code
https://studio.code.org
価格:無料

2.Scratch


ビジュアルプログラミング言語にもいくつか種類があるが、中でも最も有名なのが「Scratch(スクラッチ)」だ。

キッズ対象のプログラミング教室などでも使われているソフトで、簡単なマウス操作やキーボード入力で実際にプログラムを組んで、ストーリーやゲーム、アニメーションを作ることができる。プログラミングの概念をおおよそ理解した上でステップアップに利用するといいだろう。

Scratch
https://scratch.mit.edu
価格:無料

3.Progate

「HTML初級編」や「Ruby基礎編」など基礎レベルの18レッスンを無料で学習できる。有料会員になると、全79レッスンで基礎から実践までを学習できるようになる。まずは、無料会員になって基礎レッスンを試してみよう。アプリ版もある。

Progate
https://prog-8.com

iOS/iPadOS:
https://apps.apple.com/jp/app/progate-楽しく学べるプログラミング学習アプリ/id1335868128
Android:
https://play.google.com/store/apps/details?id=com.progate&hl=ja

学べる言語:HTML、CSS、JavaScript、JQuery、Ruby、Ruby on Rails、PHP、Java、Python、SQL、Sass、Go、React、Node.js
価格:無料、有料プラン(月額1,080円)あり

4.ドットインストール


初心者向けのプログラミング学習サービスとして人気が高い。動画を視聴しながら基礎を学ぶことができるのでとてもわかりやすく、基礎講座は無料で利用できる。有料のプレミア会員になるとプレミアムレッスン動画の視聴や、質問機能(現在はベータ版として提供)など学習に役立つ機能が使えるようになる。

ドットインストール
https://dotinstall.com

学べる言語:HTML、CSS、Java、JavaScript、Ruby、 PHP、Swift、Kotlin、C、Go
価格:無料、有料プラン(月額980円)あり

5.はじめてのプログラミング

コマンドを選択するだけの簡単な操作で犬のロボットを動かしながら、プログラミングの概念を学ぶためのアプリ。子供向けなので、親子で楽しみながらゲーム感覚で利用するのがいいだろう。

はじめてのプログラミング
iOS/iPadOS:
https://apps.apple.com/jp/app/はじめてのプログラミング/id1431784362
価格:無料

6.プログラミングゼミ


公立小学校1〜3年生を対象に行ったプログラミング授業から生まれた教材アプリ。Windowsパソコン版もある。ビジュアルプログラミング言語でゲームをクリアしながらプログラムの概念と基礎が学べる人気の高いアプリだ。

また、自分でプログラムしてオリジナルの作品を作ることもできる。いきなりプログラミングからスタートするのは難しいので、まずは「パズル」でゲームを楽しみながら基礎を学ぶのがいい。

プログラミングゼミ
iOS/iPadOS:https://apps.apple.com/jp/app/id1264450008
Android:https://play.google.com/store/apps/details?id=com.programmingzemi
Windows:https://programmingzemi.com/download_pc.html
価格・無料

7.Swift Playgrounds

iPhone、iPad、Apple Watch、macOS向けのアプリを開発するためのプログラミング言語「Swift 」用の学習ツール。iPad向けにアップルが無償提供しているアプリだ。

このアプリは、あらかじめ用意されたコードを選択したり、自分で実際にコードを書いたりしながらプログラミングの概念や、Swiftの基礎を学ぶことができる。

まずは基本編となる「コードを学ぼう1」と、中級編の「コードを学ぼう2」からスタート。あとは、グラフィックスのことやフォトエディターの設計、カメラの設計などを学ぶ。さらに、拡張現実(AR)やセンサーなどのプログラミングなど、より高度な学習も可能だ。

Swift Playgrounds
iPadOS:https://apps.apple.com/jp/app/swift-playgrounds/id908519492
学べる言語:Swift
価格:無料

8.codebelle


プログラミンング言語「Swift」用の学習支援アプリ。チャット形式で段階的にステップアップしながら、Swiftの基礎からプログラミングの応用までを学習できる。1レッスンが3分程度にまとめられており、電車での移動中など、空き時間にササッと知識を蓄積できるので使い勝手がいい。

codebelle
iOS/iPadOS:https://apps.apple.com/jp/app/codebelle-スキマ時間で学ぶプログラミング/id1072749712
学べる言語:Swift
価格:無料

9.Schoo


ライブ動画でさまざまなジャンルの講義を無料で受講できるアプリ。プログラムミングのカテゴリーだけでも相当数の講義が公開されていて、プログラミング言語の種類も多岐にわたる。

単にライブ動画を視聴するだけでなく、先生にチャットで質問をしたり、受講生同士でのディスカッションも可能だ。月額制のプレミアムサービスを申し込むと、生放送を録画したすべての授業を閲覧できるようになる。

Schoo
iOS/iPadOS:https://apps.apple.com/jp/app/schoo-スクー-ライブ動画で学べるアプリ/id903311774
Android:https://play.google.com/store/apps/details?id=jp.schoo.android.app
価格:無料、有料プラン(月額1,080円)あり

<学習用教材>

テクノロジア魔法学校


ディズニーが提供するオンライン・プログラミング学習教材。「アナと雪の女王」「ベイマックス」「白雪姫」「アラジン」など10以上の名作の世界を楽しみながら、魔法学校でプログラミングを学ぶ。

HTML/CSS、JavaScript、Processing、Shaderの4言語を横断的に学習し、「Webデザイン」「メディアアート」「ゲーム制作」の3つの制作テーマを身に付けるのが目的だ。

テクノロジア魔法学校
https://www.technologia-schoolofmagic.jp/
学べる言語:HTML/CSS、JavaScript、Processing、Shader
価格:49,800円(税別)/4,943円×12回分割、無料体験あり

ソニー MESH


ボタン、LED、動き、人感、明るさ、温度・湿度、GPIO(マイコンなどの電子基板が標準的に備える入出力端子)の7種類のMESHブロックがあり、各ブロックはMESHアプリとワイヤレスで接続できる。

アプリ上でプログラミングすることで、各ブロックの機能を使って身の回りのモノや環境を制御する。たとえば、明るさ、温度・湿度ブロックを使って温度や明るさの変化を知る、といった使い方だ。

プログラム自体はコードを書くのではなく、直感的な操作で実現する。また、アプリ側にもカメラやマイクなどを制御するソフトウェアブロックが多数用意されており、アイデア次第で幅広いプログラミングの知識を身に付けることができる。

実際に学校教育にも取り入れられている教材であり、実績もある。

ソニー MESH
https://www.sony.jp/professional/solution/pgm-edu/mesh/index.html
価格:ブロック単体/5,537円(税別)〜
   スターターキット/13,871円(税別)
   アドバンスセット/35,167円(税別)

教育レゴマインドストームEV3 for home by アフレル


レゴブロックを組み立て、自分でプログラミングしてロボットを動かすことができる家庭向けのロッボットプログラミング教材。アイデア次第でいく通りものロボットの組み立てができる。

自分の思い通りにロボットを動かすためのプログラミングは論理的思考力を育て、トライ&エラーの繰り返しは問題解決力を育む。プログラミングの教材や、保護者向けのガイドブックも付属するので安心だ。

教育レゴマインドストームEV3 for home by アフレル
https://ev-3.net/mindstorm/product/
価格:63,300円(税別)

まとめ

今後、子供達のプログラミング教育は本格化する。教える側のスキルや、学校のICT環境の構築問題など課題はあるものの、学校教育の中で大きなウェイトを占めることになるのは間違いないだろう。

いっぽう、そうした教育を受けてこなかった現役ビジネスマン世代も、実務においてプログラミング的思考は益々必要になるので、注目しておきたい。プログラミング言語の習得は容易ではないが、頑張って習得すれば、プログラマーになる道だって拓ける可能性があるのだ。

プログラミングに興味のなかった方もぜひ、これを機会に注目し、手軽な学習ツールを使ってプログラミングの世界に触れてみるのもいいのではないだろうか。

小野均

小野均

パソコンからモバイルまで、ハード&ソフトのわかりやすい操作解説を心がける。趣味は山登りにクルマという、アウトドア志向のIT系フリーライター。

記事で紹介した製品・サービスなどの詳細をチェック
関連記事
パソコンソフトのその他のカテゴリー
「価格.comマガジン」プレゼントマンデー
ページトップへ戻る