2020年度から小学校でプログラミングの学習が必修化されましたことはご存知の方も多いと思います。小学生がプログラミングを学ぶ目的として、「プログラミング的思考」を身につけることが重視されています。
しかし、この「プログラミング的思考」という言葉が何をさしているのかわかりにくいですし、どうすればプログラミング的思考が身につくのかもわかりにくいと思っている方も多いのではないでしょうか。
そんな方のために、この記事では以下について説明しています。
- 文部科学省が定義する「プログラミング的思考」とは?
- ゲームによって「プログラミング的思考」が育つのか
- 「プログラミング的思考」を育てるおすすめゲーム
このページを読み終わる頃にはプログラミング的思考について詳しく理解し、お子さまにどのようなものをやらせたらプログラミング的思考を育てることができるのかわかるようになりますので、ぜひ最後までご覧ください。
目次
「プログラミング的思考」とは
文部科学省の資料の中で、「プログラミング的思考」は以下のように説明されています。
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
文科省はここで「プログラミング的思考」とは、特定の目的や目標を達成するためにどのような行動をしていくべきかを考える能力であると言っています。
例えば、家庭科の調理実習などで、カレーを作る際に、どのタイミングで野菜を切って、どの順番で火をかけ始めるのかなどを考える能力も「プログラミング的思考」だということです。
「プログラミング的思考」というのは、あくまで「的思考」ということで、実際にプログラムのコードを実際に書く能力ではないのです。
「プログラミング的思考」を身につける効果
先にご紹介した文部科学層の資料では、プログラミング的思考を身につける効果について、以下のように説明されています。
情報技術を手段として使いこなしながら、論理的・創造的に思考して課題を発見・
解決し、新たな価値を創造する
たとえば、二酸化炭素の排出量と温暖化が問題視されている現代において、まだまだガソリン車が主流ですが、「これは問題だ!」と気づいたとしましょう。
この問題の解決法の一つとして電気自動車がありますが、電気自動車が主流になるためにはバッテリーや充電スタンドなどの開発が必要です。また、電気自動車では、自動運転の技術と組み合わせて、移動のあり方や事故の減少も達成できそうだと考えることもできます。
こうした課題発見と解決には、コンピューターやプログラミングといった情報技術を使いこなすことが求められます。プログラミング的思考では、こうした課題発見と解決、新しい価値想像ができるようになることがゴールとして設定されています。
こうした能力は、グローバルな規模でのイノベーションのような大規模なものに限られるものではなく、身近な生活上の課題の解決にも役立つので、小学生全員がプログラミングを学ぶことになりました。
プログラミング的思考を身につけるメリット
次に、プログラミング的思考を身につけるメリットについて説明しましょう。
プログラミング的思考を身につけると、以下のようなメリットがあります。
- 自分のアイデアを実際に試すことができるようになる
- 複雑な問題を分解して紐解けるようになる
- 粘り強く前にすすめるようになる
これらの能力がなぜ身につくのか、ゲーム・プログラミングの例を上げながら、順番に説明していきます。
3-1. アイデアを試すようになる
「プログラミング的思考」を身につけることで、子どもは思いついたアイデアを試すことができるようになります。
普段人が作ったゲームで遊んでいると、ゲームはあるもので遊ぶものと思い込んでしまいます。しかし、プログラミングでゲームを作ることを学んだことがある子どもは、自分が考えたアイデアをゲームで実現できることを知っていますし、実際に実現した経験ももっています。
こうした経験を繰り返すことで、日頃からアイデアを考え、それを試すことができることができるようになっていきます。
こうした能力は、大人になってからはもちろん、学生時代にもとても役に立つものです。
3-2. 複雑な問題も紐解けるようになる
プログラミング的思考を学んでいくなかで、より複雑な問題も紐解けるようになっていきます。
たとえば、ゲームでボスキャラを出現させたいと考えたとしましょう。
これを実現するために、以下のようなことが必要だと気づいたとします。
- ゲームスタート時には出現せず、一定時間経過後にあらわれる
- 一度攻撃を受けただけでは倒されない
- 強い攻撃をしていく
- 倒すと多くのポイントがもられる
これらを実現するためには、複雑な処理を分解して、一つずつ実現していく必要があります。
こうしたより複雑な問題に取り組む中で、問題の構造を単純な問題へと分解し、再構築しながらもとの大きな問題を解決する方法を学ぶことができます。
こうした能力を小学生のうちに身につけることは、大きな意義があります。
3-3. 粘り強く前に進めるようになる
「プログラミング的思考」を身につける過程では、粘り強く前に進む力も身につきます。
ある論文では、プログラミングを使ったものづくりの過程で、「完成させる、やりきる力(忍耐力、集中力)の向上」が見込めるとされています
参考:https://www.jstage.jst.go.jp/article/jjsei/32/2/32_3/_pdf
プログラミング的思考を学んでいくときに、しだいに課題が複雑になっていきます。たとえば、ゲームを作りながら学ぶ場合、複雑な課題では、最初に自分が出したアイデアが間違っていたり、思ったとおりに動くようなものを作れないことがあります。
こうしたときに、最初は正しくなかったとしても、すぐにまた次のアイデアを試し、粘り強く目的を達成する道を探ることが求められます。
エジソンが実験に失敗したときの名言で「失敗したことがない。ただ、1万通りのうまくいかない方法を見つけただけだ」というものがありますが、この精神こそ粘り強く前に進む「プログラミング的思考」と言えます。
こうした力を身につけて、何事にも辛抱強く取り組める子どもに育って欲しいですね。
ゲームで「プログラミング的思考」を育む
4-1. ゲームでも「プログラミング的思考」は育つ!!
「プログラミング的思考」は必ずしもコードを書くプログラミングを通じてでなくても育むことができるというのが文科省としての見解です。
ここでは、ゲームで「プログラミング的思考」を育むことについてご紹介します。
たとえば、「プログラミングゼミ」というアプリでは、用意されているブロックを組み合わせてケーキを手に入れるという目的を果たすことを目指します。
これは、冒頭でご紹介した「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」そのものですね。
4-2. ゲームで「プログラミング的思考」を育てるメリット
次に、ゲームで「プログラミング的思考」を育てるメリットについて解説します。
①子どもが楽しく学べる
ゲームでプログラミング的思考を学ぶメリットとして、子ども自身が楽しく学べることがあげられます。子どもはゲームが好きです。本人にとっては勉強という意識ではなく、遊んでいる感覚で学ぶことができでしょう。
「ゲームだけどやてみる?」とお子さまにタブレットを渡してあげることで、よろこんで取り組んでくれるでしょう。
何かを学ぶ時に生じる「勉強やだな」と思う最初の壁を取り除くことができ、さらには興味や好奇心を維持することもできるのがゲームでプログラミング的思考を学ぶメリットです。
②親子で楽しめる
また、こうしたゲームは、お子さまだけでなく保護者の方も一緒に取り組むことができます。
いっしょに遊びながら、お子さまができたことを褒めたり認めてあげることで、やる気を出すことにもつながります。
思っていたよりも難しく、ゲームによっては苦戦するかもしれませんが、ぜひお子さまといっしょに楽しんでみてください。
「プログラミング的思考」を鍛える6つのオススメゲーム
プログラミング的思考を鍛えるゲームには、「アプリ」と「ボードゲーム」があります。それぞれ紹介していきます。
手軽に始められるゲームアプリ!!
5-1. プログラミングゼミ
はじめての方におすすめ! 楽しく可愛い「プログラミング的思考」を鍛えるゲーム
こんな子におすすめ
・可愛いキャラクターが好き
・自分で作ったものが動くところを見たい
費用 | 無料 |
媒体 | スマホ、タブレット、PC |
対象年齢 | 小学1〜3年生 |
おすすめしたい理由 | ・キャラクターが可愛い
・自分のイラストも使える ・とにかく楽しく学べる!! |
5-2. springin
自由に作った作品を出品までできる新世代”プログラミング的思考”のゲーム
こんな子におすすめ
・いろんなゲームやアニメを作ってみたい
・自分の作ったものをいろんな人に評価してもらいたい
費用 | 無料 |
媒体 | iPhone、iPad |
対象年齢 | 4歳〜大人 |
おすすめしたい理由 | ・作れるものの自由度が高い
・作った作品をマーケットに出品できる ・わかりやすいビジュアルプログラミング |
5-3. Scratch jr.
Scratchにつながる操作のわかりやすいゲーム
こんな子におすすめ
・自分でキャラクターを描いたりするのが得意
・自分だけのアニメやゲームを作りたい
・もう少し大きくなったらScratchにも挑戦してみたい
費用 | 無料 |
媒体 | タブレットのみ |
対象年齢 | 5-7歳 |
おすすめしたい理由 | ・キャラクターがたくさんいる
・背景もたくさん選べる ・1つ高いレベルのScratchにつなげられる |
端末がなくても楽しめるボードゲーム
4-4. Robot tutles
こんな人におすすめ
・複数人数でプレイしたい
・本格的なプログラミングに近いことをしたい
費用 | 4,600円(税込) |
プレイ人数 | 1〜4人 |
対象年齢 | 4歳以上 |
おすすめしたい理由 | ・未就学児のお子さんも一緒にできる
・4人までプレイできる ・間違ったら動かないため、実際のプログラミングに近い |
4-5. Code Master
こんな人におすすめ
・RPGゲームが好き
・難しい問題に挑戦したい
・問題解決能力を高めたい
費用 | 4,300円(税込) |
プレイ人数 | 1人 |
対象年齢 | 8歳以上 |
おすすめしたい理由 | ・RPG風のイラストで楽しめる
・簡単なものから高いレベルまで幅広くある ・しっかり問題解決能力が身に付く |
4-6.TOKYO HIGHWAY
費用 | 5,940円(税込) |
プレイ人数 | 2-4人 |
対象年齢 | 8歳以上 |
おすすめしたい理由 | ・完成した時に見栄えがクール
・単純なパーツ ・たくさんの遊び方がある |
論理的に考える能力に加えて、「プログラミング的思考」に必要な要素
「プログラミング的思考」の語源は「コンピューテーショナル・シンキング」
文部科学省が定義する「プログラミング的思考」に基づいてお話し、論理的に筋道を立てて考える能力を育むゲームをご紹介しました。
わたしたちMYLABは、「筋道立てて論理的に考えることができるようになる」だけでは、プログラミング的思考の獲得に少し不十分であると考えています。
「プログラミング的思考」では、特定の目的に対して論理的に筋道を立てて考える能力に重きがおかれているようです。しかし、「プログラミング的思考」という言葉の元になった、「コンピューテーショナル・シンキング」という考え方では、もっと広い概念のものでした。
以下の引用は、文部科学省において、プログラミング教育について有識者が議論したた際の議事録です。コンピューテーショナルシンキングという言葉の訳語としてプログラミング的思考という言葉が使われているのがわかります。
プログラミング教育の本質がなんであるかというと、御存じのとおりコーディングというよりは、プログラミング的思考、先ほどもありましたが、コンピューテーショナル・シンキングと言われているところがプログラミング教育の本質ではないかと考えておりまして、この部分を強めるのが、プログラミング教育のあるべき姿だと感じているところです。
引用:小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議(第2回) 議事録
「コンピューテーショナルシンキング」については、こちらの論文で詳しく記載されています。
「コンピューテーショナル・シンキング」を構成する要素として、以下のようなものが含まれるとされています。
・難しそうな問題を、すでに知っている解き方に変換したり簡略化したりする
・複雑で大きな問題を、抽象化や細かく分ける分けることで解決する
・問題を解きやすくするために適切な側面を切り取る(モデル化する)
・不確定な状況において計画やスケジュールを立て、状況から学ぶ
参考:https://www.cs.cmu.edu/afs/cs/usr/wing/www/ct-japanese.pdf
これらを見ていただくと、論理的に筋道を立てて考える以上のことが含まれていることわかります。
「コンピューテーショナル・シンキング」についてさらに詳しく知りたい方は、以下の記事で詳しく記載していますので、ぜひ参考にしてみてください。
プログラミング的思考を鍛えるときに重要なもの
このblogを運営するプログラミング教室MYLABでは、プログラミング的思考を養うときに、論理性だけではなく、創造性の育成が不可欠だと考えています。
ここで言う「創造性」とは、誰かが考えた論理的に正しい答えにたどりつくだけではなく、試行錯誤する中で、自分なりの正解にたどりつく力のことです。
論理的な思考能力はゲームでも養うことができます。しかし、創造性は、試行錯誤しながら実際に「ものを創る」ことでしか、育むことができないと考えています。
たとえば、プログラミングを手段として使って、ゲームをつくったり、ロボットをつくったりする中で、創造性が養われるということです。
プログラミングでは、一つの目的を達成するために、いくつも正解が存在することがほとんどです。こうした活動を通して、論理性と創造性が養われます。
MYLABのレッスンは、子どもたちの創造性を育むことを重視したレッスンです。
レッスンでは、カリキュラムで大まかな方向性は定めているものの、子どもたち一人ひとりが自分のアイデアを試し、自分らしい作品を試行錯誤しながらつくる余白の時間が長くとられています。
どんな職業に就いた時にも役立つ「創造的に考え行動できる力」をMYLABで身につけませんか?