現在、私は大学[コンピューターサイエンス]に進学しており、そこで研究を始める機会がたくさんあります。このウェブサイトを見つける前に、私はこの方法で進むつもりはありませんでした[おそらくAIで働きたいと思っていました。おそらくゲーム開発者です。]
この「世界」に参加するよう説得してもらえますか?フォローできる「セグメント」は何ですか?コンピューター科学者や研究者が取り組んでいるトピックの種類について何かありますか?
現在、私は大学[コンピューターサイエンス]に進学しており、そこで研究を始める機会がたくさんあります。このウェブサイトを見つける前に、私はこの方法で進むつもりはありませんでした[おそらくAIで働きたいと思っていました。おそらくゲーム開発者です。]
この「世界」に参加するよう説得してもらえますか?フォローできる「セグメント」は何ですか?コンピューター科学者や研究者が取り組んでいるトピックの種類について何かありますか?
回答:
来たる冬のTCS大学院プログラムに応募する学部生としての私の理由を伝えることができます(少し時間があります!)。
実際、理論的なコンピューターサイエンスの研究に進むかどうかは選択の問題です。しかし、このサイトの質問を(おそらくあなたがしたように)熟読することで、あなたに幅の感覚を与え、分野の美しさの範囲を広げることを願っています。理論家が行う仕事の種類を評価するために読むことができるソースをどこから指し示すのか、私も知りませんが、このサイトには、あなたが興味を持ちそうな質問が1つあります。
ポール・エルドスは、神がそれぞれの数学的定理の最もエレガントな証拠を保持している「本」について話しました。これは、本(現在は第4版になっていると思います)をインスパイアしました:本からの証拠。
もし神がアルゴリズムのための同様の本を持っていたなら、どのアルゴリズムが候補になると思いますか?
現在、この問題に対する64の回答があり、小さな問題、大きな問題、パズル、深層数学のアルゴリズムを網羅しています。このリストを読んで目を引くアルゴリズムについて詳しく読んでいただければ、理論上のコンピューター科学者が何をするのか、なぜそれを行うのかについて多くを学ぶことができると強く信じています。
がんばろう !
私たちの多くが研究に参加した理由は、知的なやりがいのある楽しいことの両方の知られていることの境界を押し広げることを見つけるからです。また、研究を行うことで、有意義で興味深いと感じる問題に取り組むための比類のない自由が得られ、常に挑戦し続けています(楽しんでいます)。
TCS(他の分野とは対照的に)は、コンピューターサイエンスの数学的研究です。分散システムから機械学習まで、さまざまな分野の理論的な側面に取り組むことができます。TCSやコンピューターサイエンスの他の分野からの選択は、あなたの好みや能力がどこにあるかによって異なります。あなたの自然な興味と能力が数学的分析よりもプログラミングやシステム設計にあるのであれば、おそらくTCSに行くべきではありません。一方、あなたのスキルと興味が数学的側面にある場合は、TCSを検討する必要があります。
また、他のすべてのエリアよりも常に1つのエリアを選択する必要はありません。多くの人々は、理論的側面と実践的側面の両方から問題に取り組んでいます。これは、たとえば機械学習では一般的であり、最初にアルゴリズム(多くの場合理論)を設計および分析してから、現実世界(実験設計、アプリケーションなど)でテストします。
あなたが何をしたいのかを理解する良い方法は、多くの異なる分野で授業を受け、おそらくあなたの夏に産業と研究の両方を試すことです。あなたの研究の終わりまでに、あなたはおそらくあなたがやりたいことの良いアイデアを持っているでしょう。
プログラミング言語の理論は、老いも若きも楽しいです。現実世界にロジックを適用しています。パレードに参加してください!!
もっと深刻なことに、私にとって、プログラミング言語の理論は次の理由で興味深いものです。
現実世界への影響の認識:純粋に論理的なアイデア(System F)に由来するHaskellやその他の関数型言語での広範な型システムの動作は、Java(その恐ろしいジェネリック、クロージャ)やScala(現代の理論と出会う日遊び場)。
美しさ:プログラミング言語の理論で使用されるツールの多くは、論理に基づいています。その多くは、プログラミング言語の論理的証明規則と型付け規則の間、および論理のカット除去とプログラミング言語の評価の間の密接な関係を示すカリー-ハワード通信に由来しています。プログラミング言語の研究におけるロジックのアプリケーションの最近の2つの美しい例は、検証における分離ロジックの広範な研究と、評価順序やパターンマッチングなどのプログラミング言語の概念の理解に焦点を当てた証明のアイデアのアプリケーションです。
楽しい:特にCoqなどの証明アシスタントを使用して理論を定式化および検証する場合は、プログラミングと理論を同時に行うことができます。
などなど。
計算理論(理論計算機科学の「私の」分野)が魅力的で勉強する価値があると思う主な理由の1つは、次のようなものです。
計算理論の創始者の一人であるアラン・チューリングは、プロセスを数学的に説明することにより、紙を装備した人間の「関数の計算」の意味を突き止めようとしました。彼が非常に成功したと思うのは私だけではありません。チューリングマシンは、他の多くのコンピューティングプロセスの正確なモデルであることが証明されました。
計算を記述する数学的オブジェクトのクラスを所有しているので、実際にそれらについての定理を証明することができます。したがって、計算できるものとその計算方法を明らかにしようとします。すぐに判明したのは、完全に正当な関数の多くはまったく計算できず、計算不可能性の程度に応じて分類できることです(一部の関数は他の関数よりも「計算不可能」です)。
ジュリス・ハートマニスとリチャード・E・スターンズに最初に特定された他の人たちは、関数(または問題)を計算するのが難しいまたは簡単である(または解決する)ことの意味を数学的に説明しようとしました。問題の難しさを説明できる複雑さの尺度がいくつかあります。最も一般的なのは、それらを解決するのにどれだけ時間が必要かということです。Alan CobhamとJack Edmondsは、「効率的な計算」の合理的な概念を特定することに非常に成功しました。
計算の複雑さのフレームワーク内で、直感的な計算の概念と一致する結果を証明できるようになりました。私のお気に入りの例は、時間階層定理です。計算する時間が長くなれば、より難しい問題を解決できます。
複雑性理論の中心的な未解決の問題であるP対NPは、哲学的に重要な別の問題の形式化にすぎません。この質問は、その実際的な意義とは無関係に、尋ねたり答えたりする価値があると思います。
その質問に確実に答えることは難しいですが、ここで心に留めておくべきことがいくつかあります。
コンピューター科学者としてのキャリアを積む場合、あなたの仕事は、データを有用かつ効率的に使用できるようにデータを処理および構造化するだけでなく、あなたがしていることをどのように、なぜ行うかを考えることも含むでしょうどの境界が動作するか(それを実装するのに十分に理解する以外の理由がない場合)。これは、特にAI / NLP / IRの場合です。アカデミアにいなくても、非常に研究集約的です。実際、AIを使用することで、「理論的な」問題に対処することがかなり保証されます。実際、そのような背景のない仕事を見つけるのは難しいかもしれません。だから、それはあなたがそれを考慮するだろう1つの説得力のある理由かもしれません。
それが、同時に維持しながら、おそらく、あなたがそのような繊細で気まぐれ(としないように困難な言及)プロセスと、このような密接な接触を維持しなければならない任意のCSフィールド、最もあなたの人生のを費やすことは非常に難しいだろうだけでなく、なし物事が機能する理由の基礎にさえ興味があります。言い換えれば、あなたはあなたの人生の残りの間、ライブラリを一緒に接着することができると思いますが、それがあなたのことのように聞こえないなら、あなたは少なくともあなたが扱う問題の基本に十分な知識を持っている必要があります。
TCS研究に積極的に参加することはおそらくあなただけが答えることができる質問ですが、良い出発点(IMO)は、あなたが見たい問題の観点から始めてそこから行くことです。また、あなたはその質問に答えるのに十分な情報さえ持っていないかもしれないので、進むためのより良い方法はあなたの興味があなたをどこに連れて行くかを見るだけかもしれません。