サイエンス

プログラミングを勉強するには「言語能力」と「問題解決能力」も重要


モノのインターネット(IoT)の普及や機械学習技術の進歩によって、プログラミングを学ぶ重要性は近年高くなっています。しかし、「プログラミングの学習には数学的知識が必要」というイメージから「数学が苦手だから今からプログラミングの学習をしても習得できないかも」と悩んでいる人もいるはず。そんなプログラミングの学習には数学的知識の有無よりもむしろ「言語能力や問題解決能力の高い方が有利である」とする論文が発表されました。

Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages | Scientific Reports
https://www.nature.com/articles/s41598-020-60661-8


Study reveals you don’t have to be a math expert to become a coder - tech - Hindustan Times
https://www.hindustantimes.com/tech/study-reveals-you-don-t-have-to-be-a-math-expert-to-become-a-coder/story-0Rpo4mgrDnkUaOwAc8fhUJ.html

研究チームは「計算の重要性が現代のプログラミング教育環境で過大評価されているのではないか」「自然言語の学習能力の高さはプログラミング学習にも影響を与えるのではないか」と考え、18歳~35歳のプログラミング経験がない若者36人に、数学の能力・言語能力・問題解決能力を測定するテストを行いました。


さらに、研究チームは被験者にオンライン学習プラットフォームCodecademyPythonのオンライン講習を受けさせました。数あるプログラミング言語の中からPythonを選んだ理由として、研究チームは「Pythonの開発哲学は読みやすさを目指しており、その記述スタイルは比較的英語に近いから」と述べています。

被験者はいい加減に講習を進めてしまわないように、「分からない時にどのように助けを求めたか」を必ず報告させられ、研究チームは被験者のPC画面を共有してこの報告をチェックしたとのこと。また、被験者のPythonの学習能力は「講義データから算出される学習率」「学習後に作成したコードに基づくプログラミングの精度」「Pythonに関する知識に関するテスト」の3つで評価されました。


その結果、Python学習の成果には被験者間で大きな個人差が見られたとのこと。研究チームは学習率・プログラミングの精度・知識の正確さには正の相関関係が見られると述べ、「学習コースをより早く修了した人は、学習の正確さを犠牲にしていなかった」と論じています。

また、被験者が事前に受けたテストと脳波測定の結果から、プログラミング言語をより早く、より正確に習得した人は言語能力と問題解決能力が優れている傾向がみられたことを研究チームは報告しています。これらの結果から、研究チームは、計算能力など数学の知識や能力もプログラミングの理解には重要であることは認めながら、数学能力だけがプログラミング学習に求められるものではないと主張しました。

研究チームは「一定の規則に基づいて記号をつなぎ合わせることで意味を作り出すという点で、プログラミング学習の根本は自然言語学習と同じである」と述べ、「言語能力や問題解決能力のテスト結果も、Pythonの学習においては個人の学習率を予測できる因子の1つとなり得る」と結論づけました。また、ソフトウェア工学でも使用頻度の高いJavaのような「ユーザーフレンドリーではない言語」の学習に関しても研究を進めていくと述べています。

ワシントン大学シアトル校の心理学者で論文の筆頭著者であるシャンテル・プラット氏は「プログラミングは習得するのが難しいものですが、職場で昇進するためにはますます重要になっているスキルの1つとなっています」と語り、「『プログラミングは数学の能力に大きく依存している』という考えはデータに基づいたものではありません」とコメントしました。

この記事のタイトルとURLをコピーする

・関連記事
無料のRPGをプレイするだけで未経験者でもプログラミングを習得可能な「コードクロニクル」でPythonをマスターしてみた - GIGAZINE

無料でゲームブックやYes/Noチャートをプログラミングの知識なしで作成できる「Twine」を使ってみた - GIGAZINE

プログラミングを上達するには量と質のどちらがより大切なのか? - GIGAZINE

プログラミングで問題解決するためにとるべき3つの手順 - GIGAZINE

プログラミング学習に「GitHubを使用すること」の効果とは? - GIGAZINE

Nintendo Switchでプログラミングそのものがパズルと化す「ヒューマン・リソース・マシーン」日本語版でデスマーチ回避にトライしてみた - GIGAZINE

in ソフトウェア,   サイエンス, Posted by log1i_yk

You can read the machine translated English article here.