我是一名正在学习计算理论课程的研究生,一旦被要求,我在制作内容方面存在严重的困难。我能够按照教科书(Michael Sipser的计算理论简介)和讲座进行学习;但是,当被要求证明某件事或提出特定TM的正式描述时,我只是cho之以鼻。
在这种情况下我该怎么办?我想我的问题是完全理解抽象概念,以至于我可以实际使用它们。是否有一种结构化的方法来处理新的抽象概念并最终建立直觉?
我是一名正在学习计算理论课程的研究生,一旦被要求,我在制作内容方面存在严重的困难。我能够按照教科书(Michael Sipser的计算理论简介)和讲座进行学习;但是,当被要求证明某件事或提出特定TM的正式描述时,我只是cho之以鼻。
在这种情况下我该怎么办?我想我的问题是完全理解抽象概念,以至于我可以实际使用它们。是否有一种结构化的方法来处理新的抽象概念并最终建立直觉?
Answers:
在计算机科学中,抽象几乎是头等大事,但不幸的是,很难明确地讲授。
我认为,理解概念比能够机械地计算或证明事物更重要。当然,您需要了解一些基本方法,但是其他地方都没有问题。
首先,您必须在某种程度上掌握内容。为此,我发现在您不清楚的地方提出以下问题很有用:
在您回答了这些问题(或发现后续问题并以相同的方式对其进行了处理)后仍然有问题,请联系您的老师(或在此处)。到现在为止,您应该能够提出一个有针对性的,精确制定的问题;回答此类问题是您老师的工作(也是StackExchange的理念)。
除此之外,它是锻炼和经验。阅读证明后,请尝试复制证明;注意不要刻骨铭心地学习它们,而要从中提炼出重要的思想。一段时间后,您应该能够通过填补主要步骤之间的空隙来复制所有基本证明。甚至以后,您将开始在陈述和证明中看到模式。人们就是这样看待语句的:“哦,是的,当然,将方法X与定理Y一起使用,然后仅使用Z获得您想要的。” 多年的培训助长了模式识别。耐心一点。
至于基本练习,请去寻找一些相关的教科书。在我的脑海中,我可以参考Graham,Knuth和Patashnik的《具体数学》。本书不仅是计算机科学家的宝贵工具箱,还包含大量练习和解决方案(!)。请记住在查找答案之前尝试解决它们,并重现必须查找的答案。
另一本有用的书是Cormen,Leiserson,Rivest和Stein 撰写的算法介绍。其中包括有关数学基础的相当大的一章。它还包含许多练习。解决方案可通过链接页面(补充内容)获得。还有一位作者的视频讲座,可能与本书很相配。
有关证明的入门讲座,请查看可汗学院的线性代数证明。我没有看过它们,但希望它们既基本又有用。可汗学院(Khan Academy)上还有更多证据。我只是认为线性代数证明可能最适合计算机科学。也不要犹豫,看着别人。
您在标题中提出一个一般性问题,然后在问题中至少提出两个基本/特定要点,我认为每个问题都有很好的(单独的)答案:
这里只解决第一个项目(本质上是广泛的,应该得到它)-它是STEM(科学,技术,工程,数学)教育中的一头大象,但很快就会被忽略,并且常常被掩盖到令人震惊的程度。似乎没有人真正知道如何教如何建立证明。该主题始于几何,三角学和微积分类,但很少是其中的严格元素。大多数教师将其视为可选。似乎整个课程都致力于“如何证明东西”,这将是对STEM教育的极好甚至关键的补充或改变。
在我快速搜索如何证明事物的过程中,这里有一些参考资料,我认为还有很多其他好的资源。如今也可能有很多关于该主题的视频可以通过搜索找到,但是我还没有看到一个很好的全面组织“如何证明事物”类型的视频。
证明的关键部分是掌握数学的基础知识并将其全部用作工具或构建部件。例如,知道什么是集合,什么是元组,什么是差异/相似性,何时使用一个而不使用另一个等等。
另一种方法是像钻一样对待它。自己做许多练习证明,从容易到难做(希望我知道更多这样的书,似乎没有很多)。
理查德·哈马克(Richard Hammack)的《证明书》(Book of Proof) -出色的免费在线参考书,介绍了角色和技术等的基本内容。
Imre Lakatos的证明和反驳 -主题的古老经典,强调了迭代,进化的证明方法
傻瓜的证明和定理 -傻瓜系列书籍的网页