【プログラミング教育の基礎5】試行錯誤を通して論理的に考えていく力…東北大・堀田龍也教授
2018年8月17日(金)15時15分 リセマム
次期学習指導要領で注目される、小学校での2020年からのプログラミング教育の導入。その第一人者である東北大学大学院情報科学研究科・堀田龍也教授が「プログラミング教育」の基礎をわかりやすく解説。
「プログラミング的思考」の定義
文部科学省が設置した「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」は、平成28年6月16日に「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を提出した。この有識者会議での論点を紹介していこう。
コンピューターには、人間の言葉は直接的には理解できない。「いやいや、近頃は音声で認識しますよ」という人がいるかもしれないが、誤解がないように説明しておくと、最近普及している日本語音声認識は、入力された音声に対して、日本語の単語の音声データベースと、日本語の構文についてのデータベースを上手に組み合わせ、分解して照合して判定するプログラムによって実現されている。コンピューターが人間のように日本語を理解しているのではなく、「日本語を理解しているように振る舞うプログラム」が動いているのだ。
このように、コンピューターに何かをやらせたいときにはプログラムを組むことが必要となる。もちろん、すべてのプログラムをユーザーが組むわけではない。システムエンジニアなどの専門家によって開発されるプログラムがほとんどだ。
だからといって、コンピューターの中で何が起こっているかをユーザーが知らないままでよいのか、誰かがプログラムをつくって世の中を便利にしてくれるからユーザーは受け身で使えばよいのだという情報社会に対する感覚でよいのかということが、プログラミング教育導入の論点となったのである。せめて、プログラムというものはどのように構成されているのか、その結果どのようなことがどのように便利になっているのかについて、基本的な視座をもつことはすべての人材に必要であるというのが有識者会議の判断となったのである。
プログラムを組んでコンピューターに何らかの作業をさせる場合、まず自分がコンピューターに行わせたい一連の活動を細かい動きに分解する。次に、それらの細かい動きをどのように組み合わせれば目的の行動になるかを想定する。コンピューターには人間の言葉が直接理解できるわけではないので、コンピューターにわかる「記号」で伝える必要がある。1つ1つの細かい動きに対応した「記号」をどのように組み合わせたら目的の動きになるのかを考える。ここでいう「記号」の組合せがプログラムである。これらの「記号」の組合せを、どのように組み替えれば意図した行動により近づいていくのかを試行錯誤する。このような試行錯誤を通して論理的に考えていく力のことを、有識者会議では「プログラミング的思考」と定義した。
(注)ここでいう「記号」とは、情報処理の世界では「命令語」と呼ばれるものにあたる。
「プログラミング的思考」の定義
文部科学省が設置した「小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議」は、平成28年6月16日に「小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)」を提出した。この有識者会議での論点を紹介していこう。
コンピューターには、人間の言葉は直接的には理解できない。「いやいや、近頃は音声で認識しますよ」という人がいるかもしれないが、誤解がないように説明しておくと、最近普及している日本語音声認識は、入力された音声に対して、日本語の単語の音声データベースと、日本語の構文についてのデータベースを上手に組み合わせ、分解して照合して判定するプログラムによって実現されている。コンピューターが人間のように日本語を理解しているのではなく、「日本語を理解しているように振る舞うプログラム」が動いているのだ。
このように、コンピューターに何かをやらせたいときにはプログラムを組むことが必要となる。もちろん、すべてのプログラムをユーザーが組むわけではない。システムエンジニアなどの専門家によって開発されるプログラムがほとんどだ。
だからといって、コンピューターの中で何が起こっているかをユーザーが知らないままでよいのか、誰かがプログラムをつくって世の中を便利にしてくれるからユーザーは受け身で使えばよいのだという情報社会に対する感覚でよいのかということが、プログラミング教育導入の論点となったのである。せめて、プログラムというものはどのように構成されているのか、その結果どのようなことがどのように便利になっているのかについて、基本的な視座をもつことはすべての人材に必要であるというのが有識者会議の判断となったのである。
プログラムを組んでコンピューターに何らかの作業をさせる場合、まず自分がコンピューターに行わせたい一連の活動を細かい動きに分解する。次に、それらの細かい動きをどのように組み合わせれば目的の行動になるかを想定する。コンピューターには人間の言葉が直接理解できるわけではないので、コンピューターにわかる「記号」で伝える必要がある。1つ1つの細かい動きに対応した「記号」をどのように組み合わせたら目的の動きになるのかを考える。ここでいう「記号」の組合せがプログラムである。これらの「記号」の組合せを、どのように組み替えれば意図した行動により近づいていくのかを試行錯誤する。このような試行錯誤を通して論理的に考えていく力のことを、有識者会議では「プログラミング的思考」と定義した。
(注)ここでいう「記号」とは、情報処理の世界では「命令語」と呼ばれるものにあたる。