次期学習指導要領に含まれる「プログラミング的思考」って一体何?

2018.9.13

2020年度から小学校でプログラミング教育が必修化されることに伴い、『プログラミング的思考が必要である』という声もよく耳にします。しかし、プログラミング的思考という言葉を知っていても、実際どのようなものなのか理解していない人も多いでしょう。そこで今回はプログラミング的思考について詳しく解説していきたいと思います。

プログラミング的思考とは

文部科学省が発表した「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」によると、プログラミング的思考とは、『急速な技術革新の中でプログラミングや情報技術のあり方がどのように変化していっても、普遍的に求められる力』と定義されています。また、プログラミング教育については以下のように述べられています。

プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない

つまり、プログラミング的思考は、コーディングを身に付けるためのものというよりか、自分が意図している一連の活動を実現するための手順を論理的に考える力のことを意味しています。

これからの時代に求められるもの

では、こうしたプログラミング的思考を身につけた上で、これからの時代を生きていくにあたり求められるものとは一体どのようなものなのでしょうか。

情報を読み解く力

複雑な情報を読み解くために必要な読解力は、時代を超えて常に重要なものとされています。情報化が進展する社会に求められる情報活用能力の基盤となるのも、こうした読解力です。

情報化が進展し身近にさまざまな情報が氾濫する社会において、ますます高まる読解力の重要性とは裏腹に、視覚的な情報と言葉の結びつきは弱まり、知覚した情報の意味を吟味して読み解いたりすることが少なくなっているとの指摘もあります。子どもたちが教科書の文章を読み解けていないとの問題定義もあり、全ての学習の基盤に当たる言語能力の育成は重視されています。

情報技術を用いて新たな価値を創造する力

これからの時代を生きていく子どもたちにとって、ますます身近な存在となる情報技術を効果的に活用しながら、複雑な文脈の中から読み解いた情報をもとに論理的かつ創造的に考え、解決すべき課題を自ら見出し、他者と協働して新たな価値を想像していくための力が求められていきます。

そのためにはコンピュータの働きを理解しつつ、それが自らの問題解決にどのように活用できるかをイメージし、意図する処理がどのようにすればコンピュータに伝えられるか、また、コンピュータを介してどのように現実世界に働きかけることができるかを考えることが重要となります。

学んだことを生かそうとする力

人間ならではの感性を働かせながら、より良い社会や人生のあり方について考えること、学んだことをそうした人生や社会のあり方に生かそうとすることは、我々が人間らしく生きていくために重要な営みであり、社会や産業の構造が変化していく中で、社会が求める人材像にも合致するものとなっています。

育成すべき資質・能力について

以下はプログラミング教育を通じて育成すべきと言われている主な資質・能力です。

知識・技能

身近な生活でコンピュータが活用されていることや、問題解決に必要な手順があることに気がつくこと。社会におけるコンピュータの役割や影響を理解するとともに、簡単なプログラムを作成できるようにすること。コンピュータの働きを科学的に理解するとともに、実際の問題解決にコンピュータを活用できるようにすること。

思考力・判断力・表現力等

発達の段階に即して、自分が意図する一連の活動を実現するためには、どのような動きの組み合わせが必要で、一つ一つの動きに対応した記号を、どのように組み合わせればいいのか、より意図した活動に近づくためにはどう改善すればいいのかといったことを論理的に考えていく力を育成すること。

学びに向かう力・人間性等

発達の段階に即して、コンピュータの働きを、よりよい人生や社会づくりに生かそうとする態度を涵養すること。どのように社会・世界と関わり、よりよい人生を送るか考えること。

プログラミング的思考の特徴

ここでは、プログラミング的思考によるいくつかの特徴について紹介します。

抽象化して捉える力

具体的に物事を考えることも時としてもちろん重要です。しかし、物事の本質を捉えるためには抽象的に考えることも必要となります。

抽象化とは、物事の共通部分を抽出して把握することです。例えば味噌ラーメン、醤油ラーメン、とんこつラーメン、チキンラーメンといった4種類の異なるラーメンがあった場合、「ラーメン」であることが抽象化されます。対象物の特徴を掴み、枝葉を切り捨てた本質を捉える思考力を身につけることができます。

分解して理解する力

先に述べたラーメンを例に分解すると、麺・スープ・ネギ・チャーシュー・もやしなどといった素材の組み合わせでできていることが分かります。どのような要素が合わさって一つの形になっているのか想像しつつ理解することが必要です。

順序立て理解する力

ラーメンを作る際、「まずネギを刻み、スープを作り、麺をゆで…」といった工程を段階的に踏んでいくことが必要となります。物事を進める上で、順序立てて考えていく能力です。

ベストな手法で分析する力

例えば大阪でラーメン屋をオープンすると仮定した場合、スープは塩がいいか味噌がいいか、食べる人の口に合う味を検討する必要があります。さまざまな要素を踏まえ、分析する力となります。

まとめ

さて、今回はプログラミング的思考について解説しました。

プログラミング的思考は、プログラミングに携わる仕事に就く者だけでなく、どのような進路を歩むにしても、これからの時代において共通に求められる力であります。プログラミング的思考は、あらゆる問題解決や課題処理に役立つ力です。日々の仕事や生活において、プログラミング的思考を少しずつ取り入れ、これまでにない社会づくりを実現してみてはいかがでしょうか。

embotについて詳しくみる

関連記事