在新西兰
在下不才,在这里写一下对CS课程的心得,希望学弟学妹们能够参考,少走一些弯路。虽然关于CS系的帖子已经有不少,但是因为这个系的课每年的变动都很大,所以我觉得我在这里写的东西也是有一定的参考价值的。
首先介绍一下我自己。本人在2011年sem2入学,读过两个summer school,所以两年半就毕业了,今年开始读CS的honours,感觉压力山大。
关于难易度
难易度我采用雅思的评分标准。由于每个读奥大的人都有6分,所以我把6分作为标准难度。
5到5.5:5是完全不上课也能轻松达到的难度,5.5需要上一下课做一下assignment。
6到6.5:上课听讲,做作业一般就能达到的程度。6.5需要稍微花点工夫
7到7.5分:颇有难度
8到8.5分:相当难。
9分:基本不可能。
Stage 1
Compsci 101
Compsci第一门core paper,必选。如果有编程经验的话,这门课非常非常简单,没有的话就是一般难度了。我们当年教的是Java,会教你一些编程很基础的概念,如data type,variable,flow of control之类的东西。还会教你面向对象编程的概念和图形界面的设计。据说今年开始就改学Python。个人用过Python,确实非常容易学,而且代码简洁,赏心悦目,但是个人还是喜欢Java。
每周会有一个lab,算入总成绩里面的。Pass不难,拿A+也不难,基本上花了工夫就能拿A+。如果你考完后觉得这门课很难,虽然很残酷,但我还是建议你立即转系,因为后面的课都比101难很多。
Pass难度:5~5.5,A+难度:6.5
Compsci 105
Compsci的第二门corepaper,难度大约上升了一倍。105会教你怎么样I/O(input/output),还会教你一些很经典的算法和数据结构(譬如各种排序算法,搜索算法,stack,queue,linked list,heap,tree)这门课是220和230的基础,如果这门课学好了,220和230会很简单,但这门课号称CS的第一门杀手课,每年都有人死在它手下,很多人觉得101简单105就不怎么花时间,最后欲哭无泪的例子并不少,所以我建议在S1或S2读这门课。
这里提一下,奥大CS在summer school基本是捞外快的性质,师资很水。我当年就是summer读的105,第二个老师是个Master刚毕业的学生,相当不负责任,出的assignment又很难,可谓深受其害,105的内容又特别重要,导致stage2的课学得特别吃力。所以可以的话,101和105尽量不要在summer选
Pass难度:6.5,A+难度:7.5
Compsci 111/111G
CS的GE课,非常简单,介绍计算机的历史,构造,各种办公软件的使用,我觉得最有用的还是教你用Latex。想凑学分或凑A+的人可以读,但是如果你有一定的志向,想多读一点其它的课,我不建议你选这个。这门课可以在summer读。
Pass难度:5,A+难度:5.5~6
据说今年有个Compsci 107,是给有编程经验的人读的,具体怎样就不知道了。
就像我上文所言,第一年的课的老师基本上都是最好的,其中
Stage 2:
Stage 2的课可以自由选择,但是实际上6门课里面有5门都是stage3的各种prerequisite,所以其实选择余地也不大。
Compsci 210
硬件课,内容包括计算机的基本构成,二进制,逻辑电路,汇编语言,还有C或C++。这门课不算很难,但是汇编的assignment难度非常高,是用一种类似于汇编语言的叫LC3的东西写一些程序。总体来说,背的东西偏多,但是也有一些计算,是313,314,340,373的prerequisite。
我们当年是James Goodman教第一部分,这老头算是CS最NB的教授,但是教学水平堪忧,看了主页今年S1似乎也是他教,所以自求多福吧。另一个老师Mano倒是很好。
Pass难度:6,A+难度:7.5
Compsci 215
210的进化版。我们当年是分三部分:OS,UNIX,还有networking。OS和networking纯背,Unix估计会要你记一些终端指令,总的来说还是背的多。难度倒是不高,只是210和215读完后感觉什么都没学会。这门课只有S1有,是313,314和340的prerequisite。看主页是Aniket和Mano教,Mano很好,但Aniket是个新来的老师,教得也是很水,而且很懒……就不知道今年怎么样了。
Pass难度:6,A+难度:7
Compsci 220
算法,算是stage2最难的课。内容包括算法的数学基础(big O,big theta,big Omega),排序,搜索,栈(stack),队列(queue),链表(Linked List)等数据结构,还有图论。这门课的exam基本上是有题库的,只要把去年的exam全部做会,A+很简单,但这门课的难度在于assignment
以往是由教算法的那几个老师教的(Michael Dinneen和Mark Wilson),近两年换了Ulrich和其他几个老师教,就不大清楚了,据说今年是轮着教。如果是前者,估计是两个手写两个programming的安排,最后一个编程assignment如果是跟图论有关的话会比较难,前3个就挺简单。如果是Ulrich教,可能assignment难度不高,但是要读懂他的assignment估计要花点时间。
这门课确实不大简单,但是是最容易拿A+的课,因为exam和test有题库,很有可能碰到原题。由于算法是computerscience的灵魂,所以我建议尽量花点工夫在这门课上。
Pass难度:6.5,A+难度:7
Compsci 225
离散数学,跟220有点交集,但是是纯粹的数学课,没有任何编程。内容有逻辑,数学推理,图论,还有密码学等内容,是stage2最有意思的课,对数学好的人而言也是stage2最简单的课,easy A+。看主页是Bakhadyr Khoussainov教,这是个非常好的老师,虽然出的assignment可能会有点难度……
Pass难度:6,A+难度:6.5
Compsci 230
Stage2 比较有用的课(我不说最有用是因为我没读过280)。我们当年是把Java的各种特性深入地讲,包括封装,继承,Swing等内容,是Radu教的(一个口音很重的老师,但是教的很好),第二部分是软件工程的理论,纯背,有点无聊。这门课每个老师教法都不一样,所以不能一概而论。如果你105学得很好,这门课基本上就是复习而已
Pass难度:6,A+难度:7
Compsci 280没读过就不说了,但我看过slide,内容是数据库操作和一些C#,数据库的内容很少,就一351 tutorial的内容,C#的内容也不多,因为跟Java很像所以也是将内容重复一遍而已,估计很简单。
Stage 3
Compsci 313,345,350,367,369本人没读过,不知道详细情况。据说313,369比较难,345略坑(去年背的东西很多,但考的东西很少,很多人考完觉得感觉良好,但最后挂了)。350纯理论,是Computer Science的数学理论基础,跟图灵机有些关系,喜欢数学的可以读,不过读过的朋友都不推荐读,说没用。367是AI,要自学Prolog,但读过的朋友也不推荐读。
Compsci 314
网络课。传说是stage 3最简单的课,我读的时候,与其说是简单倒不如说是老师很水。总的来讲就是背,背下来了就是A+,但是对网络还是一窍不通。所以我建议如果真心想学到东西的同学去读Infosys 322和339,虽然都是杀手课但是比读这门课浪费时间要好多了(我当年是Ulrich,Nevil和Aniket三个人教,Ulrich还好,后面两个,呵呵)
Pass难度:6,A+难度:6.5
Compsci 320
算法课,220的升级版。大致有几个category:greedy algorithm,divide and conquer,dynamic programming还有network flow。最后还会讲NP complete。
很多人都说是stage 3最难的课,但是跟220一样,pass不简单,但是如果你有把握pass,你就很容易拿A+。如果是Michael和Mark Wilson教的话,会有6个assignment,3个写的3个编程,只需各做一个就能pass。Past Exam会比较吓人,尤其是2010年以前的,读完题目毫无头绪是很正常的事,但是近年的趋势是越来越简单。Test和Exam之前的最后一次课最好去,因为老师可能会放水告诉你出题方向。
但这门课难归难,个人觉得是3字头最重要的课。编程语言谁都能学,但这只是“招式”,算法才是CS学生的“内功”。你只懂语言不懂算法的话是很难有所作为的。但是话说回来,这门课教得实在是不怎么样,所以需要你花大量的时间去阅读textbook理解算法的本质。如果你能够扎扎实实啃完这门课,你的思维会大大扩展,很多本来看起来完全没头绪的问题都不至于束手无策了。
Pass难度:7,A+难度:7.5
Compsci 335
230的升级版。会讲各种网络编程的东西,比较大杂烩。有C#(去年好像没有),网络基础(跟314有点交集),XML,F#,functional programming,MVC。我是2012年读的,当时的assignment是做一个代理和MVC,去年是MVC+一个app,感觉这门课的内容是跟潮流的,所以推荐最后一个学期读。一般是Radu和Mano教,都是很好的老师。花点时间学,会比较有收获。
Pass难度:6,A+难度:7
Compsci 340
操作系统。老师是Robert Sheehan,我认为是CS最好的老师,讲课很有趣很幽默。内容很多,有操作系统的历史,虚拟机,process scheduling,多线程,文件系统,内存分配,系统安全,还有移动设备等等。这门课也是以背为主,虽然老师很好,但是他开头说“I don’t want you to memorize anything, I just want you to understand”is totally bullshit. 有一个Assignment有可能会比较难,但总体来说Pass难度不大(因为可以不做assignment也能pass),不过A+很难,我很多很厉害的同学都只拿到A-
Pass难度:6.5,A+难度:8
Compsci351
数据库。去年是Gerald Weber和Sebastian Link教,好像都是德国人。前者教得一般般,后者很不错。内容是数据库的基础(relational algebra,relational calculus,还有对数据库的修改的concurrency问题等等),不过不教SQL,要自己在Lab自学。这门课每年的难度差异很大,前几年据说是最简单的课之一,但是近两年都比较难。
Pass难度:6.5,A+难度:8
Compsci 373
Computer Graphics。一般由3个人教:Patrice Delmas,Burkhard Wuensche,Georgy Gimel'farb。内容也大致分3块:Patrice会教基本的图形几何,譬如点,线,面的交集,颜色理论,射线反射等等;Burkhard会教OpenGL;Georgy会教Computer Vision。Assignment的话,Patrice和Georgy的会比较简单,Burkhard的会非常难,但是因为Burkhard很喜欢用原来的assignment,所以你运气好可能会搜到solution……总的来说这门课可以算是数学课,数学很好的人会觉得很简单,数学不好就会挺吃力。Test和Exam难度不大,只要把past exam弄懂就没太大问题。这门课的内容其实非常非常少,读完可以说对Computer Graphics还是一窍不通。老师也教得不怎么给力(Burkhard还行,Patrice是个很幽默的老师但是在教学方面很懒,只会挑简单的东西讲敷衍了事,不过出的assignment和exam也简单,好不好见仁见智了,他的课堂很有趣但纯粹是浪费时间,Georgy是个俄罗斯老头子,年纪比较大,讲课也没什么精神)。不过这门课pass不难,拿A+也比较简单,属于拉高GPA的课。如果想在图形方面学到东西,就得读7字头的图形课了。
Pass难度:6,A+难度:6.5(数学好的话)
结语:其实写了那么多我觉得都没什么太大用处,因为Computer Science是一门完全靠自学的学科。就算是最好的学校也只能引导你入门,更何况奥大CS的教学水平实在是不敢恭维。在这里经验第一,成绩第二,建议在读书期间找一下做part time的机会,这样在毕业的时候找工作就容易多了(不过说容易做起来难,assignment和复习test,exam确实很花时间)。最好尽快找到自己喜欢的方向然后花大力度在这方面有所发展,这样就不会迷茫了。
评论
牛人啊!顶一个
评论
牛人啊!顶一个
评论
顶起~~!~!!~!
评论
牛人啊...
我來說一下CS280吧
去年是因為angela 病了, 所以她只教230 part 1, 所以導致去年的CS280出得太坑人了
CS280由於angela 病了, 從兩部分變成三部分, 由不同老師來教
Part 1: SQL--Ulrich
Ulrich是個講課相當不錯的老師, 解釋得很清楚, assignment, exam也出得較簡單, 不過就是他很喜歡玩文字遊戲, 出題很多trap, 特別是去年多加了一個database design, 變得出題有些搞不懂他要問什麼, assignment就是SQL, 不過考試真的要非常小心, 有可能全部答案都是正確的, 有可能全部都是錯的, 這時候你就要看關鍵詞,例如說:" the most advantages" "the closest", 總括來說如果讀過infosys 222你就會覺得CS280 part 1很簡單, 沒讀過也無所謂, 反正也就SQL入門, 也不難
Part 2: C#--Jim Warren
這老師是CS345教UI(user interface) html, css的, 教得可水了, 一節課教兩個topic, 基本都是按slides上的講課, 還是用angela的slides,我覺得他可能自己也不太懂C#, 畢竟他是UI的老師, 只會寫report, 只會html, css給我的感覺, 然後他出的C#也很簡單, 是tutor出的, 不是他出的, 沒什麼難度, 跟java也差不多, 不過要求做一個database的介面這個有點麻煩, exam出題被坑了, 一開始我以為他會出C#, 把C#弄透后, 你尼瑪出什麼button的題目, 至少有5個問題是問在database的這個button是怎樣design出來, 或者這個button是在什麼位置, 有什麼用...2分一題, 至少出了5題, 10分沒了...說多了都是淚
Part 3: Linq--Radu
Radu也是335的老師, 專門教linq的東東, .net啦, 不過280比起335來說, 感覺要難很多, 因為280這個要連上database, 個人感覺比335還要復雜, 而且很多code, 你沒在linpad里敲代碼, 你是搞不懂的, 所以我個人來說在這一關也給跪了, 不過還好, radu人還是相當的不錯, 很多題目都是在cecil quiz上做過, 所以也不算太痛苦
CS280去年的內容是非常的多, 要真的學好很難, 如果今年還遇上jim, 祝大家好運吧...
评论
大佛沒學過CS345, 我也來補一下345吧
CS345是user interface design, 很簡單的課, 不過遇上坑人的marker, 就變成坑課了, 我掛了, 明明是把老師上的slides上背下來再寫到考試上, 但是marker不喜歡就fail 我了
CS345也是分兩部分, 都是兩個老師啦, Beryl and Jim
Part 1: what is user interface--Jim
其實誰教都無所謂, 反正年年都是這兩老師, 去年part 1是Jim教的
Part 1 就告訴你如果design一個好的介面, 內容很多, 特別要背那個golden rule, 基本就是背啊背, 去年是填空, 不知道從那張slides上抽出一,兩個字, 然後讓你來填空, assignment就是讓你寫一個report, 給你幾個網頁, 然後讓你說出這網頁的design有什麼不好之類的, template都給你了, 你把你的感想象填空一樣填進template就可以了, 總括來說, 就是給你說說design的幾個原則
part 2: implementation: HTML/CSS---Beryl
這老師就是教你如果用html, css來做出比較好的介面, 用色的規則什麼的, 然後group project, 就是讓你跟其他人共同design一個網頁出來, 然後解釋, 不難, 就是很費時間因為必須要畫圖, 最後一個assignment就是用html, css來做一個簡單的網頁, 也隨便你用什麼軟件都行, joomla, dreaweaver, wordpress...等等都可以, 只需告訴marker怎樣運行就可以了,
這一門課也沒什麼好講的了, 就看你有沒有審美觀, 背老師的slides, 還有看marker喜不喜歡你的design, 這門課其實很主觀, 你不知道為什麼你會過, 你也會不知道為什麼你會掛, 不過有一個tutor叫Moiz人很好, 基本叫他remark, 沒什麼大問題的都會有95%以上, 這一門課很多人說背背就能過, 但是我說還要看你能不能遇上一個好的marker, 簡單但是坑
這門課有一點不好就是不會教你javascript, jquery, 所以你想做動態介面還是要自學啊....
评论
比较期待CS369的讲解。。
从网上下了它的课本,就是一统计课来的。。。
评论
牛人啊!顶一个
评论
牛人啊!顶一个
评论
楼主写的太棒了. 我是学ENVIRONMENTAL SCIENCE. 奥大新生. 楼主有认识学生的介绍给我认识. 我在选课方面有问题不清楚. 找不到人请教.
评论
320想学的话,就使劲啃书吧,老师讲完跟没讲一样的,被坑惨了,想学这门课的要有心理准备
评论
刚落地
上论坛给佛踩踩
评论
215 怎么比 210 还简单
评论
大神
评论
215比210简单得太多了
评论
各种cs熟人id
评论
哪位前辈知道compsci的过往试题怎么查吗?
评论
http://librarysearch.auckland.ac ... urse_resources&
Reading&Exam那里
评论
thanx !!!!!!
评论
经常翻出来看看
评论
这么好的贴子没人支持一下。
评论
还适用嘛? 这都多少年了
评论
有些课还是一样的。。可以大概参考下。