認知プロセスの分析

この章で扱う問い

本章の主張は単純です。認知は外から見えないが、特定の方法を使えば表面化させて分析できる――これだけです。前章で、知識を計算機が扱える形に表現する技法を見ました。しかし、表現すべき認知プロセス――学習者が何を考え、どこでつまずき、どんな誤解を抱えているか――そのものがまず可視化されていなければ、形式化のしようがありません。

この章は、ITS や AIED の開発に取り組もうとしているあなたにとって、もっとも実践的な手応えがある章かもしれません。学習者の頭の中をどう「のぞくか」、その方法論的な選択肢を整理する場所だからです。一方、認知科学・教育心理学の側からこの分野を眺めているあなたにとっては、認知タスク分析・プロトコル分析・エラー分析という、よく知られた三系統が、学習支援システムの設計の文脈でどう統合されるかを見る章になります。

本章を通じて参照するのは、中学生が連立方程式を解く という素朴な題材です。

教師にとっては自明な問題ですが、学習者の頭の中では加減法・代入法・移項・符号反転といった複数のサブスキルが並列に走り、しばしば失敗します。同じ題材を三通りの方法で分析することで、各手法が認知のどの側面を取り出せるか、そして互いにどう補い合うかが見えてきます。最後にそれらを「つまずきの構造」として束ね直し、次章の形式化に橋を渡しましょう。

認知タスク分析:熟達者の暗黙知をすくう

認知タスク分析(Cognitive Task Analysis, CTA)[Schraagen2000] は、専門家や学習者がタスクを実行する際の認知プロセスを体系的に分析する手法です。伝統的なタスク分析が「次に何をクリックするか」のような観察可能な行動に焦点を当てるのに対し、CTA は内的な認知プロセス――どんな知識を呼び出し、どう意思決定し、どんな戦略を採るか――を明らかにすることを目指します。

CTA がなぜ必要かは、教師に問うてみればすぐ分かります。中学校の数学教師に「生徒が連立方程式を解くとき、頭の中で何をしていますか」と尋ねても、たいていは「えっと……まず一つの式を変形して、もう一方に代入して……」という、教科書の手順をなぞった答えしか返ってきません。熟達者は自分のスキルを長年使いこむうちに自動化(automatization)してしまっていて、自分が何をしているかを言語化できないのです。Anderson が expertise paradox と呼んだこの現象 [Anderson1993] を回避するために、CTA は熟達者本人の自己報告に頼らず、間接的な手がかりから認知プロセスを再構成します。

GOMS モデル:熟達者のスキルを階層的に書き下す

最も古典的な CTA の枠組みは、Card・Moran・Newell の GOMS モデル [Card1983] です。これは、熟達者の課題遂行を Goals(目標)、Operators(基本動作)、Methods(オペレータの系列としての手順)、Selection rules(複数の手順がある場合の選択規則)の四要素に分解します。1980 年代に文書編集ソフトの操作時間を予測するために考案されたものですが、その後さまざまな認知スキルの分析に用いられています。

連立方程式の例に当てはめてみてください。最上位の目標は「 の値を求める」です。これを達成する手順としては「加減法で一文字消去」と「代入法で一文字消去」の二つ。Selection rule は、たとえば「係数が容易に揃うなら加減法、片方が の形に近いなら代入法」と書けます。さらに加減法は「両式の係数を見比べる」「両辺を定数倍して係数を揃える」「両式を加減して一文字を消去する」「残った一文字の式を解く」「もとの式に代入してもう一文字を求める」というオペレータ列に展開されます。各オペレータは経験的な実行時間(数秒のオーダー)が割り当てられ、合計から課題全体の所要時間が予測できる、という流れです。

GOMS の強みは熟達者のパフォーマンスを定量予測できる点にありますが、弱みも明確です。GOMS が描くのは「正しく実行できた場合」の経路であって、初学者が陥る誤った Method 選択や、係数を揃え損ねる類のエラーは記述しません。学習プロセスや躓きを扱うには、後述するエラー分析と組み合わせる必要があります。

階層的タスク分析:粒度を下げてサブタスクを掘る

