プログラミング教育の基盤となる国語科教育③ 「プログラミング言語を使ったアルゴリズム」と論理

「プログラミング言語」を使った「アルゴリズム」の作成について考えてみましょう。
例えば「正三角形をかく」という動作をさせる場合はどのような命令を組み合わせていけばよいでしょうか。記事①で示した「動作させるための手順としての5つの流れ」を基にすると以下のようになります。

①「コンピュータにどのような動きをさせたいのかという自らの意図を明確にする」を具体的に言えば、「一辺が10センチの正三角形(三辺の長さが全て等しく三つの角の大きさも全て等しい図形=図形に関する既習事項)をかかせる」となります。
②「コンピュータにどのような動きをどのような順序でさせればよいのかを考える」は、「まず10センチの辺をかく」「その辺の右端から60度の角をを作る」「その60度の角で10センチの辺をかく」「その辺の右端から60度の角をを作る」「その60度の角で10センチの辺をかく」となります。
③「一つ一つの動きを対応する命令(記号)に置き換える」とは、「10センチの辺をかく」を「長さ 10進む(線を引く)」に、「その辺の右端から60度の角をを作る」を「左に120度曲がる」に置き換えることになります。
④「これらの命令(記号)をどのように組み合わせれば自分が考える動作を実現できるかを考える」とは、「長さ 10進む(線を引く)」「左に120度曲がる」「長さ 10進む(線を引く)」「左に120度曲がる」「長さ 10進む(線を引く)」となります。
⑤「その命令(記号)の組合せをどのように改善すれば自分が考える動作
により近づいていくのかを試行錯誤しながら考える」とは、「「長さ10進む(線 を引く)」「左に120度曲がる」を「3回繰り返す」となります。

「手引き」ではこの活動について、「数学的な見方・考え方を働かせながら、『正三角形をかく』という意図した一連の活動(学習課題) に対して、図形に関する既習事項を活用して、正三角形をかくのに『必要な動きを分けて考える』『動きに対応した命令にする』『それらを組み合わせる』『必要に応じて継続的に改善する』といった試行錯誤を行う中でプログラミング的思考を働かせています」と解説しています。

具体的な論理的思考で考えていけば、③では演繹的思考が働いていることになります(「データ」は「ひとつの動き」となります。これが「理由づけ」としての「プログラミング言語の命令パターン」を基にして「主張」としての「命令」に変換されていることになります)。④では具体的事実(命令)の配列順を考える思考、つまり順序の思考が働いています。決してこの順序が入れ替わってはいけないのです。⑤でもまた演繹的思考が働いていることになります。ここでは、「同じ命令を繰り返すことは効率的ではない」「同じ命令は『繰り返し』という命令でまとめるべきである」というアルゴリズムの原則が「理由づけ」となっていることになります。


この記事が気に入ったらサポートをしてみませんか?