国外计算机科学学什么?
我是在瑞士读的本科,下面以计算机科学的本科课程为例介绍一下瑞士(欧洲)的算法课。 先给出结论,在欧美的大学里算法这门课大致就是讲几种经典的问题和复杂度分析,然后讲几个常用的数据结构,没有太多花活。
以下详细介绍: 从上图可以看到,算法的主要学习内容是几类问题以及对应的时间复杂度和空间复杂度。老师上课的时候并不会去深入讨论这些概念,而是让同学自己去理解然后通过作业来检测。这些内容都是计算机基础课程里面的内容,在国内也是本科必修。
除了这几类问题之外还有一些常见的数据结构和其复杂度。这部分知识比较实用,会在实际项目中用到。老师会提供一些经典的源码让你去研读并手写复现其中的关键算法,以此来熟悉如何分析复杂度、设计数据结构。 除了以上两大块以外还有很多细节的知识,比如关于并行计算,分布式系统还有优化等等。但这些内容在本科阶段并不是重点,在研究生阶段才会学到很深入。
最后分享一下学习算法的心得:如果能把课上讲的例子自己手撸出来并且能独立复现老师的代码就基本算是掌握了。如果还能总结提炼出老师的思路那就算掌握的比较深入了。