GOMS が時間予測に重きを置くのに対し、Annett と Duncan の 階層的タスク分析(Hierarchical Task Analysis, HTA)[Annett1967] は、タスクをどこまで細かく分解すべきかという問いに答える方法論です。ある粒度のサブタスクが「熟達した学習者であれば訓練なしに実行できる」段階に達したら、そこで分解を停止する。停止しなければ、サブタスクをさらに細かい目標と手順に分解する――これだけのシンプルな再帰です。第4章で見た「知識の粒度」の議論が、ここで実践的な手続きとして現れていると見ることもできます。

連立方程式の HTA は次のように展開できます。トップは「連立方程式を解く」。第一段階のサブタスクは「(a) 解法を選ぶ」「(b) 一文字を消去する」「(c) 残った方程式を解く」「(d) もう一文字を求める」「(e) 検算する」。このうち (a) は熟達者にとっては自動的ですが、初学者には難しいので「(a-1) 各式の係数を読む」「(a-2) 揃えやすい係数を見つける」「(a-3) 加減法か代入法かを決める」とさらに分解します。逆に (c) の「一次方程式を解く」は中学 2 年生段階で訓練済みと仮定できるなら、それ以上分解しません。

HTA の意義は、学習者がどの粒度でつまずいているかを特定できる ことにあります。たとえば学習者が (b) の段階で失敗するのか、それ以前の (a) の解法選択そのものに失敗しているのかが区別できると、与えるべき支援はまったく違ってきます。前者なら係数操作の練習を、後者なら問題のパターン認識の練習を提供すべきだからです。CTA はこのように、同じ「分からない」を構造的に分解するための語彙を提供してくれます。

プロトコル分析:解いている最中の頭の中をのぞく

CTA が「熟達者ならどう解くか」の合理的再構成だとすれば、プロトコル分析(protocol analysis)[Ericsson1993] は「実際の学習者がいま何を考えているか」を時系列で捉える手法です。Ericsson と Simon が 1980 年代に方法論として確立し、認知科学における内省データの最も信頼できる扱い方として今日まで使われています。

Think-aloud プロトコル:考えていることを声に出してもらう

中核手法は think-aloud protocol(思考発話法)です。手順は単純で、学習者に「問題を解きながら、いま頭に浮かんでいることをそのまま声に出してください。理由を説明したり、整理したりせず、ただ独り言のように喋ってください」と指示します。すべてを録音し、後から書き起こして分析します。Ericsson と Simon が強調したのは、「説明してください」と頼んではいけないという一点。説明を求めると被験者は事後合理化を始めてしまい、実際の認知プロセスではなく「もっともらしい物語」が出てきてしまうのです。「いま考えていること」だけを口に出してもらうのが鉄則です。

連立方程式を解く中学 2 年生の発話を、仮想的に再構成してみます。

「えーっと、二つ式があって……上は 、下は 。下の式の方が簡単そう。 にして……上に入れる。 で、えっと、。じゃあ 。あれ、検算……、合ってる。下も 、合ってる。」

このプロトコルから読み取れることは多くあります。学習者は (1) 二式を見比べて代入法を選択している(解法選択ができている)、(2) への変形を一発で行っている(移項のスキルが自動化されている)、(3) 「」と中間項を声に出している(分配法則を意識的に適用している)、(4) 最後に検算を自発的に行っている(メタ認知的習慣がある)。同じ正解にたどり着く別の学習者でも、加減法を選び、検算を省略し、代入で符号を間違えて修正に回る、といったまったく違うプロトコルになりえます。正解を見ているだけでは分からないこの差 こそが、プロトコル分析の獲物です。

think-aloud は強力ですが、コストが高い。一人の学習者の 30 分のセッションを書き起こし、コーディング体系(「解法選択」「変形」「検算」などのカテゴリラベル)を当てて分析するには、平均して数時間を要します。そのため近年は、書き起こしの一部を機械学習で自動コーディングする試みや、後述する行動ログ分析と組み合わせて think-aloud のサンプルを少数に絞る運用が一般的です。

行動ログ分析:操作の痕跡から認知を逆推定する

オンライン学習環境では、学習者のあらゆる操作――クリック、入力、ページ遷移、消去、ヒント要求、提出までの所要時間――が自動的に記録されます。この 行動ログ(log data)の分析は、think-aloud のような直接的な内省データほど豊かではないものの、何百・何千という規模の学習者を一斉に観察できるという、まったく別種の力を持っています。

