見出し画像

エラー(誤答)で学ぶ意義

算数・数学では, 誤答を提示し,その原因を考えることを通して,数学的な概念の理解を深めるという授業を行うことがあります。谷本(2008)は,数学文章題で誤った式の理由を考えさせることの効果について検討し,正答を説明するよりも誤答の理由を説明した生徒の方が,事後テストにおいて,文章題に含まれるキーワードを頼りに演算子を決定したと考えられる誤答が減少することを示唆しています。
プログラミングの学習では,サンプルプログラムを入力して動作を確認するといった学習過程がよく見られます。
喜多ら(2016)は,このような学習過程を「写経型学習」と呼び,初学者がこれを実践するときのつまずきに着目し,その支援方法について検討しています。その支援方法の一つとして,教材や授業であえて明示的に典型的なエラーを経験させる「エラーの明示的経験」を提案しています。
遠山ら(2021)は,プログラミング初学者が作成したバグがプログラミングについて学ぶ学生に対してどのような効果があるかを検討し,誤概念が反映されていることへの気づきにつながったことを示唆しています。

このようなことから,誤りから学ぶという学習活動は,学習する内容の深い理解につながると考えられます。

筆者はプログラミングを独学で学んできましたが,その際,参考になるプログラムを入力しては実行し,エラーと格闘してきました。実際,プログラミングでは,プログラムを作成するよりも,ときにはエラーの原因を探り,対応することにより多くの時間をかけることもあります。
Scratchのようなビジュアルプログラミング言語と違い,英数字でプログラミングを書いていくテキストプログラミング言語では,わずか1文字の間違いでエラーが発生し動かないということはよくあることです。
例えば数字の1(いち)とアルファベットのl(小文字のエル)は,フォントによってはほとんど同じに見えますね。
ユーザーの入力を受け付けるinput命令をタイピングミスでimputとしてもエラーです。このようなエラーは,それぞれのプログラミング言語が定めた構文規則に従っていないときに発生するもので,構文エラー,文法エラー,シンタックスエラーなどと呼ばれます。このエラーは,プログラムを実行したときに,エラーの部分で停止することが多いので,発見しやすいエラーとも言えます。
それに対して,論理エラーは,実行結果が意図したとおりにならないエラーのことです。構文エラーと違い,プログラムが最後まで実行されるので,どこでエラーが起きているかが見つけにくいです。
Scratchのようなビジュアルプログラミング言語は命令がブロックになっているので,構文エラーは発生しません。そのため,様々な論理エラーについて深く学ぶ必要があります。
しかも,多くの論理エラーは,Scratch特有のものではなく,どのプログラミング言語でも同様な論理エラーが起きる可能性があるものですので,ここでの学習は他のプログラミング言語にも活かせるものです。
さらに,より多くのエラーのパターンを知ることで,初学者のつまずきを想像する力がつき,指導や支援に役立てることができます。

谷本衡亮. (2008). 状況把握のしにくい文章題において誤った式の生成理由を考えさせることの効果. 日本教育心理学会総会発表論文集, 50, 587. https://doi.org/10.20587/pamjaep.50.0_587
喜多一, 岡本雅子. (2016). 写経型プログラミング学習と反転授業. 第60回システム制御情報学会研究発表講演論文集. https://repository.kulib.kyoto-u.ac.jp/dspace/handle/2433/226809
遠山紗矢香,山田雅之. (2021). プログラミング初学者のバグを用いた大学生の協調的な学習. 日本教育工学会2021年春季全国大会論文集

#プログラミング  #Scratch  

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