
こんにちは、ラーニング事業本部のNATSUです。
私が所属しているラーニング事業本部では、プログラミングを教える教育事業を主な業務としています。今回のコラムは、ある論文をもとに苦手意識がプログラミングに及ぼす影響について考察したものとなります。お時間のある方はご一読いただけますと幸いです。
「苦手意識」が脳のメモリを奪う?
「自分は理系じゃないから」「数学が苦手だから」…。そうした苦手意識を抱えながらプログラミングを学んでいる人、いませんか?もし、その「苦手意識」こそが、あなたのプログラミング能力を物理的に制限している可能性があるとしたらどうでしょうか。
このコラムの基となる論文は、『The Relationships Among Working Memory, Math Anxiety, and Performance(作業記憶、数学不安、およびパフォーマンスの関係)』です。その知見から、苦手意識がプログラミング学習に与える影響を考察します。この論文では「数学」についての調査ですが、それをプログラミングに当てはめてみようという試みです。
構成として、論文解説パートと、考察パート、対策パートの三部構成でいきます。
論文解説:なぜ「不安」でパフォーマンスが落ちるのか?
はじめに、前提知識としてこの論文で出てくる重要なキーワードを説明します。
- 数学不安🤦♂️:数学を見るだけで緊張したり、テストで頭が真っ白になったりする状態。「数学が苦手」という気持ちが強い人ほど起こりやすい。
- 作業記憶🧠:頭の中で一時的に情報を覚えながら作業する力。
例)暗算で「27 + 18」を解くとき、途中で「7+8=15、繰り上がり1…」などを覚えておく必要があるが、この「覚えながら考える力」が作業記憶。 - 繰り上がり🧮:足し算で「10を超えるときに繰り上げる」操作。
次に、この論文で行われた3つの研究について簡単に説明します。詳細が知りたい方は下記論文をご確認ください🙇
| 参考文献:『The Relationships Among Working Memory, Math Anxiety, and Performance(作業記憶、数学不安、およびパフォーマンスの関係)』 |
1.数学不安と作業記憶の関係
実験内容:「文章を読みながら覚えるテスト」と「計算しながら数字を覚えるテスト」を参加者に行ってもらう。
結果:数学不安が高い人は、特に計算を含むテストで成績が低く、これは数学に関係する場面で作業記憶が弱くなることが示唆された。
2.暗算中に作業記憶を使わせるとどうなる?
実験内容:「足し算の暗算」と「ランダムな文字を覚える」という作業を同時に参加者に行ってもらう。
結果:数学不安が高い人は、繰り上がりのある問題でミスが急増し、時間も大幅に増えた。
3.数学以外の課題でも同じことが起こる?
実験内容:「アルファベットを何文字かずらす(例:A→C)」、「数字を一定量足す(例:15→22)」といった変換作業を参加者に行ってもらう。
結果:数学不安が高い人は、数字を扱うタスクで特に遅くなった。数字が出てくるだけで不安が作業記憶を邪魔する可能性が示唆された。
この実験が示すこと
- 数学不安は「気持ちの問題」だけではなく、実際に脳の作業記憶を一時的に弱めてしまう。特に「繰り上がり」など、作業記憶を多く使う場面で影響が大きい。
- 数学不安の人は、数学の能力に関わらず、不安が能力の発揮を邪魔している。
考察:苦手意識がプログラミングに及ぼす影響
ここからは考察なので多大に主観を含みます。それぞれのご意見を大事に読んでいただけますと幸いです。
私が思うに、プログラミングは数学と同様に作業記憶を大量に使うものだと考えています。
書くときの視点では、一時的に情報を保持するのは「変数」そのものだなぁと思うし、手順を組み立てるのは「アルゴリズム」、ここがこういうときはこうして・・・と「分岐処理」や「エラーハンドリング」を記述したりなどなど。
読むときの視点では、「ネスト」や「分岐処理」、「コードジャンプ」してるときなんかもある程度は記憶しながら作業をしているように思います。
そのため、数学不安と同じように、プログラミングに苦手意識がある人は「プログラミング不安」なるものが働くのではないでしょうか。特にデバッグのように、仮説を立てながら1つずつ検証していくような作業は、作業記憶をかなり使う部類だと思います。エラーという状況も不安を掻き立てそうですし。
作業だけでなく、新しい言語や概念の学習にも同じことが言えると思います。例えば、「オブジェクト」「クラス」「インスタンス」の3つの単語を覚えようとしているとします。この3つは密接な関係があるので、オブジェクトとはなんなのか、ということを作業記憶に置きながら他の単語の理解もする必要があります。
オブジェクト→クラス→インスタンスの順で説明を読んだとして、「インスタンスは実体で、そのもとになるのがクラスで・・・オブジェクトってなんだったっけ?」みたいな経験ありませんか?プログラミング不安があると、この現象がより強烈に現れるのではないだろうかと推測します。不安が作業記憶の容量を使ってしまうから、ですね。
そして「わかったつもり→忘れる→また調べる」のループが起き、全然頭に定着しないという感覚から、さらにプログラミング不安を加速させる、なんてこともありそうな気がします。
対策:不安とどう向き合っていけば良いのか
さて、ここまで読んでいただいた方で、プログラミング不安を抱く方はより不安になったのではないでしょうか?私が読んだ限りでは論文には対応策のようなものはこれといって書いてなかったように思います。(もとが英文でして、見落としていたらすみません🙇)
考察パートでもさんざん勝手な意見を書いてきたので、対策も勝手な意見を書かせてもらおうと思います。ソースは特にありませんのでご容赦ください。
対策1. 不安を手で書き出してみる
何が不安か、どんな場面で苦手を感じるかなどを手で書き出してみる、というものです。個人的な話で恐縮ですが、最近身の回りで「手で書く」の良いよねブームが来ていて真っ先に思いつきました。漠然と抱えている不安を、手で書くことで頭を整理しつつ、自分の状態を認識するところから把握してみる、というプロセスですね。
対策2. 小さな成功体験を積む
「できないかもしれない」という不安を「できた」という経験に変えていくプロセスです。プログラミングは、目標設定を誤らなければ小さな成功体験を積みやすいと思います。やりがちな目標設定のミスは「アプリ1個作る!」みたいなものだと思います。もちろんそれができる方もいると思いますが、初学者のころは「1つメソッド書いて動かす」くらいの小さな目標から積み重ねていくのも意味があるのではないでしょうか。
対策3. 自己効力感を高める
「自分はできる」という感覚を高めるということですね。できないことではなくできたことを振り返る、他人と比較しない、自分の成長を記録する、などが具体的にとれるアクションかと思います。自己効力感と似たような言葉で、組織効力感というものもあります。この組織だったらできる!という感覚ですね。「みんなでバージョンアップ」というやつです。
おわりに
ここまで長々と読んでいただきありがとうございました!私自身の業務に活かすところとしたら、そもそも苦手意識を抱かせないことが大事だなと思いました。そのためにどのような工夫をするか、日々考えねばと思い直しました。一度苦手だと思ってしまうと、ぬぐうのはなかなか大変ですからね・・・。
これぞ!という対策は書けず、お力になれた自信はありませんが、皆様にとってなにか1つでも吸収することがあれば幸いです。
クロノスでは色々な技術を一緒に学んでスキルアップしたい方を募集しています!
興味を持っていただいた方は、ぜひエントリーお願いします!