連立方程式を出題する Web アプリを想像してみてください。学習者 A は問題を表示してから 30 秒以内に正解を打ち込み、次に進む。学習者 B は 3 分かけて中間ステップを何度も書き直し、最後に正解を打ち込む。学習者 C は 1 分後に「ヒントを見る」を押し、ヒント表示後さらに 2 分かけて正解を打ち込む。学習者 D は 5 分間入力欄を埋めずに眺め、結局空欄のまま提出する。プロトコルがなくとも、これら四つの軌跡は明らかに異なる認知状態を示唆しています。A は熟達者かおそらく丸暗記、B は手探りで自力解決、C は前提知識の一部を欠いている、D はどこから手をつけてよいかすら分からない、といった具合です。

行動ログだけから認知プロセスを完全に再構成することはできませんが、think-aloud で得た仮説を多数の学習者に対して検証する手段としては不可欠です。実際 Cognitive Tutor や近年の知識追跡システムは、まさにこの行動ログを大量に蓄積し、後述する誤りのカテゴリと突き合わせることで、リアルタイムに学習者モデルを更新しています。プロトコルとログは、深さと広さで補完し合う関係にあるわけです。

エラー分析:誤りに潜む規則性を読む

CTA が熟達のかたちを、プロトコル分析がいまの思考を取り出すのに対し、エラー分析(error analysis)はもう一歩踏み込んで、誤答を「何が壊れているかを示す診断データ」として読む ものです。教師にとって誤りは「もっと注意して」で済まされがちですが、認知科学にとって誤りは、学習者の頭の中で動いている(誤った)ルールが表面化した貴重な証拠なのです。

体系的バグ:誤りには規則がある

この発想を強烈な形で示したのが、Brown と Burton の BUGGY [Brown1978] です。第1章でも触れましたが、彼らは小学生の繰り下がりつき引き算の誤答を分析し、誤答が「ケアレスミス」ではなく、学習者が一貫して適用している誤った手続き ――彼らはこれを「バグ」と呼びました――に由来することを示しました。たとえば、83 - 2764 と答える学習者は、繰り下がりを忘れているのではなく、「各桁で大きい数から小さい数を引く」という独自のルール(Smaller-From-Larger)を首尾一貫して適用しているのです。80 - 2767 と答える学習者は、「借りた後、借りられた桁を減らさない」という別のバグ(Borrow-No-Decrement)を持っています。BUGGY はこうしたバグを百以上カタログ化し、数題の応答パターンから個々の学習者のバグを逆推定する診断アルゴリズムを構築しました。

連立方程式でも同じ視点が使えます。たとえば代入で 2(y + 1) = 2y + 1(分配法則の片側忘れ)と書く学習者、移項で符号を反転し忘れる学習者、加減法で「両辺を引く」つもりが定数項だけを引いて変数項を加える学習者――これらはいずれも単発の不注意ではなく、各学習者の中で安定的に再現する誤った規則です。教師が「もう少し気をつけて」と叱っても直らないのは当然で、書き換えるべきは態度ではなく頭の中で動いているルール本体だからです。

誤りの階層:構文・意味・概念

誤りを分類する語彙はドメインによって異なりますが、プログラミング教育では以下のような階層化がよく使われます。構文エラー は文法レベルの違反(セミコロン忘れ、括弧の不一致)で、コンパイラが検出してくれる軽い誤りです。意味エラー はコードは動くが意図と異なる動作をするもので、ロジックの誤り、誤った変数の参照、初期化忘れなどに分類されます。最も深い層が 概念的誤り(conceptual misconception)で、「変数は常に初期値を保持する」「ループは必ず固定回数実行される」など、概念そのものの誤った理解に根ざします。連立方程式で言えば、解の存在性そのものを誤解している(不定解や不能解の扱いを知らない)学習者は、この最深層に問題を抱えています。

エラー分析の核心は、表層の誤答から深層の誤った認知構造へと遡る ことにあります。同じ「」という誤答でも、符号の書き写しミスで生じたものと、加減法の演算規則を取り違えて生じたものでは、必要な介入はまったく異なります。次節で見るように、表層の症状と深層の原因を結びつける枠組みが、形式化を呼び込むことになるのです。

つまずきの構造:分析結果を束ねる

CTA、プロトコル、エラーの三系統で得られたデータは、それぞれ異なる側面から学習者の認知を照らしますが、最終的にはひとつの「つまずきの構造」として束ねなければなりません。実用的には、つまずきは大きく三層に整理できます。

