Jeannette M. Wing: Computational Thinking, Communications of the ACM, Vol.49, No.3, pp.33-35(Mar. 2006)

計算論的思考〔学習用翻訳〕
周以真 Jeannette M. Wing
(Microsoft Research and Carnegie Mellon University)
コンピュテーショナル・シンキング（計算論的思考）
それは，コンピュータ科学者だけでなく誰にでも例外なく応用できる態度と技能であり，是非とも学んで利用すべきものです。

計算論的思考とは，コンピューティング・プ

計算論的思考は，問題を解決し，システムをロセスの能力と限界にもとづくもので，それが設計し，人間行動を理解することに，コン人間によるものか，機械によるものかは関係あ

ピュータ科学の基礎概念を利用します。計算論りません。計算論的な方法とモデルは，私たち的思考が含んでいるのは，コンピュータ科学分が単独で挑むには困難が伴う問題の解決やシス

野 の 幅 広 さ を 反 映 し た 思 考 ツ ール （ m e n t a l

テムの設計に勇気を与えてくれます。計算論的tools）の集まりなのです。

思考が対峙している機械知能の謎には：人類がコンピュータよりも優れているのは何か？そして，コンピュータが人類よりも優れているのは何か？といったものがありますが，これらが問うている最も根本的な問いとは：計算可能（computable）であるとは何か？ということなのです。今日，私たちにわかっているのはそうした問いに対する部分的な答えだけです。
計算論的思考は，すべての人にとっての基本的な技能であって，コンピュータ科学者だけのものではありません。「読み，書き，そろばん（算術）」（3R’s）と合わせ，「計算論的思考」もあらゆる子どもの分析的能力の一つに加えるべきです。まさに印刷技術が3R'sの浸透を促したことに引き付けて言うなら，このビジョンにおいてコンピューティングとコンピュータが計算論的思考の浸透を促すのだと言えます。

ある特定の問題を解決しようとするとき，私たちは：解決するのはどれくらい難しいだろう？とか，ベストな解決策は？とか問うでしょう。コンピュータ科学はしっかりとした理論的基盤で成り立っていて，それらの問いに正確に答えようとします。たとえば，解決策を実行しようとするコンピュータ装置，その装置の基本能力を使って問題の難しさを説明するには，装置の命令セットやリソース制約，操作環境についてまで考慮しなければならないのです。
効率的な解決のため，私たちはさらに，近似解で十分なのか，乱数化を効果的に使えるのか，また偽陽性や偽陰性は許されるのか，などを考慮するかも知れません｡計算論的思考は，たとえば簡略化，埋込み，変換，あるいはシミュレーションといった手段を使って，難しそうな問題を私たちが解き方を知っている問題に変換してくれます｡

コンピュテーショナル・シンキング

1計算論的思考とは再帰的思考です。並列処理して，検索して，さらに検索を重ね，Webペーであり，コードをデータとして，データをコージのリストや，ゲームに勝つ方略，あるいは範ドとして解釈することです。次元解析の一般化例を見つけだすようなものです｡計算論的思考における型検査のことであり，ヒトやモノに対は，膨大なデータを用いて計算を高速化するこして２つ以上の名前を付けてしまう，いわゆるとです。そこでは，時間と空間，処理能力と記エイリアシングの利便性と危険性を理解するこ憶容量とがトレードオフ関係にあるのです｡と で も あ り ま す ｡ 間 接 ア ド レ ッ シ ング と プ ロ
シージャ呼び出しのコストとパワーの両方を認識することであり，プログラムを正確さと効率だけでなくその審美性とシステム設計の単純さ，洗練さで評価することなのです｡

次のような日常の例を考えてみることにしま
しょう：あなたの娘が朝学校へ行くとき，その日に必要なものをバックパックに詰め込むこと；これがプリフェッチとキャッシングです｡あなたの息子が手袋をなくしたとき，あなたに促

