
生徒のプログラミングを見ていて、ふと気づいたことがあります。
「これ、メタ認知のトレーニングになってない?」ってことです。
コードを書くときって、シューティングゲームなんかで、ただ「弾を飛ばしたい」と思ってもダメで、
んじゃ、どうしようって思って、まず、大雑把に、こんなことを考えます。
「どう飛ばすか」「どの条件で動かすか」「当たったらどうするか」
そこからさらに、細かく組み上げて考えないといけないんでよね。
そうやって頭の中で分解して見てみると、
自分に足りない情報や考えがはっきりしてきます。
頭の中だけだと大変なので、コードエディタにコメント文書きますけどね。
これってメタ認知ですよね。
初心者あるある
プログラミング初心者だと、
「自分はちゃんとやっているのに、なんで動かないかわからない」っていう感じが多いかな。
でも実は、コードの問題のほかに、
自分が何を理解していないかに気づけていないこともけっこう多いんです。
エラーメッセージ読むとわかることも多いんですけど、英語でダーッと書かれるとビビっちゃいますよね。
メタ認知ができると、エラー解決が早くなる
何をしたいか、何をするかを言葉にできる
→ メタ認知知識(自己認識)
- 自分の目的や行動を明確に把握できる
- 例:目標設定、プランニング
エラーや問題の原因を自分で理解する
→ モニタリング(メタ認知的スキル)
- 実行中に自分の理解度やミスをチェックできる能力
- 例:デバッグ中に「条件分岐が間違ってる」と気づく
どんな情報が足りないかを見つけられる
→ 調整(メタ認知的スキル)
- 情報不足を特定し、追加で学習・調査する行動
- 例:不足している関数の知識を調べて補う
これができると、解決策を調べるのも早くなるし、
コードもだんだん書けるようになります。
何が面白いって?
何が面白いって、
ただコードを書いているだけなのに、
いつの間にかメタ認知みたいなことしているって面白くないですか?
考えてばかりじゃ進まないので、
「百聞は一見に如かず」。とりあえず書いてみましょう。
動かして、エラーを見て、
「あ、ここか!」って気がつければOK。
そうすると、もっとやってみたくなるんですよね。
なにしていいか分からない?
お勧めはyoutubeなんかで、レトロゲームを見て部分的に真似してみることです。