如果你现在可以参加一门计算机科学课程,它会是什么?

时间:2009-02-12 22:54:28

标签: computer-science

如果您现在有机会参加一门计算机科学课程,结果显着提高了您在某一学科领域的知识,那会是什么?本科或研究生水平。

编译器?分布式算法?并发理论?高级操作系统?

让我知道原因。

(请注意,我很欣赏这不是一个遥不可及的场景 - 但时间和惯性可能会阻止人们参加课程或阅读书籍等等)

37 个答案:

答案 0 :(得分:34)

编译器。

就像学习外语一样迫使你比以前更加认真地考虑你的母语,我相信编写编译器可以让你深入了解你正常编写的所有代码。

答案 1 :(得分:19)

数据结构和算法 - 本课程教您如何构建更高效的代码,并教您如何解决复杂问题的常用方法。我不是最好的,但我相信这种课程教会你如何思考复杂问题的方式可以帮助你在许多其他领域。

答案 2 :(得分:16)

我很想参加一个硬核(如John Carmack硬核)图形编程课程。涵盖从硬件级别到光栅化和渲染算法以及完成三维数据操作和数据存储技术的所有内容。我上大学时提供的那个非常平庸。

答案 3 :(得分:15)

用户界面设计,心跳加速。

我在大学里学到了很多关于如何编程的知识,但从来没有提到用户体验。在离开工作岗位十多年之后,我将这种遗漏看作是犯罪的罪魁祸首。

答案 4 :(得分:14)

操作系统。知道你在较低级别上打勾的那个盒子有助于你以后掌握所有更高级别的概念,特别是当出现问题时。

答案 5 :(得分:14)

算法课,放下手。

  

“如果你想成为一名世界级的程序员,你可以每天编程十年,或者你可以每天编程两年并参加算法课程。” - Erik Demaine教授(麻省理工学院)

学习算法的复杂性,排序,合并和搜索算法非常重要。

以下是来自MIT link视频的视频的OpenCourseware algorithms class

答案 6 :(得分:6)

神经网络
人工智能在实践中 自然语言或语义处理简介。

其中任何一个......如果我有时间的话,我现在喜欢做任何这些。

但是,如果你扩大范围以涵盖任何课程,我将不得不参加会计课程。这将以各种方式有用。

答案 7 :(得分:5)

我有兴趣参加机器学习课程。我从事统计工作,与机器学习有很多重叠。我很高兴看到解决一些相同问题的不同观点。

答案 8 :(得分:4)

我将学习一门涵盖我知道自己无法学习的材料的课程。例如,我对量子计算非常着迷,即使它可能对我没有专业帮助,我也想知道更多。

答案 9 :(得分:4)

隐私和匿名(实际上,我刚刚审核了这个,所以它确实不完全符合这个问题)。一旦你弄清楚使用最少量的信息在网络上进行唯一识别是多么容易,你将更加谨慎地分发你所提供的信息(作为用户)以及你收集/显示的信息(作为开发人员) )。

答案 10 :(得分:4)

网络。 (不是社交网络......尽管这可能是一个有趣的课程。)

答案 11 :(得分:3)

我还没有完成硕士论文,所以我仍然可以参加任何我喜欢的CS课程。但我认为通过阅读书籍和做一些练习,我可以更轻松地学习同样的东西,而无需参加课程(并从练习和考试中获得压力)。另一种选择是只听听讲座,但没有正式参加课程(至少在赫尔辛基大学,这里的讲座是公开的,任何人都可以听)。

以下是我想学习的内容:函数式编程,分布式系统。编译器也是一个有趣的话题,但我现在不需要那些知识。

我的大学会开设所有这些课程,但现在我更喜欢自己学习。我将从lambda演算和Haskell课程下载课程材料和练习,并阅读一两本关于分布式系统和算法的书。

答案 12 :(得分:2)

我很惊讶我没有看到任何人去计算理论。这是我在大学学到的最令人讨厌的主题。当然有人和我有同样的胃口。 : - )