計算論的思考は，巨大で複雑なタスクに取りされて来た道を辿り直すこと；これがバックト組んだり巨大で複雑なシステムを設計するときラッキングです。どの時点でスキーレンタルのに抽象化と分解を用います｡つまり関心の分離利用をやめて自分用スキーを買うのか；これはです。問題の適切な表現を選んだり，問題を扱オンラインアルゴリズムです｡スーパーマーケッいやすくするため関連部分をモデル化すること

トでどのレジ行列に並ぶのか；これはマルチです。また，不変項を用いて，システムを簡潔サーバーシステムにおける性能モデリングです｡

かつ宣言的に記述することでもあります。巨大なぜあなたの電話は停電中でも通ずるのか；こで複雑なシステムに対し，細部のあらゆることれは障害からの分離であり，設計の冗長性でを知ることなしに私たちが変更や影響を与えるす ｡ 完 全 自 動 公 開 チ ュー リ ングテス トことができるという確信をもつことなのです｡（CAPTCHA）は人間であることをどう立証す複数のユーザーを想定して何かしらモジュールるのか；これはコンピューティングエージェン化することであり，将来的な利用を見越してプトの裏をかくため，AIにとって解決困難な問題リフェッチとキャッシングをすることでもありを利用したものです｡

ます｡
計算論的思考が人々の暮らしに根付いたと言計算論的思考は，冗長性や障害抑制，誤り訂えるのは，アルゴリズムや前提条件といった単正によって，最悪ケースのシナリオを防止した語がすべての人の語彙の一つとなり，非決定性

り，そこからの保護や回復について考えることとガベージ・コレクションがコンピュータ科学です｡交通渋滞（gridlock）をdeadlock（膠着停者の用いている意味となり，ツリーといえば上止）と，契約（contracts）をinterfaces（境界下逆さに描かれるようになったときでしょう。

面）と呼ぶことでもあります｡さらには，互いに連動してしまった会議の競合状態の回避を学ぶことでもあるのです｡

私たちは他の研究領域で計算論的思考が影響を及ぼしているのを目の当たりにしてきました｡
たとえば，機械学習は統計学を変えました｡統

計算論的思考は，ヒューリスティックな推論

計的学習は，数年前には考えられなかったようを使って解を見つけ出すことです。不確定な状な規模のデータ量と分類次元を有する問題に適況においてプランニング，学習，スケジューリ用されています｡あらゆる組織の統計部門がコンングをすることだといってよいでしょう。検索

ピュータ科学者を採用しています｡コンピュータ

コンピュテーショナル・シンキング

2

科学の学部・研究科は，すでに統計部門が存在同様に，計算論的ゲーム理論は経済学者の思考しているか，あるいは新しい統計部門を設立すを；ナノコンピューティングは化学者の思考ることに取り組んでいます｡

を；量子コンピューティングは物理学者の思考コンピュータ科学者達の最近の関心が生物学を変えつつあるのです｡に向いたのは，生物学者にとって計算論的思考

こうした思考は，他分野の科学者だけでなが有益であると考えているからです｡生物学に対く，すべての人々のスキルセットの一部となりするコンピュータ科学の貢献は，膨大な量の得ます｡ユビキタスコンピューティングが今日もシーケンスデータからパターンを探し出す能力たらしているものを，計算論的思考は明日もたに留まりません｡データ構造とアルゴリズム，らします｡ユビキタスコンピューティングが今日私たちがいうところの計算論的抽象化と方法論の現実となった昨日の夢であったのですから，を使ってタンパク質の構造を表現し，その機能つまり，計算論的思考は明日の現実なのです｡

を解明することが期待できるのです｡計算論的生物学は生物学者の思考法を変えていってます｡

コンピュータ科学者のように考えるとは，コンピュータをプログラムできること以上に，複数の抽象的レベルで考えられることを意味します。

何であって，何でないのか〈基礎的であり，暗唱的技能ではない〉
基礎的技能とは，現代社会で活動するために人コンピュータ科学では，計算に関して，何が計算できて，それをどう計算するのか，を研究しています｡したがって，計算論的思考は次のよ
うな特徴を有しています：

間なら誰もが知っているべきものです｡一方，暗唱的とは，機械的なルーチンのことです｡皮肉なことがあるとすれば，コンピュータが人間のように考えることを目指すAIグランドチャレ〈概念化であり，プログラミングではない〉

