TCSを理解する上で立ち往生するための戦略


19

私は大学院生であり、計算理論のコースを受講しており、求められるとコンテンツを作成するのが大変です。教科書(マイケル・シプサーによる計算理論入門)と講義をフォローできます。しかし、何かを証明するか、特定のTMの正式な説明を考え出すように求められたとき、私はただ窒息します。

そのような状況で私は何ができますか?私の問題は、抽象概念を実際に使用できる程度まで完全に理解することだと思います。新しい抽象的な概念にアプローチし、最終的に直感を構築するための構造化された方法はありますか?


5
私を殴る。これはこのサイトにとって妥当な質問のようです。
-Suresh

4
私は閉会に投票しました。私が見る主な問題は、質問が実際にはコンピューターサイエンスに関するものではないということです。それはコンピュータサイエンスを学ぶ方法についてです。後者には客観的な答えがありません。それぞれの人が独自の最善の方法を持っているからです。終了する3つの投票はすべて「あまりにもローカライズされた」理由に割り当てられていますが、コンピューターサイエンスに関するものではないため、この質問もトピックから外れていると思います。
カール・ムンメルト

1
この質問にはメリットがあり、私が非常に苦労しているタイプの質問だと思います。信頼できるコミュニティからこの種の問題に関するガイダンスを得ることは、多くのCS学生が苦労していることだと思います。しかし、私は質問に対する異議を理解しています。質問はこのサイトのメタセクションにかなり適切であるように思えます。
ブラザージャック

6
@CarlMummert:コンピューターサイエンスに関するすべての質問は、コンピューターサイエンスの学習方法に関する質問です。
-JeffE

2
問題は現在の形では広範です。質問に焦点を当てます。たとえば、コースの質問を解決する能力を向上させるためにリソース(例:問題集)を尋ねます。または、その問題に焦点を当てた特定の例があり、同様の問題に取り組むための直感や方法について質問します。
カベ

回答:


15

抽象化は、コンピュータサイエンスのほとんどの分野に当てはまりますが、残念ながら明示的に教えることは困難です。

私の意見では、概念を理解することは、物を機械的に計算または証明できるよりも重要です。確かに、あなたはいくつかの基本的な方法の周りのあなたの方法を知る必要がありますが、肉はどこかにあります。

まず、コンテンツをある程度把握する必要があります。このため、不明な点がある場合はいつでも次の質問をすると便利です。

  • なぜこれを行うのですか?
  • これを何に使うのでしょうか?
  • これはどのような類似のものに関連していますか?
  • 他の情報源それをどのように説明していますか?
  • 何を正確に私は理解していませんか?

これらの質問に答えた(またはフォローアップの質問を見つけて同じように扱った)後も問題が解決しない場合は、教師(またはここ)にアクセスしてください。今では、焦点を絞った、正確に定式化された質問を定式化できるはずです。このような質問に答えることは、教師の仕事です(そしてStackExchangeの哲学です)。

それ以外は、運動と経験です。プルーフを読んだ後、プルーフを再現してください。それらを暗記するのではなく、重要なアイデアを引き出すように注意してください。しばらくすると、主要なステップ間のギャップを埋めることで、すべての基本的な証明を再現できるようになります。後で、ステートメントと証明のパターンが表示されるようになります。これは、人々が声明を見て、「ああ、確かに、定理YでメソッドXを使用し、次にZを使用して必要なものを取得する」と言う方法です。これは、長年のトレーニングによって強化されたパターン認識です。我慢して。

基本的な演習については、いくつかの教科書を見つけてください。頭の一番上から、Graham、Knuth、Patashnikによるコンクリート数学を参照できます。この本は、コンピューター科学者にとって貴重なツールボックスであるだけでなく、解決策(!)を含む多くの演習も含まれています。回答を検索する前にそれらを解決し、検索する必要がある回答を再現することを忘れないでください。

別の有用な本は、Cormen、Leiserson、Rivest、Steinによるアルゴリズムの紹介です。数学の基礎に関するかなりの章が含まれています。また、多くの演習が含まれています。ソリューションは、リンクされたページ(補足コンテンツ)から入手できます。著者の一人によるビデオ講義もあり、それは本とうまく行くかもしれません。

