您学习过哪些最困难的CS学科/理论,但对该领域来说很重要?原因是什么?
您学习过哪些最困难的CS学科/理论,但对该领域来说很重要?原因是什么?
Answers:
老实说,编译器的构造!
算法设计与分析
我认为这个问题取决于您的老师,以及您的职业如何组织该科目。
分析算法可能会像有人想要的那样困难。考虑到存在未解决的问题,不仅是:无法解决的问题。
问题是您可能遇到问题,如果您知道无法解决,那就太好了。但是,如果不这样做怎么办?您可能需要花费大量时间来证明它是NP-Complete,或者试图找到一个多项式时间解决方案来解决它。
证明NP的完整性并不容易。是的,已经知道了很多问题,但是要做的是找到减少点以证明它是NP-Complete。如果您花费大量的时间/天/月来演示它,并且可以在多项式时间内求解,该怎么办?:)
还有其他科目,例如编译器,组论和原始递归函数,可能会像科目计划或老师所希望的那样困难;)
模式识别,即人工智能。这是指智能计算以及其他模式识别工具,例如光学字符识别,语音到文本,面部识别等。
您可以使用计算机执行或希望通过计算机执行的许多“很酷”的事情都依赖于这些算法,并且数十年来,我们一直在尝试对其进行完善,但并未取得很大的成功。
我的选择是可计算性理论
(嗯...也许那不那么重要,但是肯定很困难)
范畴论(离散数学),但值得
密码学
如果您做的有点错误,则可能使公司损失数百万美元。
操作系统,尤其是与线程相关的部分。
原因不是因为很难让5位哲学家用叉子吃披萨。原因是因为编写多线程代码本身就很困难,而且对于人类(至少是男性-据我的妻子来说,是男性)计算起来并不容易。
我也投票赞成Compiler Design。特别是在DFA和NFA部分进入的地方。关于NP问题和内容,我也不太清楚。
当客户真的不知道他们想要什么时,解释客户的需求。这不是大学教授的,是拥有的最基本的技能之一。
管理信息服务
在我上大学期间,我每学期只有一个管理科目,这使我非常生气。
强硬!诸如Compiler Design,OS Design等主题很艰巨,但它们确实很有趣且充满挑战。我真的搞砸了诸如管理信息系统/服务之类的主题,因为它们充满了无聊,并且您必须经历很多理论。
如果您使用的是C / C ++,则指针是最重要的概念。但是以某种方式,我从未在大学里完全理解它。