先日ヤフーニュースを見ていたら、たまたまこの記事を見つけまして、思わず読み込んでしまいました。
要約すると、
少子高齢化社会で農業のなり手が減り、土地が余ってきたものの、
ITを使って効率的に農業ができるようになってきた、という内容になります。
GPSもドローンも自動運転も、2000年頃にはほとんど誰も知らなかったと思いますが、
新しい技術の到来が、農業という業界を大きく変える予兆をうかがい知る事ができます。
今はまだ機材の価格がやや高いようですが、一般化されるにつれ価格が下がってくると思いますので、これからますます農業×ITは広がっていくのだろうなと感じます。
そして、子どもを持つ親としての目線から改めて、
『プログラミングの目的とはなんだろうか』と考え、思う事をつらつらと書いてみる事にしました。
プログラミングの目的1 考え抜く力をつける
2020年より小学校でプログラミングが必修になりました。
文部科学省の『小学校プログラミング教育の手引(第一版)』によると、
情報技術を効果的に活用しながら、
論理的・創造的に思考し課題を発見・解決していくために、「プログラミング的思考」が必要であり、
そうした「プログラミング的思考」は、将来どのような進路を選択しどのような職業に就くとしても、普遍的に求められる力であるとしています。
そして、「プログラミング的思考」とは、
「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」
であると説明されています。
という事が明記されています。
振り返れば2000年頃、いわゆるITバブルの頃は、
ITといえば、ヤフーや当時のライブドアのような、
パソコンで見れるホームページくらいの認識だった方が多かったろうと思うのですが、
- パソコンの普及
- インターネットのスピード改善
- スマホの普及
- 省電力化
- ハードウェア(センサーやプロペラなど)の高性能化
などを通じて、今ではITなしでは考えられない世の中になってきました。
GPSや自動運転、ドローンなども、ここ数年で一気に普及しています。
と思っている方も多いのだろうと思いますが、一方で、
GPS、自動運転、ドローンなどを活用した新しい仕事もどんどん増えていますし、
ここ数年はより変化のスピードが速くなっている気もします。
僕の子どもは2018年生まれなのでまだまだ先の話にはなりますが、
きっと、子どもが20歳になる2038年頃には、
今以上にITが発達し、ITが当たり前の世代ばかりになるだろうなとは思います。
先ほどのGPS、自動運転、ドローンを活用した農業も、もっと一般的になっているかもしれません。
そういったIT道具を活用できる人とできない人で、大きく収入に差がでるかもしれません。
できる事なら、自分でしっかり考えて、自分で問題を解決できるようになる子どもになってほしいと思いますし、
文部科学省が言うところの『プログラミング思考』というものも、
『とにかく自分でしっかり考えられる力を育む』
という意味だと捉えたほうがしっくりくるんじゃないかなと思っています。
2019/9/17追記 経産省も参加したイベントに参加しました
プログラミングの目的2 論理的に考えざるをえない
実際にプログラミングをやっている方なら実感されていると思いますが、
とにかくプログラミングって細かいです。
1つ1つ細かく作っていく必要があります。
人と人同士なら分かり合える事も、相手がコンピュータとなるとそうはいかず、
例えば『歯を磨く』という動作一つをとっても、
赤ちゃんに教えてる時は、見よう見まねで何回も見せて『感覚で伝える』事になりますが、
コンピュータにはそうもいかず。
例えて言うなら、
1 洗面台に向かう
2 洗面台の前に立つ
3 収納スペースを空ける
4 自分の歯ブラシをとる
5 歯磨き粉をとる
7 歯磨き粉のキャップを開ける
8. 歯磨き粉の先と歯ブラシの距離を近づける
9 歯磨き粉を少しにぎって歯磨き粉を出す
9 歯磨き粉を歯ブラシにつける
10 口を開ける
11 歯ブラシを口の中に入れる
12 歯ブラシの先を奥歯に当てる
13 ほどよい力加減で小刻みに10回みがく
14 角度を変えてまた10回みがく
・・・
みたいな感じです。
実際にロボットで実現しようとするなら、
『歯ブラシと歯みがき粉の距離感』をセンサーで判定する必要があるだろうし、
『歯磨き粉を程よく出す力加減』をどう実現するかって結構難しいんじゃないかと思ったり。
『ほどよい力加減で小刻みに』というのも、
どれくらいの力で、どれくらいのスピードで、どれくらいの間隔で・・
というふうに、とにかく細かいです。
そういった事を一つ一つ考えていく必要があります。
けれどさすがに、
世界中の多くの人が、同じような事を同じように一つ一つつくっていると、とてもじゃないけど効率が悪いので、
よく使う機能、あると便利な機能というものをまとめて配布していたりします。
先ほどの例で言うと、『歯みがきプログラム』を世界中の誰かがもう作っているかもしれません。
となれば、歯みがきに関しては、『歯みがきプログラム』を活用しつつ、
また他の動作、
例えば『靴を履く』というプログラムを考えるみたいな、そんな感じです。
プログラミングの世界では、『車輪の再開発』と言ったりしますが、
よく使う機能、あると便利な機能というものをまとめて配布を繰り返す事で、
あると便利な機能がどんどん増えていって、
今日のスピードアップにつながっているんじゃないかなと思います。
プログラミングをやっていると、
- 一つずつ考える
- 同じ動作や作業はできるだけまとめる
- あると便利な機能があれば置き換える
などの論理的な考え方もついてくると実感しますし、
例えプログラマーにならなくても、
日常の生活にも、論理的に考えるクセがつけば、仕事にも活かせるんじゃないかなと。
プログラミングの目的3 創造的思考力を養う
ブロックを組み立てるようにプログラミングができる『スクラッチ』の作成者は、
作りながら学ぶ事が大事、というようなことを言っています。
学校の勉強とは違い、
現実の世界では、『答えがない』『答えがわからない』事がほとんどなので、
- とにかくやってみる
- とにかくつくってみる
- 作りながら課題・反省点を見つける
- 都度修正してよりよくしていく
という方法になってくるので、
とにかく試す、ということができるようになるために、
プログラミングをうまくつかえるようになるといいんじゃないかなと思います。
プログラミングの目的4 学校の勉強を活かす機会が増える
プログラムをやっていると、
学校の勉強やっておけばよかったな・・と思うことが多々あります。
特に親和性が高いなと思うのが、
- 数学
- 物理学
- 英語
それぞれ簡単に紹介してみます。
プログラミングと数学・物理学
ブロックを組み立てるようにプログラムできる『スクラッチ』でも、
映像・芸術分野でも使われるようになった『プログラム』では、
実は物理・数学がたくさん使われています。
- 三角関数
- 速度・加速度
- ベクトル
- 微分
- 確率
- 統計学
などなど。
関連記事
- プログラムでゲームを作る
- 必要な知識を知る
- 実は学校で扱っているので勉強する
- 学校でのテストの点数が上がる
という好循環になれば最高ですし、
そのための『プログラミング教育』なんだろうと思っています。
プログラミングと英語
これはどちらかというと、実際にプログラミングを進めていくと実感する事なのですが、
新しい技術を覚えようとなると、なかなか日本語では情報が少なかったりします。
先ほどの、よく使う機能、あると便利な機能をまとめたものというのは、
何も日本人だけが作っているわけじゃなくて、
世界中のいろんな人がつくっていますし、その多くは英語で書かれていたりします。
日本にいると、英語で話す機会がなかなかないので、
と思ったりする人も多いようですが、
例えばYoutubeでプログラミングの動画を検索したりすると、多くは英語で説明されています。
余談ですが、
Woocommerceのデザインの変更の方法を探した時も英語でしたし、
Laravelというフレームワークを覚えた時も、英語の動画サイトでした。
英語で読む、もしくは聞くという事が当たり前のようにできるようになると、自然と、
よく使う機能、あると便利な機能をまとめたもの
の使える幅がグンと増えるのでプログラミングの効率もあがり、まさに一石二鳥かなと思います。
参考記事
プログラミングの目的のまとめ
まとめると、
- とにかく考える
- 論理的に考える
- 創造的に考える
- 学校の勉強が活かせるようになる
という事が、プログラミングの目的だと思います。
プログラム言語によって得意分野に差があり、
プログラム言語によっては、5年後、10年後には使われなくなる言語というのもでてくると思いますが、
その基礎力となる、
- とにかく考える
- 論理的に考える
- 創造的に考える
- 学校の勉強が活かせるようになる
という力をつけておけば、
時代が大きく変わり続けている『激動の21世紀を強く生き抜く』事もできるだろうと思いますし、
生まれたばかりの我が子にも、それとなく伝えていきたいなと思います。
PS. 子ども向けプログラミングのとっかかりとして、下記の記事もご参照ください。
アオキのツイッターアカウント。