CS - > 1.计算理论,       2.计算建模,       3.编程语言

  1. 它为我提供了一个更全面解决问题的抽象视角。我的经验告诉我,我越抽象,我能为问题制定更好的解决方案。 : - )

  2. 建模是如此强大,以至于大多数问题解决依赖于。有了它,我们通常以低级别的方式解决问题。它通常不是最好的解决方案。

  3. 这是计算机与程序员的接口。我有兴趣让所有人都能轻松编程。因此,如果界面可以改进,所有这些都将受益。

答案 13 :(得分:2)

算法(再次)。可悲的是,我不认为我第一次接受的应该是这么多。我的第二选择是编译器。

答案 14 :(得分:2)

计算几何。我接受了从书本中学到的东西,但我希望当我有机会时,我会得到真正深刻的理解。

答案 15 :(得分:2)

并行编程。我真的认为它不仅仅是函数式编程。我对用非功能语言讨论这个话题感兴趣。

答案 16 :(得分:2)

“软件许可和相关版权法”将在明年受到重创

答案 17 :(得分:2)

印刷术。其次是用户界面设计。

我认为这些是我的技能需要最大改进的领域。

答案 18 :(得分:2)

也是编译器,因为它们需要在很多领域提高效率,解析,模式匹配,语义分析,代码生成等。

欢呼声

答案 19 :(得分:2)

遗传编程?

答案 20 :(得分:2)

计算机网络或编译器构建 - 两者都是我学校的选修课,由于时间表冲突,我从未有机会参加。

(从技术上讲,我的几个课程教授编译器构造的各种元素 - 解析,管理符号表,激活记录 - 但它们更多地是关于机器/语言理论而不是如何实际构建编译器。)

答案 21 :(得分:1)

我的前两个(操作系统和编译器)已经被采用。我的下一个选择是数据库设计的好课程。数据库是任何Web项目的重要组成部分。了解它们如何在内部工作将使以后更容易使用它们。

答案 22 :(得分:1)

操作系统。拥有操作系统知识的任何人在将软件系统中的组件/服务拼凑在一起,规划性能以及诊断/解决性能瓶颈方面具有巨大的优势。

答案 23 :(得分:1)

This is a course I can recommend(这是一个远程学习课程)。

您了解逻辑,递归,二叉树/ BST,真值表,效率,函数的正式定义。它不需要任何超出学校水平的数学背景。有关位操作,二进制计数等基本主题将在第1年的模块中介绍。

你不使用haskell虽然我听过很多大学使用它 - 它是一种java解释的函数式语言。

答案 24 :(得分:1)

并行/分布式编程因为cpu的速度不会那么快;和多核和互联网将会存在一段时间。我没有先验知识的本科课程。

答案 25 :(得分:1)

安全或加密

答案 26 :(得分:1)

极端编程。编程竞赛中的问题。 编码很多。快速编码。有效编码。 使用版本控制包括:)

答案 27 :(得分:0)

信息技术规则

诸如SOX,PCI,HIPAA以及来自不同司法管辖区的其他法律要求以及可能适用于IT领域的隐私法律。黑客也可能在某种程度上被覆盖,因为它是法律课程和信息技术之间的一种交叉,不一定是计算机科学。

答案 28 :(得分:0)

由于我已经采用了编译器,算法和所有其他标准CS的东西,我可能会采取更有趣和“时髦”的东西,如IPhone development

答案 29 :(得分:0)

答案 30 :(得分:0)

我希望我能拿一篇讲授大会的文章。 我所做的所有论文都是高级语言。

我也希望我能早点点击数据库,我才开始在第二年就读这些文件。所以我从未能够获得有关Hibernate,JDBC等的高级论文。

答案 31 :(得分:0)

使用最新语言的任何现代算法类不仅可以教您算法,还可以教授语言!

答案 32 :(得分:0)

当我想在大学学习时,我仍然感到很沮丧神经网络已经满了。

答案 33 :(得分:0)

编译器和操作系统

答案 34 :(得分:0)

计算机体系结构。为了更好地理解软件最终如何实际运行。

答案 35 :(得分:0)

统计。能够查看日志,计算错误,计算成功,并给出未来失败的可能性,这有助于弄清楚“我们现在需要解决这个问题,还是可以暂时停留一段时间?”

答案 36 :(得分:0)

计算机图形和/或图像处理。没有更好的方法来开始考虑算法中的并行化。