ンジ課題をコンピュータ科学が解決してしまう

コンピュータ科学とはすなわちコンピュータプと，人間の思考は暗唱的なもの（機械的ルーチログラミング，ではありません｡コンピュータ科ン）だと見なさざるを得なくなることです｡

学者のように考えることは，コンピュータをプログラムできること以上の意味を持ちます｡そ〈人間の思考法であり，コンピュータのそれではない〉

れは複数の抽象的レベルで考えることを必要としているのです｡

計算論的思考は人間の問題解決法であり，人間がコンピュータのように考えることを目指すものではありません｡コンピュータは鈍感で退屈

コンピュテーショナル・シンキング

3

であり，人間は賢くて創造性が豊かなのです｡

多くの人はコンピュータ科学における基礎的研

私たち人間がコンピュータを刺激的なものにす究は完了していて，工学的な課題だけが残されるのです｡コンピュータ機器を用いることで，コていると考えています｡計算論的思考は，このンピュータ時代より前には扱えなかった問題へ

分野におけるこうした社会通念を変えようと行の取り組みや，私たちの想像力だけが機能性の動している私たちコンピュータ科学の教育者，制約だったシステムの構築にも，私たち自身の研究者，実践者を導いてくれるグランドビジョ

賢さを使うことができるようになります｡

ンなのです｡私たちにとって特に必要なのは，〈数学的思考と工学的思考が補い合い組み合わさ大学前段階の先生や保護者や生徒に向けて，２つのメッセージを送り届けることです：る〉
コンピュータ科学は，すべての科学がそうであ〈理解し解決すべき知的な挑戦と魅力的な科学的るように，その形式的基礎が数学にあることか問題が待っている〉

ら，本質的に数学的思考を内包しています｡コン

問題の範囲と解決策の範囲を制限するのは私た

ピュータ科学は，現実世界と相互作用するシス

ち自身の好奇心と創造力だけだということでテムを構築していることから，本質的に工学的す｡そして，思考を内包しています｡コンピュータ機器がもっている制約は，コンピュータ科学者を数学的にだけでなく，計算論的に思考するよう仕向けます｡自由自在に仮想世界を構築できるため，物理世界を超えたシステムの建設が可能なのです｡〈コンピュータ科学を専門にした人は何にでも携われる〉
英語や数学を専門にした人は多数の異なるキャリアを歩んでいます｡コンピュータ科学も同じです ｡ コ ン ピ ュー タ 科 学 を 専 門 に し た 人 は ， 医〈アイデアであり，モノではない〉

学，法律，経営，政治，いかなるタイプの科学

私たちが生み出すソフトウェアやハードウェアや工学，あるいは芸術のキャリアにさえ進むこといった成果物は，単に物理的にいろんな場所とができるのです｡に存在して生活の中でいつでも触れられるというだけではありません。計算論的な概念として，私たちが問題にアプローチしたり解決したり，日常生活を管理したり，他人とコミュニケートしたり交流するために用いるものなのでコンピュータ科学の教授は，「コンピュータ科学者のように考える方法」といった科目を大学の新入生向けに，コンピュータ科学専攻だけでなく他専攻の学生たちにも提供して教えるべきです｡大学前段階の生徒にも計算論的な方法す｡そして，やモデルに触れさせるべきでしょう｡コンピュー〈すべての人に，どこででも〉タ科学への関心が低下していたり，コンピュー

計算論的思考が，実際的なものとなるのは，人タ科学への研究予算配分が減っていることを嘆

間の努力と一体化して，自明な考え方になった

くよりも，世間一般の関心をこの分野の知的冒ときでしょう｡

険へと導くことにこそ力を割くべきです｡そう

多くの人がコンピュータ科学とコンピュータプログラミングを同じとみなしています｡一部の保護者はコンピュータ科学を専攻している子供

やってコンピュータ科学のもつ楽しさや畏敬，パワーを広げていき，計算論的思考が当たり前のものになることを目指していきましょう｡

達の就職機会が狭く限られていると見ています｡

コンピュテーショナル・シンキング

4