数理情報科学特論
Table of Contents
- 1. このエッセイの目的
- 2. 計算論的思考
- 3. 計算手法と計算モデル
- 4. 計算論的思考は機械知能の謎に挑む:
- 5. 計算論的思考は,すべての人にとって基本的な技術である.
- 6. 計算論的思考は
- 7. 計算論的思考は一見難しそうな問題を我々がすでに解き方を知っている問題に変換する.
- 8. 計算論的思考とは
- 9. 計算論的思考とは抽象化と分割統治を用いることである.
- 10. 計算論的思考とは予防,防御,そして最悪のシナリオからの復帰という観点を持ち,
- 11. 計算論的思考はヒューリスティックな推論により解を発見することである.
- 12. 計算論的思考は超大量のデータを使って計算を高速化することである.
- 13. 私たちは計算論的思考が他の研究領域に与える影響を目撃してきた.
- 14. それは何であり,何でないか
- 15. 計算論的思考は誰のために
Jeannette M.Wing: COmputational Thinking, COMM.ACM, Vol.49,No.3,pp33-35
computer scientist Computational Thinking 情報処理 Vol.56 No.6 June 2015 翻訳
にゅあんすとしては,「情報処理的思考」が近いとの,訳者の弁。
1 このエッセイの目的
すべての人が学びたい,そして使いたい,と考えるに違いない 一般的な態度とスキルに関するものである.
2 計算論的思考
は計算プロセスの能力と限界の上に成立しているもので,
計算の主体が人間であるか機械であるかは問わない.
3 計算手法と計算モデル
は,我々個人が単独では決して達成できないであろう問題を解決したリ,
システムをデザインしたりする勇気を与えてくれる.
4 計算論的思考は機械知能の謎に挑む:
- 人間がコンピュータより優れているのは何か?
- コンピュータが人間より優れているのは何か?
- 何が計算可能か? さらに最も根本的な問題
これらの問いに対して,我々はまだ部分的な回答しか知らない.
5 計算論的思考は,すべての人にとって基本的な技術である.
コンピュータ科学者だけではなく,すべての子供の分析的思考能力として, 「読み,書き,そろばん」のほかに計算論的思考を加えるべき である.
コンピュータ科学と計算装置が計算論的思考を普及させることを忘れては ならない.
6 計算論的思考は
基本的なコンピュータ科学の概念に基づく
- 問題解決,
- システムのデザイン,
- そして人間の理解,などを必要とする.
特定の問題を解くときに私たちは,
- どれくらい難しいか?
- 最善の解決の道筋は何か?, などを考える.
コンピュータ科学はこれらの問いに正確に答えるための確固とした理論 の上に構築されている.
問題の難しさを述べるためには
- その土台となる機械̶問題の解決策を探る計算装置─の能力を知らねばならない.
- 機械の命令セット,計算資源の制約,動作環境などを考慮しなければな らない.
問題を効率良く解くためにはさらに次のことを考慮せねばならない.
- 近似解で良いのか,
- 乱数化をうまく利用できるのか,
- また解の判定に偽陽性や偽陰性が許されるのか,
7 計算論的思考は一見難しそうな問題を我々がすでに解き方を知っている問題に変換する.
これには簡略化,埋込,変換,シミュレーションなどが使えるだろう.
8 計算論的思考とは
- 再帰的に考えることであり,
- 並列処理であり,
- 命令をデータとし,
- データを命令とする, ことである.
それはプログラムを正しさと効率からだけではなく,美学的基準や,シス テムデザインの単純さと洗練度からも判断することである.
9 計算論的思考とは抽象化と分割統治を用いることである.
問題点の分割である.
- 巨大で複雑なタスクに挑戦したり,
- 巨大で複雑なシステムをデザインしたりするときに,
問題の適切な表現法を選ぶことであり,問題を解きやすくするため に問題の適切な側面だけをモデル化することである.
不変項を見つけてシステムの振舞いを簡潔かつ宣言的に記述することであ る.
すべての細部にわたり理解することなく巨大複雑系を使いこなし,変更し, 影響を与えることが自信を持ってできることである.
複数のユーザに備えてサブシステムをモジュール化したり,
将来の利用に備えてデータをプリフェッチしたりキャッシュしたりするこ とである.
10 計算論的思考とは予防,防御,そして最悪のシナリオからの復帰という観点を持ち,
そのために冗長性,故障封じ込め,誤り訂正などを用いることである.
それはグリッドロック(超渋滞),デッドロックを判定し,コントラクトインタフェースを 起動することである.
それは会議を設定するときに競合条件の回避を行うことを学ぶことである.
11 計算論的思考はヒューリスティックな推論により解を発見することである.
- それは不確定な状況でのプランニング,学習,スケジューリングのことである.
- それは探索して,探索して,そしてさらに探索してWebページのリストや, ゲームに勝つ戦略や,あるいは反例を見つけることである.
12 計算論的思考は超大量のデータを使って計算を高速化することである.
- それは時間と空間のトレードオフ,あるいは計算パワーと記憶容量のト レードオフをすることである.
13 私たちは計算論的思考が他の研究領域に与える影響を目撃してきた.
13.1 たとえば,機械学習は統計学を変えた.
統計的学習は,ほんの数年前には 考えられなかったような,データ量と次元の巨大な問題に適用された.す べての組織の統計部門はコンピュータ科学者を採用し始めた.コンピュー タ科学の学部では統計学科をすでに擁立していない場合には,新しく設立 している.
13.2 計算生物学は生物学者の思考法を変えつつある.
コンピュータ科学者の生物学に対する貢献は,単に大量のゲノムシーケン スデータから特定のパターンを見つけ出すことにとどまらない.
データ構造とアルゴリズムという,我々の持つ計算的抽象化と方法論が, タンパク質の構造を,構造から機能が明らかになるような形で表現できる ことが期待されている.
13.3 計算ゲーム理論は経済学者の思考法を,
13.4 ナノコンピューティングは化学者の思考法を,
13.5 そして量子計算は物理学者の思考法をそれぞれ変えつつある
このような思考法は他分野の科学者だけでなくすべての人に必要な技量の1 つである.ユビキタスコンピューティングが今日にもたらした影響と同様 のものを,計算論的思考が明日にもたらす.ユビキタスコンピューティン グは昨日の夢が今日の現実となったものであり,計算論的思考は明日の現 実である.
コンピュータ科学者のように考えるということは,コンピュータをプログ ラムできるということ以上の意味を持つ.複数のレベルの抽象思考が必要 である
14 それは何であり,何でないか
コンピュータ科学とは
- 計算可能性と,
- 計算方式の,学問である.
したがって計算論的思考は以下の特徴を持つ:
─ 概念化のことであり,プログラミングではない.
それは複数の抽象レベルで考えることを要求する.
─ 基礎的な技能であり,機械的なものではない.
この基礎的な技能は,現代社会で活動するためにすべての人が知らねば ならないものである.機械的というのはルーチンワークのことである. 皮肉なことに,コンピュータが人間のように考えるというAIのグランド チャレンジをコンピュータ科学が解決するまでは,思考は機械的である.
─ 人間の思考法のことであり,コンピュータのそれではない.
計算論的思考は人間の問題解決法であり,人間がコンピュータのように 考えることを目指すものではない.コンピュータは単調で退屈であるが, 人間は賢くて想像力豊かである.人間がコンピュータを刺激的なものに する.コンピュータという計算装置を持つことにより,我々は計算の時 代以前には挑戦できなかったような問題を解くのに自らの叡智を使うこ とができ,新しいシステムを構築することができる.限界は我々の想像 力だけである.
─ 数学的思考と工学的思考を組み合わせ,補完することである.
コンピュータ科学は本質的に数学的思考の上に成立している.
そのため,すべての科学同様,コンピュータ科学の形式的基礎は数学に ある.
コンピュータ科学は,実世界と相互作用するシステムを構築する場合, 本質的に工学的思考の上に成立している.
それらを司る計算装置の制約が,コンピュータ科学者に数学的だけでは なく計算論的な思考を要求する.仮想世界を自由に構築できるため,物 理世界の制約を超えたシステムの構成が可能である.
概念であり,モノではない.
我々が創造するものは単なるソフトウェアやハードウェアという,物理 的にどこにでも存在し,いつでも触れることのできるモノではなく,問 題に迫り解決するための計算論的な概念で,我々の日常生活を助け,他 の人々とコミュニケーションをとり交流するためのものである;そして
- それは,すべての人にどこでも.計算論的思考は,人間の努力と一体化 してしたときに現実となり,明示的に哲学する必要性は消えてしまう.
計算論的思考は,この分野に対する社会通念を変えようとするコンピュータ科 学の教育者,研究者,そして実務家を導く主要な観点である.
特に,大学入学前の学生とその教師や親たちを含む人々に対し,以下の2つの メッセージを送る必要がある:
─ 知的に挑戦的で魅力的な科学的問題が多く残されている.問題領域と解決 策領域を限定しているのは我々の好奇心と創造性だけである;そして
─ コンピュータ科学を専攻した学生は何を専門にしてもよい.英語や数学を 専攻した学生は異なる分野で複数のキャリアを追求しているではないか.
コンピュータ科学もしかり.コンピュータ科学を専攻した後に医学,法律, 経営,政治,そしてあらゆる種類の科学や工学,さらには芸術の分野に進 むことができる.
15 計算論的思考は誰のために
コンピュータ科学の教授は「コンピュータ科学者のように考える方法」と名付 けた科目を,大学の新入生に教えるべきである.
そしてそれはコンピュータ科学専門の学生だけでなく他学科の学生たちにも開 放すべきである.
大学以前の学生にも計算手法やモデルに触れる機会を作るべきである.
コンピュータ科学に不満を述べたり,それに対する興味を否定するのではなく, あるいはコンピュータ科学の研究費を却下したりしないで,一般の人々の興味 をこの分野の知的冒険へと導くべきである.
そのようにしてコンピュータ科学の喜び,恐怖,威力を広め,計算論的思考を 一般的なものにしたい.