IT人材の不足を背景に、2020年からプログラミング教育の必修化がはじまり、教育業界では「プログラミング的思考」というワードが注目されています。
プログラミング的思考とは、プログラミングをするときに使う考え方のことで、コンピュータや情報を使う機会が増えた情報社会のなかを生き抜くうえでとても重要なスキルで、子どものころからしっかりと身につけておくことが必要とされています。
今、子どもが学校で学んでいるプログラミング的思考について、以下のような点について気になる方も多いと思います。
- なんか難しそうなイメージ
- どんな思考なのか、イマイチよくわからない
- 論理的思考とのちがいは?
- どうしたら身につけることができるの?
プログラミング的思考は日常生活のなかで無意識につかっていることが多く、身近に実践練習ができる機会がたくさんあることを知っていますか? 子どもにプログラミング的思考を教えるために、まずは保護者の方が正しい意味を理解しておかないといけません。
そこで、今回はプログラミング的思考をよく理解していない保護者のかた向けに、プログラミング的思考の5つのスキルとまちがいやすい論理的思考とのちがいの解説や普段の生活で実践できるプログラミング的思考の身につけ方についてわかりやすく紹介します。
この記事を参考に、身近にあるプログラミング的思考の鍛え方を実践をして、お子さんといっしょにたのしくプログラミング的思考を育てていきましょう!
目次
1.プログラミング的思考とは?
1−1.プログラミング的思考の定義(文部科学省の資料より)
1−2.プログラミング的思考とにたコンピュテーショナルシンキング(英語:computational thinking)とは?
1−3.プログラミング的思考の例【図解つき】
1−4.プログラミング的思考と論理的思考のちがいとは?
1−5.実際にプログラミング的思考を学べる授業例(算数・理科・国語・音楽)
2.プログラミング的思考で身につく5つのスキル
2−1.問題をこまかく分解(わける)する
2−2.複数の考えを組み合わせる
2−3.大事なことだけにしぼって問題をシンプルにする(抽象化)
2−4.頭のなかでシミュレーションする
2−5.誰でも理解できるように工夫する(一般化)
3.プログラミング的思考はなぜ必要?その理由とは?
3−1.ネットやITの成長により「自動化」が進んでいる
3−2.ITツールを使う機会が増えている
4.小学生やこどもがプログラミング的思考を身につける4つのメリット
4−1.日常生活でかしこく過ごす術が身につく
4−2.多角的にものごとを見れるようになる
4−3.発想力を鍛える
4−4.将来的にさまざまな仕事で役に立つ
5.【おやこ向け】プログラミング的思考を鍛える方法!実践例6選
5−1.家でお手伝をしてもらう(料理・買い物・洗濯)
5−2.カードゲーム・ボードゲーム
5−3.パソコンやタブレットで遊べるアプリ・ゲーム・おもちゃ
5−4.プログラミング的思考をたのしく学べる動画
5−5.講座や研修・セミナーやプログラミングスクール
5−6.運動やスポーツ
6.プログラミング的思考が身につくゲーム・アプリ・おもちゃ&動画紹介
6−1.ゲーム(マイクラ・Hour of Code)
6−2.アプリ
6−3.おもちゃやボードゲーム
6−4.動画(NHK テキシコー・バンダイ公式チャンネル)
7.まとめ
1.プログラミング的思考とは?
プログラミング的思考とは、プログラム作成や設計でつかう考え方を応用した思考のことで、日常生活や仕事にも応用できるスキルです。具体的に説明すると、プログラミング設計や作成をするときに、以下のような5つのスキルをつかって内容を考えます。
- 物事をこまかくわけて考える(分解)
- 物事のにている部分や関係性をみつけてひとくくりにして考えやすくする(一般化)
- さまざまな方法を組み合わせる(組み合わせ)
- 本質をみつけて大事なことだけにしぼって考える(抽象化)
- 頭のなかで手順を予測する(シミュレーション)
この一連の考え方を「プログラミング的思考」と呼んでいます。プログラミング的思考を身につけると、理解力アップや情報の整理ができ、ITツールなどをうまく活用ができるようになり作業効率が良くなる、創造性や発想力を育ててくれる、など日常生活や仕事で働くうえでたくさんのメリットがあります。このように、情報社会のなかで、ITツールや技術をうまく使って論理的・創造的に考え、問題を解決するプログラミング的思考は、今後のコンピュータなどを活用していくうえで必要なスキルです。
身につけ方の例として、学校での授業以外に、おもちゃやゲームなどの遊びのなかやスポーツ、料理や洗濯などの家でのお手伝いなど、遊びや身近な行動のなかで身につけることができます。
1−1.プログラミング的思考の定義(文部科学省の資料より)
「プログラミング的思考」について、文部科学省では以下のように定義しています。
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力。
引用元:文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」より
かんたんに説明すると、目的を達成するために、必要な情報・手順を考えて、さらに手順を組み合わせたり、実際に検証や改善を繰り返して、効率的でベストな方法を論理的に考える一連の流れのことをいいます。
1−2.プログラミング的思考とにたコンピュテーショナルシンキング(英語:computational thinking)とは?
文部科学省によると、プログラミング的思考は海外の「コンピュテーショナルシンキング(英語:computational thinking)」という考え方を参考にしています。
プログラミング的思考は「コンピュテーショナル・シンキング」の考え方を踏まえつつ、プログラミングと論理的思考との関係を整理しながら提言された定義である。
引用元:文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」より
コンピュテーショナルシンキングとは、日本語で「計算論的思考力」といい、以下の5つの要素をいいます。
(1)コンピュテーショナルシンキングの5つの要素
- 分解:複雑な問題を1つ1つこまかくわける
- パターン認識:問題のパターンや傾向・規則性を見つける力
- 抽象化:物事の本質的なところだけを残してそれ以外を消すこと。一番大切な問題をみつけて作業をシンプルにする
- アルゴリズム思考※:必要な手順を考える
- アルゴリズム設計※:より効率的で効果的にするために手順を工夫する力
アルゴリズム思考とアルゴリズム設計のちがい
アルゴリズム思考は「手順を考える力」のことで、アルゴリズム設計とは、「一番効果的な手順を考え工夫する力」のことです。
(例)サンドイッチ
●アルゴリズム思考の場合
- パンを切る・材料を選ぶ
- 食材をパンに挟む
●アルゴリズム設計の場合
パンを切るときは1回でまとめると効率的だ
- 材料を選ぶときはお気に入りの具材から選ぶと、迷う時間を短くできる
このように、コンピュテーショナルシンキングとプログラミング的思考でにたようなスキルがあるのがわかりますよね。
1−3.プログラミング的思考の例【図解つき】
「1−1.プログラミング的思考の定義(文部科学省の資料より)」で、プログラミング的思考の定義について紹介しましたが、よりイメージしやすいように具体的な問題をつかって解説します。
(1)コンピュータで正多角形をつくろう
今回は、コンピュータを使って正多角形を作るという問題で解説します。
手順を考える前に、まずは「正多角形」とはどんな特性があるのか理解しておく必要があります。
正多角形とは、「すべての内角が同じ」「外角もすべて同じ」「すべての線(辺)の長さは全て等しい」といった特徴があります。
この3つの特徴をつかって、手順を考えていきます。今回は多角形のなかで一番簡単に作れる正三角形(長さを100)の作り方で考えていきましょう。
正三角形は3つの内角がすべて同じ角度で、かつ同じ長さの線を引くと作ることができます。このことから、長さ100の正三角形は下の図のように、長さ100の線を1本引いたあと、左に120°曲がるという動きを3回指示すると作れるということがわかりますよね。
1.長さ100の正三角形をつくる
コンピュータには、「長さ●●●の直線を引く」「左に角度を●°曲がる」などこまかく指示をすることができます。これらのコンピュータで用意されている動作指示を組み合わせると下の「回答A」の手順ができあがります。
2.動作を組み合わせていく
「回答A」は手順通りに作成しているもので8つの指示があります。反対に、右側の「回答B」はどうでしょうか?
「回答B」では、「回答A」にある「左に120°曲がる」と「前に100進む」が3回繰り返しているところに注目し、「3回繰り返す」という指示を新たに追加して繰り返している指示を減らすことで少ない数で作れます。
どちらも正解ではありますが、正六角形や正八角形を作る場合、「回答A」より「回答B」のほうがシンプルで入力の手間が減ってとても効率よく指示をだすことができますよね。
このように、問題を解決するために必要なことや道筋を考えるだけでなく、さらに効率よくするためにはどうすべきかを論理的に考えていく思考のことを「プログラミング的思考」といいます。
1−4.プログラミング的思考と論理的思考のちがいとは?
プログラミング的思考とよくにた意味で「論理的思考」があります。結論からいうと、プログラミング的思考は論理的思考の一部でありますが、少しちがっています。
論理的思考とプログラミング的思考のちがい
- 論理的思考:目的を達成するためにどうすればいいのか道筋たてて方法を考える。
- プログラミング的思考:目標や目的を達成するために必要な情報や道筋をたて、そのなかから効率的な方法を考える。
プログラミング的思考とは、問題を解決するための具体的な方法を見つけるだけでなく、そのなかから最も効率的にできるように考える思考です。そのためには、物事を多角的にみることや発想力も必要になります。
どちらも、目標を達成するための手段や方法を考えるという部分は同じといえますが、プログラミング的思考は、最も効果的な方法を考えだすことなので、論理的思考と比べて若干のちがいがあるということを理解しておきましょう。
1−5.プログラミング的思考が学べる授業例(算数・理科・国語・音楽)
小学校の授業で、プログラミング的思考を学ぶことができます。ここからは文部科学省が発表しているプログラミング教育で取り組むべき授業内容として「算数・理科・国語・音楽」の授業内容の例について紹介します。
プログラミング的思考が学べる授業例
算数(5年生) |
・計算問題
→複数の数字をこまかくわけて計算する
・多角形を書く問題
→scratch(プログラミング言語)を使って正多角形を書く
|
理科(6年生) |
・電気工作をする
→どのような手順で動くのかそのために必要な命令の組み合わせを考える
|
国語 |
・物語を読んで好きな場面のアニメーションを作成する
(写真のスキャンをして取り込むなど)
|
音楽(3〜6年生) |
・音楽づくり
→見通しをもってまとまりのある音楽をつくる
→リズムやパターンを組み合わせて新たな音楽をつくる
|
・参照:小学校プログラミング教育の手引(第三版)より
2.プログラミング的思考で身につく5つのスキル
ここからは、プログラミング的思考で身につけることができる以下の5つのスキルについて紹介します。
- 問題をこまかくわける(分解)
- 共通のパターンや特徴をみつけてわかりやすくまとめる(一般化)
- 複数のちがった考えを組み合わせる(組み合わせ)
- 大事なことだけにしぼって問題をシンプルにする(抽象化)
- 頭のなかでシミュレーションする(シミュレーション)
では、この5つのスキルのくわしい解説と、身につけることのメリットについて料理(カレー作り)を例に解説します。
2−1.問題をこまかく分解(わける)する
1つ目の「分解」とは、問題をこまかくわけるスキルで、優先順位をはっきりさせる力が身につくことや問題解決力がアップするなどさまざまなメリットがあります。
参考:カレーを作る
カレーを作るには、食材を考えて、その食材ごとに調理(野菜を切る・白米をあらう・炊くなど)する必要がありますよね。分解とは、カレーに必要な作業(課題)を1つずつわけることです。
そうすることで、やるべきことがはっきりし、問題が解決しやすくなるほか、そのあとの予定や手順も考えやすくなります。
そのほかにも「分解」スキルを身につけることで以下のようにさまざまなメリットがあります。
【日常生活や仕事でのメリット例】
メリット |
・やるべきことをはっきりさせて効率よく作業できるようになる。
・問題の解決能力がアップする。
・スケジュールや計画が立てやすくなる。
・作業の重要度と緊急度をみわけることができる
・こまかく問題をわけることで問題の難易度を低くする。
・着実に問題をクリアしていくことでやる気がアップし自信につながる。
|
2−2.共通のパターンや特徴をみつけてわかりやすくまとめる(一般化)
2つ目の「一般化」とは、にたようなものを1つにまとめて考えるスキルで、簡潔に情報を整理できることからコミュニケーションの場でとても役に立つといったメリットがあります。
参考:カレー作りに必要な「食材」について考える
カレーを作るには、「じゃがいも・にんじん・たまねぎ・牛肉・ルー」といった食材が必要です。このなかにある、じゃがいも・にんじん・たまねぎは共通して「野菜」いうカテゴリーでひとくくりに表現することができますよね。
このように、一般化とは、共通している物同士を見つけてひとくくりにして考えるスキルのことです。一般化を身につけると、情報の整理がしやすくなり簡潔に伝えることができるのでコミュニケーションの場ではとても役に立ちます。
そのほかにも「一般化」スキルを身につけることで以下のようにさまざまなメリットがあります。
【日常生活や仕事でのメリット例】
メリット |
・複雑な情報も整理ができるようになる。
・人や物の共通点を見つけることが得意になる。
・広い視野でみることができるようになる。
・コミュニケーションで役に立つ。
(わかりやすく伝えることができる、会話のネタになるなど)
|
2−3.複数の考えを組み合わせる(組み合わせ)
3つ目の、複数の考えを組み合わせるスキルでは、「創造性」や「発想力」を伸ばすことができるといったメリットがあります。
参考:カレー作りの手順を考える
1つ目の「分解」で、カレーづくりの作業をこまかくわけしました。次に、わけた手順を適切な順に並びかえます。この並びかえ作業のことを、「組み合わせ」といいます。先ほどのカレー作りを例に、作業を適切な順に並びかえてみます。
▼組み合わせの例
やるべきこと(分解) |
手順を並びかえる(組み合わせ) |
・野菜を洗う
・野菜を炒める
・白米を洗う、炊く
・ルーを溶かす
・野菜を切る
・隠し味の調味料を作る
・水を入れる
|
野菜を洗う
↓
白米を洗う
↓
白米を炊く
↓
野菜を切る
↓
隠し味の調味料を作る
↓
野菜を炒める
↓
水を入れる
↓
ルーを溶かす
|
このように、手順を適切な順に並びかえることで、失敗することなくカレーを作ることができます。プログラミングでもカレー作りと同じように、さまざまな要素や情報を組み合わせてつくっています。
さらに、よりおいしいカレーを作るために「この調味料はなるべく最後に入れることで焦がさず美味しくなる」や効率よくするために「固形ルーと調味料をいっしょにミキサーで混ぜてみたらどうだろう?」などを考えるなど、組み合わせのなかで「創造性」や「発想力」を伸ばすことにもつながります。
そのほかにも「組み合わせ」スキルを身につけることで以下のようにさまざまなメリットがあります。
【日常生活や仕事でのメリット例】
メリット |
・よりベストな方法を見つけるために試行錯誤ができるようになる
・全く別のものを組み合わせて新しいアイディアを考え、形にできる
・固定概念をとっぱらっていろんな視点で考える力が身につく
・物事を組み立てて考えることができる
・創造性や発想力を伸ばすことができる
|
2−4.大事なポイントだけにしぼって問題をシンプルにする(抽象化)
4つ目の「抽象化」とは、手順などを単純化(シンプル)にして重要なところだけを考えるスキルのことで、問題の要点を見つけだすことができるといったメリットがあります。
参考:カレー作りの手順をもっとシンプルに考える
カレー作りにはさまざまな作業と手順があります。テーブルに出すまでの流れをもっと大まかにわけると3つの作業になります。
(1)食材の準備
野菜(じゃがいも・にんじん・玉ねぎ)・お肉(牛肉)・ルー・そのほか調味料
(2)調理する
鍋に油を熱し、玉ねぎを炒める。
野菜や肉を加えて炒め、調味料を入れる
水を加えたあと、カレールーを溶かしながら煮込む。
(3)盛り付け
お皿のうえに白米とルーをかける。
こまかい手順や材料・調味料の量などが省略され、カレー作りがよりシンプルでわかりやすくなりますよね。このように、物事を単純(シンプル)にして重要なところのみだけにすることを「抽象化」といいます。
そのほかにも「抽象化」スキルを身につけることで以下のようにさまざまなメリットがあります。
【日常生活や仕事でのメリット例】
メリット |
・情報をシンプルにすることで大事なポイントをつかむのが得意になる
・物事の整理がしやすくなり重要度を見極めることができる
・問題解決能力アップ
・チームでのコミュニケーションに役に立つ
|
2−5.頭のなかでシミュレーションする
5つ目のシミュレーションとは、頭のなかで物事の流れを再現(仮説をする)して考えるスキルのことで、全体の流れを把握できるほか、理解力のアップや予測する力を身につけることができるメリットがあります。
参考:カレー作りを頭のなかで再現する
「分解」「組み合わせ」で、カレーを作るための手順の洗い出しと並びかえをしました。そのあといきなり料理を始めるのではなく頭のなかで作業の流れを再現すると思います。このことを「シミュレーション」といいます。
シミュレーションをしていると、「見落としていた食材や手順が見つかった」「料理で使う器具や調味料は取り出しやすい場所に用意しておこう」「この手順だと包丁が手前にあってあぶない」などさまざまな気づきが見えてきます。このように、さまざまな仮説を持ちながら考えることで理解力や予測する力を身につけることができます。
そのほかにも「シミュレーション」スキルを身につけることで以下のようにさまざまなメリットがあります。
【日常生活や仕事でのメリット例】
メリット |
・全体の流れを把握できるようになり理解スピードが速くなる
・本当にその手順があっているのか客観的に考えることができる
・試行錯誤しながら進めるので効率よく作業ができる
・予測していたこととちがうことが起きてもすばやく修正できる
|
以上がプログラミング的思考で身につく5つのスキルの紹介でした。
3.プログラミング的思考はなぜ必要?その理由とは?
では、なぜ「プログラミング的思考」が必要といわれているのでしょうか?その背景や理由は大きく2つあります。
- ネットやITが急成長しているなかで、今後仕事の多くが自動化されている
- 日常生活の中心になりつつあるITツールやテクノロジーを使う機会が増えている
次でくわしく解説します。
3−1.ネットやITの成長により「自動化」が進んでいる
AIやIoT・スマートホームなど、ネットやITが急成長しているなかで、多くの仕事が「自動化」されています。そして将来、そこで働く人の仕事がなくなってしまう、またはまだ存在していない新しい職業が登場するといった予測がされているのを知っていますか?
自動化が進むと、業界や職種を問わず、情報技術を活用して問題を解決するスキルや効率よく作業できる人が求められるようになります。プログラミング的思考を身につけると、論理的に考える力や問題解決能力が高くなり、自分で情報をうまく活用して効率よく作業ができるようになるので、将来の職業チャンスを広げることにつながります。
子どもが大人になったときに自信をもって働けるようにするためにも、今からプログラミング的思考を身につけておく必要があります。
3−2.ITツールを使う機会が増えている
仕事や学校では、ExcelやPowerPointなどのツールをつかった表や資料の作成、メールアプリやチャットなどさまざまなツールを使います。これらのツールを使いこなすうえでプログラミング的思考はとても役に立ちます。
例えば、ChatGPTを上手く活用したいけれど「期待通りの回答をしてくれない」といったとき、質問内容をより具体的にこまかくわけてみることや、ChatGPTの仕組みやどんな反応があるのかを理解して回答ルールや手順を指定してあげることで、より的を得た回答を効率的に見つけることができます。このようにツールを最大限に活用するためにもプログラミング的思考は必要なスキルです。
4.小学生やこどもがプログラミング的思考を身につける4つのメリット
プログラミング的思考は小学生といった子どものころから身につけておくと将来的に役に立つなどたくさんメリットがあります。ここからはプログラミング的思考を身につけることのメリットを4つ紹介します。
4−1.日常生活でかしこく過ごす術が身につく
「3.プログラミング的思考はなぜ必要?その理由とは?」でも説明したように、さまざまな場面でコンピュータやITが使われていて使いこなすためにプログラミング的思考は必要です。そのほかにも、以下のような普段の日常生活のなかでもとても役に立ちます。
- スケジュールを考える(例)夏休みの宿題や遊びの計画を立てる
- お買い物をする(例)買い物リストを作成して効率のいいルートでお店をまわっていく
- 家計簿をつける(例)毎月のお金を記録してどこに支出があったのかを分析する
- 旅行の計画を考える(例)どこにいくのか、何をするのか、そのために必要な手配をする
- 健康のためのダイエット(例)毎日の体重や食事のデータを集めて、調整する
このように、プログラミング的思考は問題解決やデータを分析する力、効率化を考える力、自己管理能力をあげるなど、多くのメリットがあります。
4−2.多角的にものごとを見れるようになる
「2−3.複数の考えを組み合わせる(組み合わせ)」のメリットに書いたように、プログラミング的思考を身につけることで、自分の考えだけでなく、ちがう人の立場や視点に立って物事を見ることができるようになります。多角的に見ることで、問題を解決するための方法や選択肢を広げてくれるだけでなく、自分のなかにある固定観念をなくして柔軟な思考ができるなどメリットがあります。
4−3.発想力を鍛える
プログラミング的思考を鍛えていくことで、子どもの持つユニークな考え方や発想を自由に形にする力を身につけることができます。今後、AIやシステムによって仕事がうばわれる時代が来るといわれているなかで、生きていくうえで「発想力」はとても重要なスキルでもあります。
4−4.将来的にさまざまな仕事で役に立つ
また、プログラミング的思考には効率的に仕事を進めることができる、問題を解決する力がつく、状況の変化に柔軟に対応できるといったメリットがあり、今後どんな仕事でも活かすことができます。
文部科学省でもこのように書いています。
情報技術を効果的に活用しながら、論理的・創造的に思考し課題を発見・解決していくために、「プログラミング的思考」が必要であり、そうした「プログラミング的思考」は、将来どのような進路を選択しどのような職業に就くとしても、普遍的に求められる力であるとしています。
引用:文部科学省「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」より
このようにプログラミング的思考はこれからの社会を生き抜くうえで必要なスキルといえます。
もちろん、子どものころからプログラミング的思考の意味や考え方を理解して行動することはなかなか難しいことです。ただ、早い段階でこういった経験をたくさんして、自分の思考に取り入れて成長した人と、そうでない人では、そのあとの成長速度や考え方の視点もちがってきます。大人になってからプログラミング的思考を身につけるには、かなりの時間がかかります。柔軟で吸収力の高い、子どものころから身につけておくことをおすすめします。
5.【親子向け】プログラミング的思考を鍛える方法!実践例6選
プログラミング的思考は子どものころから身につけておくべきと伝えましたが、どうやって実践すればいいのか悩みますよね。ここからは、親子でいっしょにプログラミング的思考を身につけることができる方法を6つ紹介します。
5−1.家でお手伝いをしてもらう(料理・買い物・洗濯)
プログラミング的思考を身につけさせるには、家での「お手伝い」があります。特に、料理や買い物・洗濯といった家のお手伝いは身近にできる方法で習慣づけやすいためオススメです。
(1)実践例1:料理編
お家でできる実践例、1つ目の料理では、食材の準備から料理をするとろこまですべてにおいてプログラミング的思考を使う機会があります。今回は、カレー作りを例に紹介します。
カレーを作る
実践例
●カレーの食材や調味料をメモに書き出す(分解)
↓
●手順を考えて適切な順に並びかえる(組み合わせ)
洗う、切る、焼くなど食材ごとに何をしないといけないのか手順を考える。
↓
●手順をイメージする(シミュレーション)
本当にその手順で大丈夫か考える。
↓
●考えた手順通りに料理をして盛りつける(実行)
↓
●できがった料理の手順をレシピにまとめる(一般化・抽象化)
レシピとして手順を整理して誰でもわかりやすくするために大切な部分だけにしぼって書く
(2)実践例2:お買い物編
お買い物でもプログラミング的思考の実践練習ができます。今回はカレーの食材と文房具(ノートとペン)を買いにいく例で紹介します。
カレーの食材と文房具(ノートとペン)のお買い物
実践例
●買うものを思いだしてメモに書く(分解)
(例)にんじんん・じゃがいも・ペン・ノート
↓
●買うものをカテゴリごとにわけて整理する(抽象化)
(例) にんじん・じゃがいも → 野菜(食料品売り場) ペン・ノート → 文房具(文具コーナー)
↓
●お買い物リストにまとめる(一般化)
(例) 食料品売り場で野菜を、 文具コーナーで文房具を買う
↓
●買い物ルートを考える(組み合わせ・シミュレーション)
(例)野菜はくさると困るから、先に文房具を買ったあと食料品売り場で野菜を買おう
↓
●考えたルート通りに買い物へ行く(実行)
↓
●買い忘れがないか確認する
(3)実践例3:洗濯編
次に、洗濯のお手伝いをするときでの実践例を紹介します。
洗濯のお手伝い
実践例
●何を洗濯するのか考える(分解)
(例)短いくつした・長いくつした・Tシャツ・Yシャツ・ズボン2枚・ドレス
↓
●まとめていっしょに洗濯できるものを探す(抽象化)
(例)
短いくつした・長いくつした → くつした
Tシャツ・Yシャツ → シャツ
ドレス→ ドレス
↓
●洗濯から干すまでの流れをイメージする(組み合わせ・シミュレーション)
(例) なるべく時間のかかるハンガーにかける服を先に干すようにしよう。
↓
●洗濯する(実行)
↓
●洗濯した服を干す(組み合わせ・抽象化)
(例)
・ハンガーにかける服から干す
・パラソルハンガーをつかうくつしたは最後にする
・なかなか乾きにくい服から干す
以上が家でできる3つの実践例でした。
まとめると、日頃から目的に向かって手順を考えるクセをつけていけば、自然とプログラミング的思考を身につけていくことができます。何度も繰り返していくことで、「これはこういうことなのか」と構造や流れを理解できるようになります。あきらめずにトライをしましょう。
また、大人とくらべて子どもはまだ1つ1つの作業をはやく理解や処理することができません。保護者の方はなるべく子どものペースにあわせて見守ってあげることを忘れないようにしましょう。
5−2.カードゲーム・ボードゲーム
プログラミング的思考を身につける方法として、ボードゲームやプログラミングトイといったものがあります。ゲームで勝つためには必ず相手の攻撃を分析し、どういった手順で戦うといいのか戦術や改善方法を考えるなど、遊びのなかでプログラミング的思考を身につけていくことができます。おすすめのカードゲームやボードゲームは「6−3.おもちゃやボードゲーム」で紹介しています。
5−3.パソコンやタブレットで遊べるアプリ・ゲーム・おもちゃ
パソコンやタブレット向けゲーム・アプリなど遊びのなかでプログラミング的思考を身につけることができます。
ゲームのお題やミッションを解決・クリアするために、お題のなかにある1つ1つの問題をわけて「考える」、実際に「トライ(実行)する」、失敗したら「振り返る」、「再度別の方法や設定を変えてトライする」「さらにもっと効率よくクリアができないか考える」を繰り返していくことでプログラミング的思考を自然と身につけることができます。
おすすめのパソコンやタブレットゲームの紹介は、「6−1.ゲーム(マイクラ・Hour of Code)」をご覧ください。
5−4.プログラミング的思考をたのしく学べる動画
プログラミング的思考とは何なのか、難しい言葉を使わず簡単でたのしく学べる方法を探している人には、子ども向けに提供しているプログラミング的思考を学べる教材動画がおすすめです。オンラインやアプリで見れるためインターネットさえつなげればすぐに学ぶことができます。
くわしい教材動画の紹介は「6−4.動画(NHK テキシコー・バンダイ公式チャンネル)」をご覧ください。
5−5.講座や研修・セミナーやスクール
プログラミングスクールや個人でプログラミング的思考を学べる講座や研修・セミナーイベントが開催されています。「プログラミング的思考についてイマイチよくわからない!」「やり方がわからず誰かに教えてほしい」といった人は、講座や研修・セミナー・スクールの先生などの専門的な知識を持った人に教えてもらうことも1つの方法です。
5−6.運動やスポーツ
プログラミング的思考は、運動やスポーツを通して身につけることもできます。スポーツのなかでも、特にバスケットボールやサッカーなどのチームスポーツは相手に勝つために戦術を考えたり、相手のプレイの分析をしたり、効果的な練習メニューを考えるなどプログラミング的思考と同じような考えが必要になるためおすすめです。
チームスポーツの例
- サッカー
- バスケットボール
- バレーボール
- 野球 など
以上がプログラミング的思考の鍛え方の紹介でした。
このように見てみると、普段の日常生活のなかで何気なく行っている事が、実は「プログラミング的思考」と深く関わっています。そのため、この段落で紹介したような6つの方法をはじめ、日常生活のなかで行う事を、ただ楽しむだけでなく、そこに「プログラミング的思考」を意識しながら取り組むことで、もっとちがった視点や考え方が生まれ、そして日常生活で繰り返し実践していくことで、自然にプログラミング的思考が身についてくると思います。
6.プログラミング的思考が身につくゲーム・アプリ・おもちゃ&動画紹介
前述した通り、プログラミング的思考は、ゲーム・アプリ・おもちゃや動画などでたのしく身につけることができます。ここからは、ゲーム・アプリ・おもちゃ・動画の4つにわけて紹介します。
6−1.ゲーム(マイクラ・Hour of Code)
まずはパソコンやタブレットなどをつかってプログラミング的思考を学べるゲームを紹介します。
(1)マイクラ(Minecraft)
マインクラフト(Minecraft)は、さまざまな種類のブロックを組み合わせて自由に建物や構造物、島などを作れるので、論理的思考力や計画性、やり抜く力(問題解決力)や発想力などを鍛えることができます。
- ・URL:https://www.minecraft.net/ja-jp
- ・料金:有料(無料版もあり)
(2)アワーオブコード(Hour of Code)
4歳から高校生までの子ども向けに無料でプログラミング学習を受けることができる、パソコン・タブレット用のゲームサイトです。運営会社は海外ですが、日本語対応しているので安心して遊べます。
- ・URL:https://hourofcode.com/jp/learn
- ・料金:無料
6−2.アプリ
Scratch(スクラッチ)とは、無料で遊べるプログラミングゲームサイトです。ビジュアルプログラミング言語とよばれるブロックを組み合わせてプログラムを作成します。ゲームで遊ぶだけでなく自分で作れるので、プログラミングの基礎を学びながらプログラミング的思考も身につけることができます。最近では学校の授業やプログラミングおもちゃにスクラッチが採用されています。
6−3.おもちゃやボードゲーム
最近では、プログラミングトイ(おもちゃ)やボードゲームといったプログラミング的思考を身につけることができるおもちゃが増えています。
(1)おもちゃ
おもちゃのタイプはたくさんありますが、下のようなおもちゃタイプはプログラミング的思考を身につけるにはぴったりです。
おすすめのおもちゃタイプ
- 組み合わせを考えるおもちゃ:ブロック系・パズル系おもちゃ
- 手順をみてシミュレーションができるおもちゃ:ロボット工作
- 自分で道筋をたてて試行錯誤するおもちゃ:コーディングブロックを使ったロボットおもちゃ
(2)ボードゲーム
将棋・チェス・オセロといったボードゲームもおすすめです。ボードゲームで相手に勝つためには、自分で推測や推理をして、戦略をたてて、実行するといったプログラミングと同じような手順が必要です。ほかにも、ゲームクリアのためにシミュレーションや逆算する力、負けたときにどうして負けたのか振り返る力も身につけることができます。また多くのボードゲームは1人ではなく誰かと戦います(またはチームとなっていっしょに戦う)。プログラミング的思考だけでなく、状況をすばやく理解するといったコミュニケーションスキルも身につけることができます。
6−4.動画(NHK テキシコー・バンダイ公式チャンネル)
YouTubeなどの動画でプログラミング的思考を学ぶことができます。今回は、音とアニメーションを使って紹介している動画やプログラミングスクールの人が教える教材動画の2つを紹介します。
(1)NHK テキシコー
「テキシコー」とは、NHKが放送・配信している小学3年生〜高校生を対象にしたプログラミング教育番組です。おもわず口ずさむような音楽が印象的でプログラミング的思考をよりわかりやすくまとめた、10分ほどのアニメーション動画です。
(2)バンダイ公式チャンネル(Youtube)
「バンダイ公式チャンネル」Youtubeアカウントでは、プログラミング的思考についての紹介動画が4本アップされています。動画内では、日常生活にある身近なものを例にプログラミング的思考を紹介しているのでイメージもしやすいです。
以上がプログラミング的思考が身につくゲーム・アプリ・おもちゃ&動画紹介でした。
7.まとめ
「プログラミング的思考」とは何なのか図を使ってくわしく解説してきました。
プログラミング的思考は、プログラム作成や設計で使う考え方を応用した思考のことで、論理的思考に、効率よく最適な方法を考える力を足したものです。具体的に説明すると、目的を達成するために必要な情報や手順を見つけて、検証と改善を繰り返して一番効率よく効果的な方法を考え出すといった一連の流れをいいます。
プログラミング的思考には、「分解」「一般化」「組み合わせ」「抽象化」「シミュレーション」の5つのスキルがあります。これらのスキルを身につけると理解力があがり、作業効率が良くなる、創造性や発想力を育ててくれる、コミュニケーションの場で言葉のキャッチボールがスムーズになるなどさまざまなメリットがあり学校や仕事だけでなく日常生活でもとても役に立ちます。近年は、ITが急成長していることから、ITツールや技術をうまく使って論理的・創造的に考えて問題を解決する「プログラミング的思考」はどんな職業についても必要とされています。
この記事で紹介した実践例のように、プログラミング的思考は学校の授業だけでなく、ゲーム・スポーツ・料理や洗濯といった遊びや身近なところで身につけることができます。特に、料理や洗濯といった家でのお手伝いはおやこでいっしょにたのしくプログラミング的思考を実践できておすすめです。
日頃から「目的」に向かって手順や工程を考えるといったクセをつけていけば、自然と子どものプログラミング的思考は身についていきます。ただし、子どもはまだ1つ1つの作業をすばやく理解することができません。何度も挑戦をさせてあげて子どものペースにあわせて見守ってあげることが大切です。
記事で紹介した実践例やポイントを参考に、おやこでたのしくプログラミング的思考を育てていきましょう!