小学校から必修化された「プログラミング」。
おもちゃでも、「プログラミング思考が育つ!」と謳っているおもちゃがちらほら見かけるようになりましたね。
今後は人工知能(AI)に取って代わられる仕事が増えるといわれており、
10~20年後には今存在している仕事の半数は人間が行わなくなるともいわれています。一方で、AIを動かす側(プログラミングする側)の需要は増える見込みです。
プログラミングがわかっていることは、今後仕事をする上で必須になる日も、そう遠くはないかもしれません。
でもそもそも「プログラミング」って何なのか?
言葉がもう難しそうだし…
親がよくわかってないのに子どもに教えられる?親も文系なんだけど…
そんな不安もあるかと思います。
そこで文系の私が、プログラミング言語について勉強した結果考えた、
「文系でもわかるプログラミング思考と、子ども向けのトレーニング」について
考えてみました。
(※ちなみにVBAというMicrosoftのアプリケーションで使用できるプログラミング言語をかじりつつあります)
理系専門職の夫の話にもしばしば聞きつつ、
なるべくわかりやすくなるよう表現してみました。
プログラミングの仕組みが理解できれば、日常生活での取り入れ方や教材の選び方を理解することができます。
読んでみると「なんだ、こうゆうことなんだ」と、
プログラミングが一気に身近に感じたり、
「これなら家でもできるかも!」
と思ってもらえるかと思います。
また、プログラミング思考を上手に伸ばしてあげることで、
地頭の良い子に育てることができます。
是非最後まで読んでいただき、今日から実践してみてください!
文系でもわかる:プログラミングって要は何?
結論からいうと、プログラミングとは
になります。
これだけじゃ「まだ全然ピンとこない」と思いますが、
まず「プログラム」とは、身近で既に見かけているものです。
イベントはこのプログラムを基に、定められた順序で実行されていきますよね。
料理のレシピも、手順通りに進めるためのプログラムです。
本質的にはコンピューターでも同じで、
「定められた手順を、コンピュータにもわかる言語(プログラミング言語)で記述したもの」
が、テクノロジーの世界でいうところの「プログラム」ということになります。
スマートフォン・家電・ATMやインターネットサービスなど、すべてこのプログラムを基に自動で動いています。
文系でもわかるプログラミングの基本:
「アルゴリズム」とは?
プログラミングの基礎的な考え方に「アルゴリズム」があります。
文系ピープルであれば
NHK「ピタゴラスイッチ」の「アルゴリズム体操」~!!
が脳内再生されませんか?笑
アルゴリズムとは、
のこと。
「手順」?ってプログラムとどう違うの?
とわかりにくかったので
辞書で「アルゴリズム」という言葉を調べてみました。
ある特定の問題を解いたり、課題を解決したりするための計算手順や処理手順のこと。
これを図式化したものがフローチャートであり、
コンピューターで処理するための具体的な手順を記述したものがプログラムである。
イランの数学者・天文学者、アル=フワーリズミーにちなむ。
引用:goo辞書
簡単にいうと、
「アルゴリズム」=手順
「プログラム」=コンピューターへの手順書(指示書)
というイメージかなと思います。
では手順とは何か。
例えば目的地までの経路を検索したいとき、グーグルマップとかカーナビを使うと、
経路がたくさんでてきますよね。
クルマか?徒歩か?電車か?または
車でも有料道路を使うか使わないか、
電車なら有料特急を使うか使わないか、
下道や鈍行でも、ルートは無数に出てくると思います。
この沢山の経路から、一番最短だったり効率的な経路を見つけ出すのが
アルゴリズムの改良ということになります。
結構どの手段を使っても結果(目的地に到着する)は同じです。
しかし経路によってはお金がかかったり、時間がかかることもあります。
そして何を重視して経路を選ぶかは人によって異なります。
ドライブ自体を楽しみたくて、あえて遠回りしてみたい人だっているかもしれません。
いまアプリの乗り換え検索や地図検索の機能でも、料金優先か時間優先かも、
デフォルトで選べるようになっていて便利ですよね。
つまり使い手にとって、どの手段(アルゴリズム)が一番効率的なのか?考えることが、
アルゴリズムの改良であり、プログラミング思考の基礎と直結するものです。
料理の際、数人分の盛り付けするときも、一つ一つ盛り付けて出すより、全員分の皿を並べておいて一気にやった方が早いですよね。
実は私達は生活の中でも日々、最適なアルゴリズムを意識しています。
このように、どれが一番最適で効率的か?と考えるということは
ある意味「クリエイティブな仕事」ということもできます。
文系でもわかる:フローチャートってなに?
先程のアルゴリズムについての引用で
「これ(アルゴリズム)を図式化したものがフローチャート」とありましたね。
ではフローチャートとは何か?
フローチャートは見たことがあると思いますのでイメージが湧きやすいと思いますが、
作業を実行する流れを、第三者にもわかるよう図表化したものです。
フローチャートで使われるのは「順次」「分岐」「反復」。
上から下へ処理がすすんでいくのが「分岐」。
命令が進んでいくなかでも、「もし~ならばA、違うならB」と判断が分かれるのが「条件分岐」、
「条件が成り立つまで繰り返し、成り立ったら次の段階へ進む」というのが「反復」です。
カレーの作り方でいうと、こんなかんじだと思います(画像荒くてすみません)。
条件分岐や繰り返しを入れないと、
野菜が固いままだったりして美味しいカレーが作れませんね。
もちろん、実際のプログラミングでは複数条件に対応をするなど、
もう少し複雑な条件分岐もあります。
条件分岐はエクセル関数でいうIF関数やIFS関数とイメージは一緒ですね。
ちなみにこれ、理系夫に家事分担させる(もしくは料理を教える)ときも使えますww
そしてアルゴリズム体操は、「1人の動きを受けて、もう1人が連動する」という点が
アルゴリズム的であるということから付けられたのではないかと予測されます。
(NHKがはっきりと定義はしていませんが)
前ならえや風船膨らむところなど、連動する動きがかわいくてコミカルですよね笑
プログラミング思考で身につく能力
こうしたプログラミング的な思考は、結構身近にあって、文系理系関係なく
自分たちも無意識にやっているんだな、ということが理解できました。
では、プログラミング思考で、何が身につくのか?
これについては、こちらの「子どもと一緒に楽しむ!プログラミング」
の本がとてもわかりやすかったので、
こちらから5つの能力についてご紹介させていただきます!✨
全体的に小学生でもわかるようにプログラミングについて書かれており、
おすすめの言語なども載っているので子どものプログラミング勉強最初の一冊におすすめです!
プログラミング思考で身につく5つの能力とは
1,物事を抽象化して捉える能力
2,物事を分解して理解する能力
3,やるべきことを順序立てて考える能力
4,ベストな方法かどうかを分析する能力
5,方法をほかに置き換えて一般化する能力
うどん(を作ること)でいうと、
1,抽象化する能力 参考書:「子どもと一緒に楽しむ!プログラミング」
天ぷらうどん、月見うどんなど沢山の種類のなかで共通している点(うどん)を説明する能力
2,分解して理解する能力 参考書:「子どもと一緒に楽しむ!プログラミング」
「月見うどん」なら。「麺」「だし」「卵」「ネギ」の素材で成り立っていると理解できる能力
3,順序立てて考える能力 参考書:「子どもと一緒に楽しむ!プログラミング」
先程のアルゴリズムの説明と似ていますが、
材料を刻み、だしをつくり、うどんをゆでる…という調理方法を順序だてて考える能力
4,ベストな方法かどうかを分析する能力 参考書:「子どもと一緒に楽しむ!プログラミング」
「かつおだし」と「こんぶだし」どちらが麺の相性や
食べる人の口に合うのか分析する能力
5,方法をほかに置き換えて一般化する能力 参考書:「子どもと一緒に楽しむ!プログラミング」
わかりやすい言葉で、だれでも同じように作れるように説明する能力
(「麺料理」だけだと、ラーメンやそばだと勘違いする人がいるかもしれませんよね)
ということになります。
ここからは私の考えですが、
要は抽象化や一般化のような「マクロな視点」と
中身を掘り下げる「ミクロな視点」など、
いろんな方向で考えられる視点が身につくのかなと思います。
一方に偏ったりしない客観的な考えを得ることもできます。
これらは仕事をする上でも、日常生活でニュースを観る時でも、
人に説明したりするときにも大事な能力です。
また、分析したり順序を考えるという過程は、
「どうすればこのようにできるのかな?」と試行錯誤することでもあります。
問題解決能力や、粘り強さ、集中力、ひらめきも同時に身につくと思います。
うどん、、実際は材料を切り始める前に
先にお湯をわかしておかないとなのについ忘れちゃったり
するんですよね…
いざ茹でるときにお湯がわいてなかったりして、時間のロスが起こったり。
普段の料理は日々アルゴリズムの改良です…
しかし、これらプログラミング思考を小さいうちからクセづけて思考力を鍛えることで、
なんだか「地頭の良い子」が育つ感じがしませんか!?
プログラミングの仕事につかなかったとしても、仕事をしたり生きていくなかで
最良の選択肢をしやすくなる、重要な考え方が身につくということになると思います。
文系親が子どもにプログラミングを学ばせるには?
とはいえ、
子どものうちからやるのは難しいし、
具体的にどうやってプログラミング思考を教えられるの?
と思うと思います。
実際、小学校に入ったばかりでは基礎的な考え方を学ぶ程度で、ゲームを作ったりロボットを動かしてみるのはもう少し大きくなってからです。
そのため、幼児〜小学校低学年のうちはプログラミングそのものより、
先ほどのアルゴリズムのようなプログラミング的思考を鍛えること。
日常生活に取り入れながら実践していくのがいいのではないかと思っています。
・朝の保育園や幼稚園での準備をさせてみる(順序立てて考える力)
・一緒に料理をする(分解して考える力や手順を理解する力)
・徒歩でお出かけの時に、いつものお店に行くにはどの道が最短か?
一緒に考えてみる
余談ですが、うちの息子5歳は昔から結構道を覚えるのが得意で、私が道に迷った時も手をひいて「こっち!」案内してくれたことがあります。5才児に連れられるアラサー。。。
・一緒にハンバーグのタネの肉をこねてみて、何回こねたら1番美味しいか
実験してみる
・植物を育てるとき、どの肥料を一番使うのがいいか実験してみる
料理などの家事は手順や分析・繰り返し処理も行うのでとってもやりやすいと思います。
もう少し大きい子だと
お風呂掃除など、何か家事の担当をまるっきり投げて任せてみることで、
その中で「どの道具や、どの順番だと一番効率的か?」と自ら考えるようになるかもしれません。
また普段から、プログラミング思考をつけるにはどうしたらいいか?
考えて生活してみると、周りの世界が少し変わってきます。
私も「踏切が閉まるのはどうゆうアルゴリズムなんだろう?」と
考えたりするようになりました。
子どもと一緒に考え、調べていくと
世の中の「なぜ?」に関心を持つようになることにもつながるかもしれません。
プログラミング思考の最初のおもちゃは、安価なものでOK
脳科学世界でもそうですが、この5~6歳までの能力を伸ばすことが子供の能力にとっても大変重要な時期であることが認識され始めています。
だからこそ、思考力のついてきた3〜6歳あたりから、
プログラミング思考の基礎を学ばせてあげるのも大切なことだと思います。
(プログラミングのおもちゃは対象年齢が3歳からであることが多いです)
とはいえ、プログラミングのおもちゃって高いですよね。
数万するもの結構あります。
この「キュベット」3歳からできるもので、
ブロックをはめ込んで指示することでロボットが動きます。
コーディング(プログラミング言語で記述する行為)の基礎を学ぶことができますが
私調べでも約35,000円以上するショップが多いです。
こうゆうものでも良いのですが、
もし買ってみて全然やらなかったら…
すぐ飽きてしまったら…
と思ってしまう値段だと怖いですよね(^^;)
しかし「試行錯誤して、問題解決までの最適な手順を考える」という点では
まず「プログラミングそのものより、プログラミング思考」を学ぶことも大切。
そのため、必ずしも「プログラミング」を強く押しているものでなくてもいいのかもしれません。
例えば、みんな知ってるレゴブロック。
レゴブロックは空間認識能力という点でも、理系脳にするのに良いと言われています。
ブロック遊びを通して
どうしたら、どのパーツをどのように組み合わせたら完成する姿まで辿り着くのかという問題解決の力、試行錯誤する粘り強さと集中力が身に付きます。
リンク
レゴブロックは本格的なプログラミングとの親和性も高いと言われています。
実際、プログラミングのレゴとか売っているの見たことありませんか?
レゴを遊ぶことから始まって、やがて動かすという実践的なプログラミング学習になれば最強です。
親もやってみたいですよね笑
また、「よりプログラミングに近いロジカルな思考を身に着けたい」ということであれば、「くもん」がおすすめです。
リンク
くもんのおもちゃは優秀で、学習の補助的なおもちゃでのいろんな分野を網羅していますし、しかも安価です。
同じような論理的思考目的のおもちゃでも、キャラクターものやブランドものは高いです。くもんは機能優秀でありつつ、「くもん」という信頼感もあり、しかも安いので、
とりあえず選んでおけば間違いないと思っています。
ちなみにこれは、モンテッソーリの「キュボロ」が高かったので、
それの代わりに買ったくもんの「くみくみスロープ」。
ボールを下まで落とすまでにスロープを組み合わせるのが思ったより難しいです。
大人と子どもが一緒に楽しめます(^^)
構造上、完全な代わりにはなっていないのですが「とりあえず安価なもので試してみる」と思った結論としての「くもん」でした。
幼児だけど、より実践的にプログラミングをやってみたい!
とはいえ、先程の「レゴブロック」や「くもん」はあくまでプログラミングというより「プログラミング思考」を身に着けるもの。
プログラミングはどのようなものなかかは、
実際やってみるのが一番理解しやすいのも事実です。
というのも、親も子も実際やってみたほうが
こうゆうものかとよくわかります!
もう少し本格的にプログラミングっぽいことしたい、となるとこちらもおすすめです。
おもちゃ大賞も受賞しており、こちらも安い!
命令によって車を動かすので、プログラミングをより実践的に学べます。
(3歳からが対象ですが、実際は4歳ぐらいが良さそうな感じするかな…)
リンク
また、
STEAM教育(非認知能力)がコンセプトの通信教材
「ワンダーボックス」のプログラミングのゲームでは、
より実際のプログラミングに近いことが学べます。
画像の右側にある矢印を当てはめていきます。
①どの矢印を、何個、どの位置におけばいいか(順序や手段)を考える
プログラムを作り
②そして、プログラムを最後に実装(実際に命令を実行する)し、正しく目的地まで着くか確認できます。
ちゃんと宝まで着けば正しくプログラムされているということ。
違っていたら、もう一度どこが違うのか考え、修正します。
(まさに実際のプログラムの書き方と同じです。)
簡単そうに見えますが、意外と矢印の置くべき位置がイメージできず、
息子(5歳)も最初はちょっと難しそうにしていました。
でも最後まで無事ステージをクリア!
ワンダーボックスは他にも地頭を鍛えられるようなゲームが多いです。
1週間無料おためしキットをやりましたが、プログラミング以外にも
自分で折った折り紙をタブレットで取り込んで動かせたりするものもあり、
なかなか楽しめました。
先日思いつきで、このワンダーボックスのやっているプログラミング学習と同じことがアナログでできないかとやってみました。
①まず事前にマス目を作成し、ゴールまでのルートは残しておきつつ
残りの部分に色を塗って壁を作ります。
②上下左右の矢印を描いておいて、子どもにゴールまでの道のりに続く矢印を一つずつ
指差ししてもらいます。(あるいは矢印を描いてもらってもよい)
結果こんな感じに!
即興!でやったのでぐちゃぐちゃですが(^^;)
上の欄は子どもがその後遊びで描いてますね。これでもいいですが、問題の作り方が合ってるのか不明なので、
やはりオンラインできちんとやってみるのが一番いいかもしれません。
でも導入として、こんなので遊んでみても楽しいですよ!
ちなみに厚切りジェイソンさん出演のNHKEテレの小中学生向けのプログラミング「Why!?プログラミング」という番組も、「プログラミングってこうゆう感じか」とイメージしやすいかもしれません。
文系でもわかるプログラミング思考と、
子ども向けのトレーニング:まとめ
・アルゴリズムとは、「問題を解く手段や手順」
・プログラミングとは
「アルゴリズムと用いてプログラムを作成し、コンピューターにわかる言語を
つかって、命令する行為」
・フローチャートとは
「アルゴリズムの条件分岐や繰り返し処理を図式化したもの」
・最適な手順や繰り返し処理などを生活の中で一緒に実践してみることで、
幼児でもプログラミング的な思考が育っていく。
経路、朝の準備や料理の手順などを一緒にやっていこう!
・プログラミングを学ぶことで「抽象化」「分解」「順序」「分析」「一般化」などの論理的な能力を始め、問題解決能力や集中力、粘り強さやアイデア力
も身に付けることができる。
プログラミングの仕事につかなくても、将来の仕事や社会の中で必ず役に立つ!
・幼児のうちは「プログラミング思考」の基礎的なところから学んでいけばOK!
3歳から、論理的思考につながるおもちゃからはじめてみよう
・実際やってみたり、触れてみたりすることが、親も子も一番イメージしやすい。
「プログラミングってよくわからない」と思ったら、
まずは親子で一緒にやってみよう
先進国はすでに当たり前のようにプログラミング教育に力を入れていますが、
日本では正直まだあまり馴染みが浸透していないのが事実です。
それはやはり
「よくわからない」「難しそう」という考えがどうしても先行してしまうから
という点もあると思います。
この記事を最後まで読んでくださったあなたは、そんな中でも一歩先を進んで
「プログラミングとは何か」を知ろうとしているところだと思います。
今回わかったことを意識して生活の中に取り入れてみるだけで
子どもの論理的な思考能力が変わってくるかもしれません(^^)
そして実際にやってみるのが一番わかりやすいです。
ツールを積極的に活用して実践してみてくださいね。