証明に関する入門講義については、カーンアカデミーの線形代数証明をご覧ください。私はそれらを見ていないが、願わくばそれらが基本的かつ有用であることを望んでいる。カーンアカデミーにはさらに多くの証拠があります。私は、線形代数の証明がコンピューターサイエンスに最も適していると考えています。他の人も見るのをためらわないでください。


7
概念を理解することは、物を計算したり証明したりする能力よりも重要であることに同意します。しかし、理解は計算と証明による実践の結果であり、その実践の代替ではありません。
-JeffE

洞察力をありがとう。私はあなたのアドバイスを心から受け取り、それに基づいて改善しようとします。
トライゴマン

より基本的なニーズについては、Book of Proofが参考になる場合があります。
ラファエル

8

理論上うまくいかない人は、基本が間違っているだけであることが最初にわかります(最初の1〜3の講義では、資料は非常に簡単だと思ったので、あまり注意を払っていませんでしたが、講義5〜7では物事がスピードアップし、要約するには遅すぎます)。

@fbernardoが言ったように、最初から始めるのは良い考えかもしれません。FLAほどではありません(TC、IMHOを勉強するときは意味がありません)が、間違いなくSipserを開いて、順番どおりに質問を1つずつ解決してください。経験を積むと、より高度な概念に不可欠な直観力と基本的なツールが得られます。

Sipserの最初の章の基本的な質問(TMで学習する場合はオートマトンの章ではない)に対処できない場合、基本的な証明方法(帰納法など)や基本的なセットなど、さらに基本的な概念が不足している可能性があります。理論と離散数学。

とにかく頑張って!


3

私の唯一のアドバイスは、最初から始めることです。私のコースではSipserの本も使用しますが、これは私の意見では良い本です。しかし、TCの前に、FLA(Formal Languages an Automaton)という名前のコースがあり、TCについてのより良い直観と背景を与えました。だから、再び、誰もが異なる速度で学習し、あなたは非常に良い本を持っています。その他の特定の質問については、こちらでいつでもヘルプを見つけることができます。:)


2

タイトルで一般的な質問をし、その質問の少なくとも2つの基本的/具体的なポイントを尋ねます。それぞれに良い(別々の)答えがあると思います。

  • ものを証明する方法
  • TMの動作の正式な説明を作成する

ここでは、最初の項目(本質的に広範でそれに値する)のみに対処します。これは、STEM(科学、技術、工学、数学)教育の部屋にあるゾウのようなもので、短い手間がかかり、しばしば驚くほど光沢があります。証明を構築する方法を教える方法を本当に誰も知らないように見えるかもしれません。このsubjは、ジオメトリ、三角法、微積分のクラスから始まりますが、厳密な要素になることはめったにありません。ほとんどの教師はオプションとして扱います。「ものを証明する方法」に専念するクラス全体が、STEM教育に対する優れた、または重要な追加または変更になると思われます。

以下は、物事を証明する方法をすばやく検索した参考文献です。他にも多くの優れたリソースがあると思います。最近では、検索で検索できるテーマに関するビデオもおそらくたくさんありますが、「ものを証明する方法」タイプのビデオの素晴らしい総合的な組織を見たことはありません。

証明の重要な部分は、数学の基本を習得し、それをすべてツールまたは建築部品として使用することです。たとえば、セットが何であるか、タプルが何であるか、違い/類似性が何であるか、いつ一方を使用し、他方を使用しないかなどを知っています。

別のアプローチは、ドリルのように扱うことです。簡単なものから難しいものまで、自分で練習の練習をたくさんしてください(このような本をもっと知っていたら、たくさんあるように思わないでください)。


1
Pólyaの古典的な「解決方法」を追加します。Knuth et al "Mathematical writing"などの数学的な書き物を見回すことも(特に卒業生にとって)便利です。これは、あまりにも当たり前のスキルです。
フォンブランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.