第一層は 前提知識の欠如 です。連立方程式を解くには、一次方程式の操作、移項、分配法則、四則演算といった先行スキルが必要です。これらの一部が定着していないと、上位スキルを訓練しても定着しません。HTA の「これ以上分解しないサブタスク」が、実は学習者にとっては未訓練だったというパターンがこれにあたります。診断には、上位課題の失敗を見たとき、HTA の階層を一段下って前提スキルを個別にテストするのが有効です。

第二層は 誤概念(misconception)です。前提知識は揃っているのに、その上に誤った規則が乗っかっているケースですね。「変数は箱であり、値を入れると前の値は消える」という代入の理解は基礎レベルでは正しいのですが、参照やポインタの文脈に持ち込むと誤解の元になります。「ループは典型例から類推して常に同じ回数だけ実行される」という過度な一般化も同類です。誤概念は単に「正しい知識が欠けている」のではなく、「誤った知識が自信をもって動いている」状態なので、新しい情報を上書きするのが難しく、第3章で触れた認知的葛藤を意図的に引き起こす介入(既存の理解では説明できない反例の提示)が必要になります。BUGGY 流の体系的バグも、本質的にはこの層に位置します。

第三層は 認知負荷の過剰 です。前提知識も概念理解も整っているのに、課題の難度がワーキングメモリ容量を超え、本来できる学習者でも失敗する状況です [Sweller2011]。連立方程式に分数係数や三元連立が加わった瞬間に正答率が崩れる学習者は、しばしばこの層の問題を抱えています。介入は誤概念修正ではなく、課題の分解、足場かけ(scaffolding)、ワークドエグザンプルの提示といった負荷軽減策となります。この第三層は次章の形式化を経て、第7章の学習活動設計でより深く扱います。

これら三層は互いに排他的ではなく、ひとつの誤答が複数の層に同時に根ざしていることもしばしばです。だからこそ、CTA・プロトコル・エラー分析を組み合わせ、一つの誤答に対して「どの層が主因か」を切り分ける作業が、形式化の前段階で要求されるのです。

まとめ

本章は「認知は外から見えないが、特定の方法で表面化させて分析できる」という主張を貫いてきました。CTA は熟達者の暗黙知を階層化された手順として書き下し、プロトコル分析は学習者のいまの思考を時系列で取り出し、エラー分析は誤答の背後にある一貫した規則を浮かび上がらせる。連立方程式というひとつの題材を三通りの方法で見ると、解法選択・サブスキル・誤概念・認知負荷といった、それぞれに固有の貢献が見えてきます。これらの分析結果を、前提知識・誤概念・認知負荷という三層のつまずき構造に束ねれば、学習者の状態を診断する基本的な語彙が揃います。

次章への橋渡し

しかし、ここまでで得られたのはまだ散らかった観察データの集まりに過ぎません。これを計算機が処理でき、教師や設計者が読み返して検証できる形に書き直さない限り、個別の事例を超えた知識の蓄積は起きないのです。

次の第6章では、本章で取り出した「つまずきの構造」を、第4章で学んだ知識表現の語彙を使って中間表現として書き下す方法――本書の核心となる 形式化と中間表現 ――に踏み込みます。第I部(基礎理論編)から第II部(方法論編)への橋渡しとなるテーマで、本書全体のなかでも特に密度の高い章です。本章までで「形式化されるべき対象」と「形式化の道具」と「観察の方法」が揃いました。いよいよ、それらを組み合わせる段階に進みましょう。

さらに学ぶために

  • Schraagen, J. M., Chipman, S. F., & Shalin, V. L. (eds.) (2000). Cognitive Task Analysis. Lawrence Erlbaum Associates. CTA の方法論を体系的に概観する標準的レファレンス。
  • Ericsson, K. A., & Simon, H. A. (1993). Protocol Analysis: Verbal Reports as Data (Revised ed.). MIT Press. think-aloud 法の原典。なぜ「説明」ではなく「発話」を求めるのかが哲学的に丁寧に論じられている。
  • Brown, J. S., & Burton, R. R. (1978). Diagnostic models for procedural bugs in basic mathematical skills. Cognitive Science, 2, 155–192. BUGGY 論文。誤りの体系性という考え方の起点。