理論的なコンピューターサイエンスの研究に含まれるものを理解しようとしています。理論的なコンピューター科学者は何をしますか?
私は、教育、大学院生の監督、資金の申請、学部の職務にかなりの時間が費やされていることを知っています。脇に置いて、研究時間をどのように費やしていますか?あなたが通常行う主な活動は何ですか?論文を読んだり、考えたり、会議を開いたり、文書を書いたりすると思います。他に何かありますか?
理論的なコンピューターサイエンスの研究に含まれるものを理解しようとしています。理論的なコンピューター科学者は何をしますか?
私は、教育、大学院生の監督、資金の申請、学部の職務にかなりの時間が費やされていることを知っています。脇に置いて、研究時間をどのように費やしていますか?あなたが通常行う主な活動は何ですか?論文を読んだり、考えたり、会議を開いたり、文書を書いたりすると思います。他に何かありますか?
回答:
トピックスについて
理論的なコンピューターサイエンスと見なされる可能性のあるさまざまな種類の問題があります 。ここで重要な言葉は「理論的」です(コンピューターサイエンスが何を扱うかについての考えはすべてあります)。理論的な言葉を理解することはそれほど明白ではありません。長い間、たとえば「ハッキング」とは対照的に、私はそれを数学的なことを意味すると考えていました。言語学の人々からより良く学んだ: 理論それらは明らかに数学を意味していませんが、多少非公式であるかもしれない理論に基づいています(数学的かもしれませんが)、観察可能な現象の理解を構築し、願わくは演de的で予測的な使用を可能にする知識と概念の組織体です獲得した知識の。また、残りを推定できる原始概念の数を減らすことにより、学習し、教える量を減らします。
理論的にはに反対することができます実用的な、私はまたに反対することができますなど、ビルドシステムに、この知識を実際に実行計算エンジンに使用される方法である、適用される科学と人間の他の分野でのアドレスの問題にこの知識を利用していますアクティビティ。
しかし、明確な境界があるとは思いません。
これは、理論的なコンピューターサイエンスはさまざまな分野をカバーしていることを示しています。
1つの領域は計算可能性であり、計算可能なものと、かなり抽象的な意味での方法を研究します。主にSuresh Venkatの答えで説明されているものです。
別のアルゴリズムは、特定の制約を使用して、特定の問題に対する回答を計算するための効果的な手段を見つけるアルゴリズムです。計算可能性は、アルゴリズムの理論的なコンテキストです。
セマンティクス(より良い名前が必要なため)、計算問題およびアルゴリズムの概念的編成をより高いレベルの概念に分析し、有用であることが証明され、サブプログラムの概念、データ構造、モジュール、情報隠蔽。これらの概念を適切に形式化して、高レベルの推論(たとえば、Scottのセマンティクス)を可能にする数学ツールの開発が含まれます。また、これが表現される方法、つまり構文とセマンティクスの分離と関係にも触れます。プログラミング言語の概念もその一部です(ただし、言語設計はおそらくその知識の実用的な応用でしょう)。証明理論と計算理論の間の関係、および型システムの現代の役割も含めることができます。
もう1つのトピックは、これまでよりも発展する可能性がありますが、計算と基礎物理学の関係です。例えば。計算の限界と、物理情報密度や熱力学の法則などの物理世界の特性との間に関係があります。量子コンピューティングは、私たちの計算能力を少し改善するかもしれません。もっと期待できますか?ハイパーコンピューティングに関するTCS研究がありますが、これがまだTCSであることに異論を唱える人もいます。
特定の活動について
アカデミックライフに必要な明らかな活動をスキップしています。または業界での科学的生活:教育、出版、論文のレビュー、助成金申請書の作成、学術的責任の遂行、人の管理、学生または政策立案者への助言。しかし、それでも、あなたの質問に対する簡単な答えはありません。ここでは、頭に浮かぶいくつかの側面をスケッチしていますが、もっと多くのことが言えると確信しています。そして、私はあなたに答えているかどうかわかりません。優秀な科学者の中には、自分の研究に関する本を書いている人もいます。これは科学活動についてのヒントを与えてくれるかもしれません。
理論の研究には、科学者によって大きく異なるスキルや興味に応じて、さまざまなことが含まれます。各人は他の人よりも自分自身の活動や興味をより多く知覚するため、それについて話すのはやや困難です。興味深い、本当に独創的な結果は、物事を関係付けたり、ある(サブ)フィールドから別の(サブ)フィールドに技術を移したり、同じ問題の異なる技術的見解を得ることに起因することが多いため、ほとんどの研究には幅広い知識が必要です。そのため、できる限り多くのことを徹底的に学ぶことが重要です。学生として、または若手教員/科学者としての時間と能力はありますが、一般的に責任と生活のため、両方とも後で削減されることに注意してください。あなたが専門としないものを教えることは、学び続ける方法かもしれません。
人々は幸運にも非常に異なっており、非常に多様な興味と技術的能力を持ち、お互いを補完し合っているため、人々が行う仕事の種類は大きく異なります。一部の人々は問題解決者です。彼らは、他の人々または自分自身によって提起された理論的または実用的な質問を見て、それらを解決しようとするか、完全または部分的な解決策に近づきます。他の人々は、既存の知識を構造化し、物事を関係付け、そして質問する新しい質問を見つけるのに優れているでしょう。両方が不可欠です。
技術的な結果のより単純な証拠を見つけること、理論のより単純なプレゼンテーションを見つけること、または概念を統合することは重要です。結果を一般化し、学習するものの数を減らし、重要なアイデアを強調し、おそらく新しい理解をもたらします。私たちの学習時間は限られているので、進歩は知識を凝縮するときにのみ可能です。
簡単な例は、形式言語の抽象的なファミリーの研究です。言語理論が最初に開発されたとき、さまざまな操作の下でのクロージャのプロパティが言語の各ファミリ(通常、コンテキストフリー、RE、...)で何度も証明され、ファミリに応じたアドホックな手法が使用されました。そして、これらの閉鎖特性は、関係する家族とは無関係に固有の関係を持つことが起こり、そのように研究されました。現在、特定のファミリの単純なクロージャプロパティのいくつかをチェックするだけで、他のプロパティのセット全体を「無料で」取得できます。
別の重要な点は、理論的、実用的、または実験的作業の間に明確な区別がないことです。。良い理論は、問題の解決を機械化できるシステムの実装につながる可能性があります。そして、そのようなシステムを実装するには、システム実装や言語設計を含む理論的および実践的な作業を組み合わせて、優れた理論家が必要になります。証明および/またはプログラム合成システム、同期並列システム専用の言語、計算の複雑さを体系的に導出できる制限付きアルゴリズム言語など、多くの例が思い浮かびます。理論的な結果をより広く利用可能にする実用的なシステムを作成できることが重要であるだけでなく、理論家にとっては、創造性の低い部分をアンロードするだけで、これらのシステムを上手に使用することがしばしば非常に重要ですこれらのシステムの開発と拡張に貢献する。
別の側面は、実用的な実験により理論的アプローチを比較できることです。ここでの問題は、異なる技術を比較して同じ目標を達成することです。実装の比較は、多くの場合、その効率がプログラミング言語または実装者のプログラミングスキルに依存するため、意味がありません。しかし、それらをすべて共通の理論的枠組みで表現できる場合、その枠組み内でそれらを実験的に比較することも可能です。ここで、理論と実践は科学でよく行われるように、互いに支え合っています。純粋な理論的分析は、必ずしも簡単に達成できるとは限りません。さらに、実験的分析は、適切に実施された場合、より優れた理論的分析の動機となる予期しない動作を示す可能性があります。
世界は単純でも明確でもありません。それが、あらゆる種類のスキルの余地がある、楽しくなる理由です。自分の知識に疑問を投げかけ、他の人の質問に答える。
忘れられがちな2つのこと:科学の倫理と、それを人々に説明すること。両方が不可欠であり、難しいです。
ある意味では、このサイトを閲覧すると、理論的なコンピューター科学者が(低レベルで)考える疑問の種類がわかります。非常に高いレベルで、理論的なコンピューター科学者は計算の数学的基礎について質問します。
これらの質問から始めて、アプリケーション分野、数学、コンピューターサイエンスの他の部分などに触れ、他の多くのトピックが生まれます。
私にとっては、自分自身のアカウントが役立つかもしれないと思いましたが、それらはCSではややまれであるようです(例えば、数学、伝記/伝記のような執筆とは対照的)。質問に対応し、役立つ可能性のある2つのオンラインrefがあります。彼らは博士課程の学生生活とCS志向をより重視していますが、ほとんどは教授レベルの研究に続きます(教育以外の、多くの博士も行います)。[ 教授はある意味で、彼らの経歴にわたって多くの「ミニ」博士論文(研究論文)または場合によっては「スーパー」博士論文(本)を絶えず/繰り返し書いていると見ることができます。件名は、あなたの質問に対する受け入れ可能な回答であると示す場合に追加されます。
MIT AI Labで研究を行う方法「現在の、かつての、名誉あるMIT AI Labの大学院生の大勢による」/編集者David Chapman
このドキュメントは、研究の方法を説明することを意図していると思われます。私たちは、研究(読書、執筆、プログラミング)に必要な特定のスキルを習得し、プロセス自体(方法論、トピックとアドバイザーの選択、および感情的要因)を理解して楽しむのに役立つかもしれないヒューリスティックを提供します。
成功する博士課程の学生になる方法(コンピューターサイエンス) Mark Dredze(ジョンズホプキンス大学)、Hanna M. Wallach(マサチューセッツ大学アマースト大学)