Computer Science是属于faculty of
mathematics的专业,也就是数学部门的专业。所以需要学比较多的数学。大概有8-10个数学必修课。一般都是前2年学完。然后是读14
- 15科cs专业课,剩下的就是随便选修什么都可以了。数学课有微积分,离散数学,古典代数,排列组合和统计概率。
第一年修的cs课程都是用java做作业。学的是java入门,数据结构,程序码的编译入门,电脑芯片的简介等等。到了2-3年级就开始学一些软件的流程与设计,算法还有操作系统。这时候用的,就是C++了。我想说说,我最怕的就是算法。因为要解决的问题非常抽象,而且有些还需要证明什么的。最主要的就是需要用以前学的数据结构和逻辑解决某一类的问题。所以一年级所学的数据结构一定要学好。我很喜欢学操作系统。但是作业非常难做。因为虽然概念不难理解,但是写程序的时候要解决的问题还是不少。但如果操作系统学好了,4年纪的课就不是很难。到了4年纪的时候,就可以随意选择任何课了。我觉得有几门是比较有用的。一门就是语言和逻辑,讨论的是计算机和语言,formal
languages。然后讨论的是turing machine。这很重要,因为turing
machine标志着用严谨的数学证明,能证明计算机到底能解决什么样的问题。我还学了电脑图像,computer
graphics.这是一门很容易找工作的课。因为现在用电脑做3D图像是非常热门的。是做游戏或对游戏有兴趣的人必须学的。滑铁卢的computer
science 4年级有一门最有名,也是最难的课,叫做real time
programming.中文应该叫做实时控制。这门课开始的时候,给每学生的就是两套奔腾III的电脑系统和火车轨道模型系统。电脑系统上什么软件都没有,所有的软件都要自己写。这个课的目标就是在课程结束的时候,学生写的软件可以让使用者很容易的控制火车在轨道系统上跑。这门课中学到的,是怎么样从头开始写操作系统,怎么写显示的,键盘的,鼠标的驱动程序。最后就是怎么用电脑软件来自动控制火车在轨道上行走。我觉得学这门课的最大收获就是学到了自动控制理论。CS是不用写毕业论文就可以毕业的,也没有结业项目。