それでは,論理的な再帰は人間の認識とどのような関係にあり,それを研究する意義は 何であろうか.
第1に,論理的な再帰が概念理解,問題解決,学習あるいは転移といった認知活動を 考える上で重要な材料となるからである.後に詳述するように再帰は容易に 理解しがたい概念である.そこで,例題を雛形として用いて学習して もらったり[Anderson, Pirolli, FarrellAnderson et al.1988],プラグマティックな表現による教示 [谷川市川谷川市川1996]によって,再帰の理解が促進されるかどうかが検討されてきた. また,Pirolli85は,3人の被験者の再帰的関数のプログラミング学習における 問題解決と認知スキルのプロトコル分析をもとに,コンピュータシミュレーション モデルを提案している.
第2に,再帰概念や処理そのものが人間の思考や認識と深く関わっていると考えられる からである.たとえば,6ドル31セントを紙幣とコインで支払う場合,「5ドル支払う」 と「1ドル31セント支払う」という問題に分けられる.前者を5ドル紙幣で支払って解決 すれば,後者は金額が少ないことを除くと元の問題と同型となり,この問題は論理的な 再帰的手順で解決される[Grogono NelsonGrogono Nelson1982].
第3に,再帰を取り上げることで人間らしい知性や思考の一端を知ることができる 可能性があるからである.たとえば,図は,再帰呼び出しによって正方形 を描き続ける手続きであった.この場合,コンピュータは無限に再帰呼び出しを続け, 最終的にはメモリオーバーとなってしまうであろう.後述するように,手続きを呼び 出す場合に「プッシュダウンスタック」を使う必要があるからである.ところが,人間 は途中で繰り返しに気づき,メモリオーバーにはならないのである.このように, 論理的な再帰に必要な処理過程と実際の人間の処理過程のズレをみることで,機械とは 違った人間らしさを知ることができる可能性がある.
以上のように,再帰概念を理解し,その処理ができることは人間の認識にとって重要で あり,ここに再帰を研究する意義が存在すると考えられる.したがって,再帰概念に ついての認知的研究が,1970年代後半から多くの研究者によってなされてきたのである [谷川市川谷川市川1996].
ところが,人間にとって再帰は困難な課題であることが多くの先行研究から報告されて いる[Anderson, Pirolli, FarrellAnderson et al.1988,谷川市川谷川市川1996].その理由を整理すると以下の2つが考えられる.
第1は,概念のわかりにくさである.つまり,手続きの途中でその手続き自身が呼び出 される「再帰呼び出し」構造の把握が困難なのである.第2は,処理の難しさである. 再帰呼び出しされると,その時点の環境 (変数状態,戻る位置) を保持しておき,再帰 呼び出しで処理された手続きを終えて,元の手続きに戻るときにその環境を取り出す 必要があるので,ワーキングメモリ (working memory) に負荷がかかるという点が あげられる.
Kurland89,taniichi96 は,末尾再帰より埋め込み再帰の方が困難度が高いこと を報告している.Kurland89は,平均50時間以上プログラミング経験のある7人 の児童に,末尾再帰と埋め込み再帰のLOGOプログラムを呈示して,鉛筆と紙で タートルの動きを予測させた.すると,末尾再帰では5人が正答できたのに対して, 埋め込み再帰は1人も正答できなかった.
これらの児童は,合わせ鏡のような具体物やコンピュータ言語における反復構造から, 再帰呼び出しされると手続きの最初に戻ればよいと考える「ループモデル」と呼ばれる メンタルモデルを形成して,未知である再帰概念をとらえようとしたという [Kurland PeaKurland Pea1989,谷川市川谷川市川1996]2.
末尾再帰は同じ処理が同じ順序で続く.ゆえに,「ループモデル」による理解でも 正答可能である.一方,埋め込み再帰では正しい処理の流れ,つまり,再帰呼び出し された手続きを終えると,元の手続きの途中に戻って残りの処理を行なうことまで 理解していなければ正答できないのである.
以上をふまえると難しいとされる再帰の中でも,容易なものと困難なものがあることが 考えられる.そこで,本研究でも末尾再帰と埋め込み再帰の課題を用意し,後者の方が 困難であるかどうか,困難であるならばその原因は何かを検討する.
なお,本研究では以下の2つの新しい観点から実験を実施する.第1は被験者である. 先行研究ではコンピュータ言語になじみのある者が対象であるが,本研究では コンピュータ言語になじみのない者を対象とする.これは,プログラム経験がなく アルゴリズムというものに精通していないと考えられる被験者が,論理的な再帰処理を 可能かどうかを検討したいからである.
第2は,理解の指標である.先行研究のほとんどは再帰の理解の指標として,再帰処理 プログラムがかけるかどうかをみている.これは,プログラムの作成にはアルゴリズム の理解が必要条件であると考えられるからである.一方,本研究ではプログラムが作成 できるか否かではなくて,再帰的構造をもつ手続きの処理過程を正確に行なえるか どうか (アルゴリズムを「トレース」できるかどうか) を理解の指標とする.
指標を変更する理由は2つある.ひとつは,実際は再帰アルゴリズムを理解できていて もプログラムが作成できないこと (コーディング段階でのミスや難しさ) で再帰処理を 理解できていないと判断されている恐れがあるからである.もうひとつは,上記のよう に本研究では,アルゴリズムに精通していない被験者に対して論理的な再帰処理を理解 可能かどうかを検討したいためである.
厳密には,「トレース」と「理解」は異なるものであり,トレースできるからといって 再帰アルゴリズムを理解できたといえる保証はない.しかしながら,再帰アルゴリズム を理解する上でトレースできるということは大切な要素のひとつであると考えられる. そこで,ここではトレースを理解の指標と操作的に定義することにした.
それでは,このような再帰処理を行なう場合,どのような機構が必要となるのであろう か.
コンピュータでは,手続きの呼び出し処理のために「プッシュダウンスタック」が用意 され,再帰呼び出しもこれを使って行なわれる (図参照). hashida94によれば,プッシュダウンスタックとは要素情報の列で,つねに その一方の端 (先頭) の要素のみに関する操作を行なうことが前提とされているもので ある.ここで可能な操作は,プッシュ (push) とポップ (pop) である.前者は要素 情報をスタックに加えてこれを新たな先頭とする操作である.後者は現在の先頭要素を スタックから取り出し,先頭の次の要素を新たな先頭要素とする操作である. したがって,先にプッシュされた要素ほど後にポップされることになり, 「先入れ後出し」(first-in last-out) 型とも呼ばれる.
そこで,人間においても再帰処理を行なう場合はワーキングメモリ内で 「先入れ後出し」型の処理が行なわれる.しかしながら,人間はもともと プッシュダウンスタックの記憶形態を持っているわけではないと考えられる. たとえば,知能検査の WAIS-R には順唱と逆唱の数唱課題があるが,一般に同じ 数唱個数では順唱より逆唱の方が成績が悪い.したがって,人間はふつうの記憶形態で 「先入れ後出し」型の処理を行なうために無理が生じ,結果として再帰処理を苦手と すると考えられるのである.
最後に,日常的になじみが薄い論理的な再帰を被験者にどのように学習してもらうかと いう問題がある.この点に関して,例題を雛形とした学習の効果[Anderson, Pirolli, FarrellAnderson et al.1988]や プラグマティックな表現による教示の効果[谷川市川谷川市川1996]などが報告されている. しかしながら,これらの課題はプログラムの作成が目標で,コンピュータ言語に精通し ていない被験者を対象とする本研究とは異質である.そこで,本研究では再帰概念を 文章読解の形で学習してもらう「読解群」,文章読解に加えて図解を伴い学習してもら う「読解&図解群」,文章読解と図解に加えて実際の操作を伴い学習してもらう 「読解&図解&操作群」を構成し,困難な再帰概念の理解に操作や図解が効果をもつか どうかを検討する.
ここで,図解や操作を加えた理由は,情報の外的支援や実際の操作を通して概念の理解 がしばしば促進することが考えられるからである.たとえば,コンピュータに熟知して いない人にその扱い方を説明するとき,言葉による説明ではよくわからないが,図解を 見せればわかりやすくなる.実際に操作が可能であればさらに理解が促進される.
もちろん,図解や操作そのものの効果を調べるのであれば,それぞれを単独に呈示する のが最善である.しかしながら,図解や操作を説明するためにはなんらかの言語的補助 が必要になるため,本研究では呈示方法を累積的な形とする.
また,ichikawa93,ichikawa94は,従来からテキストなどで見受けられる 「自分自身を呼び出す」という表現よりは,「クローンに対して仕事を下請けに出す」 というイメージの方が,再帰の処理を的確に表わしていると述べている.そこで, 本研究では従来の表現 (「自分自身を呼び出す」) に加えて,「現在の状態を一時的に 凍結したうえで,自分のクローン (複製) に仕事を下請けに出し,それが終ったら自分 の仕事を再開する」[市川市川1993]という表現を学習の際に呈示することにする.
以上をふまえて,実験1では「読解群」,「読解&図解群」,「読解&図解&操作群」 を構成し,各群に末尾再帰と埋め込み再帰のトレース課題を与える.これによって, 末尾再帰より埋め込み再帰の方が困難であるのかどうかを検討する.同時に,操作や 図解を用いることで理解が促進されるか否かを見る.実験2では,埋め込み再帰が困難 であるとすればその原因はなぜなのかを,プッシュダウンスタックといった認知モデル を取り上げながら検討する.
両実験ともLOGOを参考にした手続きの形で評価課題を10試行呈示する.各試行の 手続きを正しく行なうことができた場合に得点が与えられ,その得点の高低によって 困難であるか否かを判断する.