cwiki_catalog MSSSUG|香港科技大學內地學生學者聯誼會本科部
Cwiki-课程列表

Cwiki


Course Catalog


返回課程列表

[COMP2012H]虽卷但快乐

课程时间:2020年秋季

授课教授:Desmond (TSOI, Yau Chat)

我觉得教授:老好人了

评分标准:Lab(8x1%) + PA(4x8%) + Project(24%) + Final(36%)

这门课的Grade: Grade神/较好

这门课的Workload: 挺大的

(从大一/前OIer的角度简评一下这门良心H课)


​关于内容:

C++基础+OOP+DS,大纲和2011+2012一致,但是讲得更深也更细。作为不带算法的C++课程,竞赛同学以前学的算法基本不会用到,数据结构也只会学较为基础的一部分,并且需要新学OOP(约占50%)。此外,2012H比2012多出了一个group project,比较淘神费力,而且占分比较大,需要尽早准备。

Desmond讲课的重点一般很明显,即 三语教学 + 编译器演示。前者即遇到ppt上重点概念和notice的时候desmond会用国粤英三语一次说一遍,主要关系到对整堂课的总体理解;后者即desmond会掏出编译器对一些重要tips和编译的细节点进行实例演示,这些细节很可能会在考试中考到。因为是两门课合到一起,内容会比较多,建议每次上课后就马上整理复习,重要点拿小本本记一下,不要拖到考试前,不然容易漏掉很多讲过的细节点。


​关于 Prof & TA:

​Desmond老好人了,上课讲得很细,课后问答很有耐心,邮件秒回,另外还会经常群发邮件解释一些上课没讲到或不够清晰的点,这些邮件一定要看,很可能成为考试考点。两个TA也很负责,虽然TA的workload很大,但问他们问题都是会回复的。

由于课程容量较大会频繁出现Desmond传统Additional Class,在空虚乏味的周末,或许能添上一些乐趣哟~~(手动狗头

(昨天 2020/12/31 22:22,就在大家都在欢庆新年的时候,Desmond发了一封邮件说我们这学期没上完的最后亿点内容已经录成additional class发布了,提醒我们winter break看)

(这就是卷王之王吗?爱了爱了)


​​​关于Workload:

​作为一门写作5分读做8分的课,这门课的workload着实挺大的,主要集中在PA和Project上。

由于没讲算法,PA基本是模拟题,可能会有DFS或简单数据结构,题目冗长,编程细节非常多,对以前学过竞赛的同学可能也会比较麻烦。建议在做PA时练习写代码之前整体把控代码布局和细节,以增加代码的一次正确率,这能显著减少debug量,也对考试中手写代码的正确率很有帮助。

大多数组的Group Project都会涉及到学习Qt基础来做GUI,虽然刚开始学可能有些艰难,但用熟了会发现Qt的确很有用,学会了可能对以后做final year有帮助(?雾)。Group Project可以任意选题目,不过建议选新颖的idea,因为最后presentation会耗大半天,到了下午Desmond和两个TA或多或少都会有些困,让人眼前一亮的idea很可能能取得一个比较好的印象分。


​关于Grade:

Lab(8x1%) + PA(4x8%) + Project(24%) + Final(36%)

我:8+30.8+22.86+85x36%=92.26 -> A+

Mean: 7.8+29.1+21.8+65.7x36%=82.352 -> ?

按照传统,H课A range还是比较大的 

本学期因为某些原因没有Midterm

Final High 91.5,有两位上90分,顺便膜拜一下这两位大佬 orz

查看更多/評論

[COMP2012]背背背

課程時間:2020年spring季
授課教授:只看了desmond的视频
我覺得教授:
評分標準:
這門課的Grade:Grade神/較好


写给后来人:

enroll进2012之后,第一件要做的事就是去找Desmond堂的视频

原因不多说了,要恰饭的

龟给的感觉ok 据说给了25% a range

会背notes->好龟

——————————我是华丽的分割线——————————

想了想还是决定认真写一下这篇cwiki,毕竟是各位cs同学的必经之路(dalao请移步2012h为为小白们提供良好的竞争环境)

课程名为oop&数据结构,但实际上重心绝大部分都在oop的想法,以及c++这门语言上包含的各种奇奇怪怪的点。数据结构的要求也就是会implement即可,不会深入教学。知识上来讲相信对于高考过的各位而言没有什么难度,跟着Desmond的视频可以打下扎实的基础。

感觉这门课上最重要的一点就是pa,感觉这门课最大的workload&大部分收获都来自pa。这学期非常迷惑,pa的难度:pa1>pa2>>pa3。最大的感触就是,上课对于写pa的帮助不大。pa1认真上课,濒死。pa2 pa3翘课,依然濒死。大概cs这门学科的特色就是实践中出真知吧TAT

对于数据结构&算法初步,加上3711一起上会是很好的一个补充。个人感觉写代码的时候,内心深处的复杂度直觉还是很重要的。当然,为了好龟的话完全可以水水就过去。(ps. Berkeley的oop&数据结构课是2012全部加上三分之一3711。 pps.据今年spring 3711的同学们说3711给龟体验很差,反手黑一波)

至于final,该考的点都在notes&pa里出现过。这个sem没有像往年一样考很奇怪的选择/pf题,感觉是个好的开端。(前几个sem那么sb的考点纯为了恶心人) 以及这sem是canvas敲code,没有纸笔手写,但大概率往后还是要手写的,书写量很大,一般不会有时间检查。建议final考前多用纸笔写写code,保证正确率。以及....千万记得写include!!!namespace std!!!不写真的会扣分的 TAT

认真理解notes认真写pa,最后龟不会差的


查看更多/評論

[COMP2012]再见您

提前声明,本篇个人主观看法严重,建议慎读。Brian如果闲得看到了,也无所谓,反正以后见不到您,我xxx。

課程時間:2020年S季

授課教授:Brian

我覺得教授:我不喜欢,恕我直言,真的是想方设法恶心人

評分標準:polling(attendance) 10% + assignment 35% (10%+12%+13%) + lab 10% + quiz 8% + final 37%

這門課的Grade:应该是给到了普堂A range的上限25%,但我觉得这课就是垃圾烂龟课

首先,一直觉得CSE对COMP2011+COMP2012分两学期上的设定极其傻逼,中间隔一个假期没什么人还记得在lecture notes里linked-list最后一个node的next一定要指向nullptr吧,请各位能去上COMP2012H的一定要去上,5分买不了烂龟买不了整学期的火气,只会收获一个充实的Fall sem。

其次,让我们聊聊Brian。个人严重怀疑这sem的COMP1021/1022P/1022P/2011/2012/3021这几门课里只有COMP2012有polling这一评龟标准的原因仅是Brian担心他自己的online lecture无人加入,全去Desmond的堂听课了。好的,您说您已经加入了这一评分标准,您就像ELEC1100 Spring的pop-up quiz那样也行啊(记所有题目的best 70%),而不是记每节lecture的best 70%。好的,您这么搞也行,要么是考一些还没cover的内容,要么是出个全session只有17%正确率的polling question是几个意思啊?还张口就说“I did not mean to be tricky. I think it is very easy.",成,是我不配学CS,我这就自我反省,认真思考为什么这么简单的题我只能靠蒙。然后就是quiz,恕我直言,我真没觉得考大家知不知"在lecture notes里linked-list最后一个node的next一定要指向nullptr"有多高明。quiz里还一堆typo,恰巧canvas给我随机的第一道题就是有typo的题,开场心态爆炸,我dllm。然后再说神作final,avl我自己看错数字我活该,但long question考试是上下翻来翻去真是恶心,以及时刻提防"tab+space=submit=GG"。然后,我说您Brian出题是搞笑吧,考完去扫了一眼past paper,您怎么也玩原题大战?是,是我不配,是我没复习,但考原题真的恶心,鞭尸COMP2711H和ELEC1100。结果就是,COMP2012的final硬生生考出了COMP2011 Midterm的curve,同sem的COMP2011考出了COMP2012该有的curve。

最后,做个结论,COMP2011+COMP2012个人认为着实容易烂龟,同时觉得区分度并不是很合理,体验必然是远远不及COMP2012H。

不论如何,我大概是能做个反面教材以警示后人,这课是得学的。


查看更多/評論

[COMP2012H]Desmond人真的很好

课程时间: 2019年秋季

授课教授:Desmond Yau Chat TSOI

我觉得教授:那不是一般的nice啊

评分标准:由于这一年有特殊事情发生,不具太大参考性

这门课的Grade: Grade神/较好



① 课程内容:C++ Basic & OOP

    用自己的话说叫 Accelerated C++ Programming,C++的入门到熟练。前半部分在讲C++的基础,后半部分讲OOP

    Program Assignment 按部就班问题不会太大, Group Project 选题比较难搞(实话实说Project我得感谢有一个好队友Carry),期中期末手速+别错



② Prof & TA

    Desmond出了名的好人[爱你]。 特别耐心,讲课有趣,三语教学,邮件秒回。 TA也是很负责的,但感觉做这门课的TA真的很累



③ (CS-major) 2011/2012 OR 2012h

    都行,看个人选择。 选2011/2012不会少学到什么重要的,选2012h也没什么极其tricky的所以不用太怕信竞同学, 非CS类专业感觉没很大必要上2012h。


    -2011/2012  分摊到两个sem会轻松很多。大一下上完2011之后有很多课都可以在大二上开始了,时间上比较划算。但是大佬云集且课程总体难度不那么高,所以容错率低,搞不好就翻车了。

    -2012h      容错率相对较高,学习速度更快,group project 感觉会有更强的实用性。但是如果C++没什么基础的话workload可能会有点大(写作5分读做8分)。


    --分享一个有趣的操作:我是在大一下旁听完了COMP2012(没上LAB没做作业没考试wwwww),另外大一一整年我在Robomaster学习啊给大佬帮忙啊之类的,相当于也顺便对C/C++做了一个入门+巩固。所以COMP2012h前期基本没耗费太多精力[嘻嘻]


查看更多/評論

[COMP2012]崩一点基本上就难救过来了

课程时间:2019年Fall季

授课教授:吹爆Desmond

我觉得教授:萌萌哒的好人

评分标准:assignment 1 9% + assignment 2 12% + assignment 3 15% + assignment 4 24%+midterm 25% + lab 15%

这门课的grade:区分度小,一着不慎满盘皆输

感觉2012对比2011要好很多,比2011细碎的c++知识点要讨喜很多,主要内容包括constructor,generic,standard template library,inheritance,AVL tree这些内容,Desmond讲的很细,也会把重要的点去强调很多次;对本人这个2011没学好也没什么编程经验的副业cs人员来说还是挺友善的;据传隔壁的quanlong并不会c++导致每次Desmond堂总是人满为患23333,而且直到最后一节课人也没有见任何少的迹象。

workload:平时不算很大吧,一个偏难的assignment集中写大概是写bug+debug大概3-5天的样子,其余时间跟着Desmond的节奏走还是比较轻松的,lab一个大概20-40min就能写完。

考试:因为上学期的傻屌情况本来两个考试现在只剩下了一个midterm,于是midterm几乎变成了唯一一个大家有不小分差的组成部分,mean60出头,sd19.5,大概上80的人数在30人以内,考试的形式每年几乎都差不多,脑跑代码加上几个自己写class和template的大题,请一定注意提升做题速度...midterm是真的写不完,如果在规定时间内疯写完了大概率能比逐字逐句的斟酌高尚不少。

assignment:难度近似是递增,比较恶心的是后面似乎因为TA和prof沟通出了问题,有一些prof并未提及的点和语法ta在出assignment的时候也用了,可能在后期需要面向CSDN和GitHub编程去学习解决。总体来说assignment难度不大,有卡住的地方可以通过比较简单的尝试和讨论写出来。

龟:由于只有mid,assignment拉不开差距,subgrade的interval变得尤其小,从吹水了解到A-到A的internal可能只有0.7,只能说是注意c++那些很细碎的点才有可能拿好龟。


查看更多/評論

[COMP2012]OOP & 论如何花式飙车

課程時間:2019年F季
授課教授:QUAN Long
我覺得教授:全学期就见过两次,第一次是第一节课,第二次是第二节课
評分標準:programming assignment 25% +  lab 10% + midterm 25% + final 40%
這門課的Grade:Grade神/較好/一般/爛grade/Killer  


(这学期因为某些原因这个grading scheme改了,期末没了,加了一个PA4爆炸难)


其实本来enroll的是Quan Long的堂的,但是既然不计attendance嘛……那翘课也无法避免咯orz

然后搞到了Desmond的Lecture Video的link 爷笑了hhhhhh Desmond还是爱我的 (一边听desmond讲一边看Quan Long高大上的笔记然后一边恰肥宅快乐事

期中之前:这COMP1字头难度吧哈哈哈哈学过一遍再学有什么难的

期中之后:Desmond爸爸我再也不随便enroll课了放过爷吧爷这就爬

真-当代带学生悔过实录

说到底爷还是条懒狗


查看更多/評論

[COMP2012]想体验完整版desmond,请报2012H

課程時間:2019S
授課教授:Desmond
我覺得教授:蛮可爱的
評分標準:assignment (6% + 9% + 9%)+ lab 10% + midterm 25% + final 36% + quiz 5%
這門課的Grade:較好

虽然desmond讲得好又可爱,但在COMP2012的糟糕设计下,似乎desmond也没什么发挥的空间。

平时lecture:不同于一般学校的课程设计,我校将OOP与数据结构合并为了一节课,也就是COMP2012.这就导致这门课既不能很好地展开面向对象的编程设计思路,也不能将数据结构背后的算法分析解释明白。而且这门课名为数据结构却直接略过了图和相关算法,可能是想留到COMP3711再讲?如果真是这样,我可能会在下学期再diss一遍3711的课程设计(手动微笑)。尽管如此,desmond还是在努力把所有知识点解释明白,于是desmond这学期给L2和L3的同学们加了三节additional class,赠送课时数高达9小时,属实带善人。不过说回来,desmond讲课还是很好的,清楚明白,生动形象,而且很少会犯错,远强于隔壁身为honor课的MATH1024.

workload:每周一个lab其实workload并不大,一般来讲一个小时以内就可以解决,不过三个assignment着实有点费神,尤其是后两个考察泛型和数据结构的作业,需要花不少时间来确保自己的程序里没有bug,然而我因为盲目相信skeleton里给的测试程序而跳过了这一工序,直接导致PA3错了7个test case,期末复习压力陡增……所以这门课的workload还是有点大的,写程序不出bug一遍过的某些大佬除外(手动微笑)。

给龟:其实还是相对可以的,我感觉我的overall应该在top 5%-10%,然而还是能喜提A+,说明A+率可能给到了10%,远远胜过隔壁身为honor课的MATH1024(继续手动微笑)。至于A range……不太清楚就不多说了。建议各位听说desmond给龟好而想报这门课的同学慎重,因为comp2012的老大并不是desmond,而是brian,因此desmond本人对整体给龟影响并没有那么大(这课给龟真的很tm铁面无私)。

最后,强烈建议大家报名COMP2012H,虽然workload更大但是可以体验到火力全开的Desmond,并且desmond亲自负责的话给龟也会远好于COMP2012。


查看更多/評論

[COMP2012]comp课向来神龟

讲的内容和data stucture 没关系。主要是C++。

但这门课是神龟课(或许comp都好龟?)

期中前25%烂掉了,期末90+,最后都能得a+,只能说comp 好龟课太多了,相比于某些math(费了老大劲才一个A)真的是很良心了。

查看更多/評論

[COMP2012H]人好龟好workload大

課程時間:2018年秋季
授課教授:Desmond (TSOI, Yau Chat)
我覺得教授:很nice
評分標準:attendance 0% + assignment 28% + project 12% + lab 10% + midterm 20% + final 30%
這門課的Grade:Grade神


Desmond大好人,讲课逻辑相当清晰,重点部分还会三语重复,也相当考虑学生,会在assignment任务较重的时候取消lab或者延长ddl。

觉得学好这门课的重点就是及时复习,因为一节lecture的内容真的很多很多,不及时复习的话期末会很痛苦。(这是啥?为什么会这样哇?辣鸡C++!)

好在Desmond每节lecture都会录像上传,期末可以用这个复习,平时只看录像(甚至也不看)不去上课也没什么问题。

个人觉得Assignment workload较大,但是各种bonus加上还是很容易拿满分的。

Final让我成功找回考理综3h连续抽筋手的感觉,除了一些很tricky的题外难度不大,就是挺多的。准备一块好用的橡皮挺重要的。

龟的话Desmond说是50% A range,没有C和D。不过毕竟人少A+应该也就10个左右,认真对待的话A及A以上还是不难的。

如果是在大一上这种其他课workload小的sem上就会比较舒适。就是要注意final的时候要不要把JAVA和C++弄混了。

笔者waiver的时候是被考了几道小题目,if-else嵌套,switch不写break之类的,一些JAVA和C++通用的tricky的语法。

总之是Desmond教的话很推荐。  

查看更多/評論

[COMP2012H]好玩又好grade,就是不簡單

課程時間:2018年F季
授課教授:Desmond
我覺得教授:很好
評分標準:assignment 28% + project 12% + lab 10% + midterm 20% + final 30%
這門課的Grade:Grade神/較好

我覺得這門課:

1. workload, 我覺得其實還行? 

PA1: 寫個數獨游戲,不是很難. 

PA2: 用linked list實現一個數據庫. 内存泄漏讓我放棄掙扎. 個人覺得最難的一個

PA3: 用Qt寫一個接水管的游戲,如果之前沒用過Qt,學起來稍微有點麻煩.

PA4: 用Qt寫一個國際象棋游戲.class有點多,要考慮到各個class之間的關係(我把skeleton code魔改成了自己喜歡的格式)

project: 今年project似乎大家基本上都是選擇的做游戲?這個project是完全由自己設計,個人感覺因爲游戲比較直觀,所以大家都選擇?workload因人而異,完全看你選擇做什麽類型的.(我討厭多綫程)

​2. 難度,我覺得不難. 内容大概就是2011+2012, 感覺上沒有什麽太advanced的地方.但根據Desmond的一貫特點,有非常多很細節的點,考試的時候要考(我涼了).還有,曾經和人討論過一邊學這個,一邊看c++ primer, 我覺得是沒太大必要啦.因爲c++ primer我都是當個參考書,作爲教材來説太厚了(墊桌子正合適,和物理教材凑個對).

3. 考試:midterm和final考了很多很具體的點,考了很多細節. 擧個例子, final在考constructor的時候,考慮了constructor的parameter list的調用順序是從右到左.据TA所説,60多個人就5個人考慮到了...

4. 成績: Desmond真是好人啊. 比Java的成績不知道好到哪裏去了. 

綜上, 强力推薦


查看更多/評論

[COMP2012]龟神个毛线

課程時間:2017年S季
授課教授: Desmond!!!
我覺得教授超级好

這門課的Grade:其实性价比不高
我不是针对哪个COMP课的post,我是指,在座所有声称“龟神”的post,都有诈骗的嫌疑

我覺得這門課啊,excited!
每个学期的syllbus都不一样,经常是需要final和midterm past paper的题目混着做
但是主要的核心还是在class,template和AVL&BST上

吸取上个sem上COMP2011的教训,我在这门课上投入了较多的精力,不但把翘课的数量降到了总量的40%,还把lab的国产率升到了50%,还是比COMP2011的学习效果强了好多的。

回想起来,2012相比2011更多的强调理解,而非coding的details,尤其是在AVL&BST,简直就是山路十八弯,STL那里也有很多难以理解的地方,要多看多问(找大腿)

另外就是这门课期中考得范围小,期中后又开车开到飞起,速度巨快,assignment3 甚至要提前自学一些东西才能完成(到assignment3 ddl的那一天,他才把所需的内容讲完),如果不想通宵爆肝的话,还是建议大家从期中之后就在COMP2012上多花一些时间吧,别把东西放得太靠后。其实我也一直怀疑这门课的schedule到底特么有没有设计好,尼玛在study break前补了三次课,一次两个小时。

剩下的其实也没啥好说的了,就是虽然一起拉curve,但能swap到Desmond的堂的就swap,不但课讲得好,还会经常makeup课,自己做一些辅助性的材料给我们看,说道重点的时候还会用普通话和广东话重复一遍,总之非常尽责。

CS课的话,其实curve和其他课差不多,就是大佬太多了,我要是最后能有A range也就很知足了。
 

查看更多/評論

[COMP2012]Object-Oriented Programming and Data Structures

課程時間:2016年Fall季
授課教授:Desmond Tsoi
這門課的Grade:一般般

我覺得教授: Desmond 是个好老师,best instructor ever!

这门课是Comp2011的延续,前半学期很多内容和2011重合,但是讲的比2011更深入、细致一些。这课难度没有想象中那么大,lab和三个大assignment写的程序都不算太复杂,skeleton code也给的挺详尽的,主要是训练学生如何完成一些大的program成为一名习惯良好的程序猿。不过作为学渣真的是不能相信cwiki上comp课的评价,oop的难度还是在那里的,workload不小,一个sem下来这门课投入的时间最多(当然还是烂龟了hhh)

我主要是来推荐instructor的,desmond真的是我见过的最好的cs老师,人特别nice很有耐心。教授上课很注重syntax细节, 重点的地方会重复两三遍,所以上课完全可以理解;课堂上很鼓励学生发言,每堂课都会脑洞大开测试各种syntax error;他自己还会抽休息时间给学生补课pointer/reference之类的,所有lecture都有录video,office hour之内之外都可以去找他,特别supportive &  reachable。大家也知道,在这种初阶编程课上,出bug的很多时候不是logic structure而是syntax,所以desmond的讲课方法我觉得还是挺科学的。

不知道是不是受instructor影响,这堂课的TA也是普遍非常helpful水平很高,会给一些指导,上lab的时候比2011好多了】

总之,作为一个cs方面的学渣强力推荐初阶选手选desmond堂,在严酷的cs世界里感受一下春天般的温暖 【至于大神们,大概会觉得这课特无聊吧TT】

查看更多/評論

[COMP2012]quan老板是个好人,可是上课太水了

課程時間:2016年秋季

授課教授:quan long

我覺得教授
人挺好但是上课有点水

這門課的Grade:Grade神

我覺得這門課
大四狗上了一个2012,原本以为会workload巨大,结果发现水的一比。。。不推荐cs major的同学上2012,至少不要上quan老板的。
总共三个assignment一个比一个水,第一个写完之后还要debug,最后一个大概1个多小时就能写完,完全没有代码量。
总共11个lab,难的大概半个小时,简单的十分钟吧。
midterm和final都不是特别难,不过有些坑。然后中间改过两次grading scheme。
midterm之前基本上在重复2011讲过的东西,midterm之后主要讲了template和polymorphism,感觉就是c++语言也没讲特别深,oop也没讲特别深。

查看更多/評論

[COMP2012]怎么和以前不一样了

課程時間:2015年Fall季

授課教授:QUAN Long

我覺得教授 发型不错


這門課的Grade:Grade神

我覺得這門課
期中考试前我认真拜读了众大神的cwiki,然后又翻了翻past paper,感觉就是考几个小程序水水就过去了,结果
这都是些什么东西啊!这些细节从来没想过啊!不会做啊啊啊!!!
然后就跪了╮(╯▽╰)╭
不过说到底还是自己的原因,不上课怪谁呢,考试内容在讲义上都有的,同学们一定要好好看讲义啊
做PA1时,我用VS编了一段码就交上去了,没有用g++试过,因为他说:

Feel free to use your own computer/IDE to complete this assignment.

结果grade出来以后
这分怎么扣的(⊙?⊙)怒appeal,TA说:你的码有编译错误(我用了VC的extension)
我:可是你说了自己的IDE随便用啊
TA:哎呀虽然在VS上可以但是在g++上不行,说明你的码不标准嘛
然后15分就这么没了╮(╯▽╰)╭
大家以后一定要在g++上验证啊,不要再迷信微软大法好了
期末考试前好好复习,怒回一血,最后总分92点多还有A+,这个龟应该是很好的
个人感觉COMP2012和COMP3711/H是绝配有没有!学了3711以后课上的什么sorting, heap简直就是图样图森破嘛
上课讲的东西和讲义差不多,但是为了教授帅帅的发型还是值得去的

查看更多/評論

[COMP2012]期中之前神游

課程時間:2015年fall季
授課教授:QUAN, Long
我覺得教授
這門課的Grade:Grade神

教授:应该挺热心的,大陆口音纯正,只是让人有些想睡觉

内容:COMP2011的后续,感觉像是为了与COMP2012H拉上进度所以期中之前一直在炒冷饭,外加上教授的催眠曲,群众热情很容易就下来了;期中之后会多些新的知识

比重:10%lab + 30%ass + 25%mid + 35% final 注意作业占极大比例!!!而且每次均分只有六七十,所以花在作业上的时间比花在mid上多会好点(姚明脸);final会考到基本所有知识点,所以一定要把notes过一遍(例如hash、heapsort的具体方法);notes里还有些写出来的小知识点也会很有用

给龟:只要上面三项都比mean高一个sd就能有A;即使有一项炸了也会有A-,所以感觉给龟应该挺好的

查看更多/評論

[COMP2012H]资辞,还算比较良心的课

課程時間:2015年秋季

授課教授:Gary Chan

我覺得教授
吼啊,平易近人,和蔼可亲 (我没找过教授谈话,只是感觉),实力没的说,自己搜他的主页看一下

這門課的Grade:H课应该比较好,其他教授不好说,不过Gary应该不会难为你的
我覺得這門課:

1. Workload大小完全取决于个人基础。如果你只有comp102X的基础的话,学起来自然是要比搞过OI的累很多,不肯花大量时间的话被虐是肯定的,这种情况下建议和comp3711(h)一起上,内容重合度比较多。

2. 课程内容设置还不错,lecture+lab+PA+notes足够帮助快速理解了。 一些很繁琐的东西,语言啊概念啊之类的完全就是看一看notes,练一练就能搞定的,多写写代码总是好的。Gary第一节课说过这学期的12H是11+12而并不是难度升级版,所以别再指望之前CK的12H重出江湖。ps,有人透露11和12比较坑,我没有去考证过,我觉得因人而异吧。

3. Gary的考试有一点好,不会考什么记忆的东西,他喜欢考一些“你不会就说难,你会了就会说水”的题,不知道这样说恰不恰当 (也可能是学CS的人普遍喜欢在学会了xxx之后说xxx很水 233333,这会不会给人一种内定钦点的感觉 0..0,将来报道上出了偏差是要负责任的!)。不过期中之前会写各种递归一定没问题,期末的话我觉得知道概念会用代码表达自己的思路就ok。

4. 作为(唯一)一个大三的学渣,我表示压力很大。大二的孩子们好厉害啊,巨神比我这一届要多。大陆生,local,歪果仁里面都有几个excellent people,我是佩服的。Gary会每次把好的作业上传到网页上让大家膜一发0..0然后学习一个。不过某巨神因为涉嫌暴力膜被TA和谐了作业,看不到他的代码很遗憾TAT。不过能和众多巨(ha)神(si)同堂真的是excited的经历,这应该是11和12很难体会到的。


查看更多/評論

[COMP2012H] 论科大越来越水的COMP Honors课

課程時間:2015年Fall季


授課教授:Gary


我覺得教授
很有亲和力


這門課的Grade:Grade神



这门课的内容:水的一逼,话说看原来前辈们的cwiki,觉得CK的2012H真的很有意思,有Challenge,但是Gary的真的就是2011+2012而已!而且还因为时间关系nerf了好多内容。



评分:有几个Programming Assignment(OOP之类),有一个Written Assignment(一些基础比如Hash,Binary Tree),lab,midterm,final。话说在允许的条件下,PA做得越晚越好,因为后面TA会各种Clarify,让你的同堂去当小白鼠吧(话说我觉得自己当了一学期小白鼠)。WA很简单啦,没什么好说的。



给龟:话说以后来上这课,如果是Gary的,直接选就好了,据说考到mean就有A。



忍不住想吐槽一下,到科大一年半,觉得自己的CS基本没有学到什么新东西,COMP honors真心水,2012H啊,3711H啊,都直接去上就好了。

查看更多/評論

[COMP2012]C++

课程时间:2014年Fall季
授课教授:QUAN Long
这门课的Grade:Grade神/较好

计算机专业的同学想学点东西还是去上COMP2012H吧。COMP2011和COMP2012其实没什么内容,COMP2011学C++基础,COMP2012学用C++写OOP。上课认真听一下,没事时弄本C++ Primer第四版自学(第五版是基于C++11标准的,虽然C++11标准很好用但是COMP2011好像只认C++03,COMP2012才允许用C++11),2011和2012拿A range毫无压力。另外COMP2012的排序、树、哈希部分的内容和COMP3711是重叠的,认真背背就好。

2011和2012大家一定要积极appeal,无论是assignment还是exam。appeal回来分数还是很容易的。TA改卷的时候好像只会看你的回答里有没他期望的代码,你用别的思路回答的话TA不愿意认真想就把你的代码当成错的了,midterm时我appeal回来了8分。另外exam时代码写得越容易明白越好,最好不要写*pointer++这种多个操作合在一起的代码,搞不好TA因为这行代码操作太多,改后面的代码时忘了你做过一个操作就改错了。

assignment出来之后不要急着做,TA的typo或者skeleton code的修改可以轻松的让你的代码白写,但也不要快到deadline了才写,有些时候assignment的代码量还是不小的,而且想test case和调试代码非常花时间。COMP2011的test case比较喜欢用特殊情况,一定要做好对空指针的处理之类的。COMP2012的test case就比较正常。另外考试时最好问一下要不要处理特殊情况。midterm时考BigInt类,我写BigInt类的比较等操作时把leading 0考虑了进去,看到答案时才知道原来leading 0的情况是可以无视的,白写了一堆代码。

编译器的话建议使用g++,在写类模板的时候g++的warning真的挺实用的。交assignment之前最好还是把代码传到linux lab那试一下编译能不能通过,免得发生Windows下能通过编译到了Linux不能的悲剧。

我个人觉得COMP2011和COMP2012其实挺水的,有些时候上课甚至不如看C++ primer自学。平时遇到模棱两可的问题时多去翻翻C++标准,多注意一下细节,其实拿A+并不难。

查看更多/評論

[COMP2012]磨人的小妖精

课程时间:2014年秋季
授课教授:Quan Long
我觉得教授

这门课的Grade:Grade神/较好

我觉得这门课
先说龟,
我觉得我期末真的考的很好的, 至少我考完觉得自己能拿100, 结果分数出来只有80/微笑, 不过也快高mean一个sd, 还不错
期中考的不太好, 不过分布和期末差不多, 高了mean不大一个sd


内容都在大林耿那一篇中提到了, 我就不再叙述了.
Assignment好好做, 多多找大神要几个test case,
我三个assignment是95, 87.5, 90


上课认真听讲, 出题不算难, 都是幻灯片上有的.


能H就去H吧, 累是累点我觉得学到的应该还是比2012+2011要多的

查看更多/評論

[COMP2012]C++入门


课程时间:2014年秋季
授课教授:QUAN Long
我觉得教授:挺好,除了不懂C++……


这门课的Grade:Grade神


**给cwiki撰写者们的建议:先在本地写好保存好,然后再到撰写页面粘贴,以避免由于网络问题或者马杀鸡IT秘书问题造成全部白写。详情请见谭神的COMP5711条目**


开始之前我想告诉各位还没上COMP2011的同学:这课太无聊了!上2011+2012不如去上2012H!有趣还多个Honors多好啊!


作为COMP2011的继承,这课基本上就是教你怎么用C++写OOP。课程内容如白开水,如果你有读C++ Primer 的话那么恭喜你,这门课的Lecture(除了前几节和最后几节)你都不用去了……为啥要去这几节我后面会说。


具体来说这门课讲得就是几个排序方法、几个数据结构、C++ STL使用、Class和模板入门。STL没讲map,差评。


教授的优点就是讲课语调很搞笑(it's an array→y→y↘),得闲的话不妨一去。经常发问,我们坐在第一排为了不让他冷场也是蛮拼的。QUAN Long 唯一的问题就是不懂C++(他说自己don't know the details,我觉得吧,呵呵),所以Notes上的code有各种小错误。说起来Notes还是COMP152年代的……估计从来没修改过(/_\)。考完Mid之后他出现在教室,直接普通话问我“怎么样?难不难?”(/_\)


这回遇到的TA比2011的时候靠谱很多,能回答各种细节问题,也没出什么大岔子,就是PA3的要求各种typo(都是复制粘贴的错)。


说说考试。2012的考试比2011好很多,~几乎~没考C++细节了,认真点就妥妥的。Mid和Final的主要考题都是实现给定类的若干函数。要说坑的话,Midterm的时候竟然考了请写出各个排序方式的中间步骤(past paper没有),坑了一片人。事后问TA,曰:Prof. QUAN thinks that sorting is important…… Final除了写得手抽筋之外也不难,就是最后2.5分有一点坑,然后我脑子一抽第二题的的Heap造错了,蛤蛤。


另外,如果你同时上了3711/H,那么这门课开头(排序)和结尾(哈希)会和3711/H重叠。这个考试会考哦,好好听好好背……


最后上图,考Final到最后几题时我大概是这样的:


查看更多/評論

[COMP2012H]新世界的大门

课程时间:2014年秋季
授课教授: Dekai, Wu
我觉得教授 不是太靠谱

这门课的Grade:据说是Grade神

首先自我介绍下. 我是来自THU的交换生...我猜我是上这门课的唯一一个 exchange student 了吧...
虽然我猜不会有后来的交换生会选这门课&&在选课之前会来 CWIKI 上来看课程评价&&prof 仍然是 dekai, 但是还是想说,一定要在课上认识一些同学来交流作业的问题... 原因就是 dekai 的文档总是模糊不清,某些要求会改来改去,导致你看来看去无法下手,改来改去欲仙欲死...


上面那篇把课程的细节说的很清楚了(而且 code 量和我也是几乎一样),而且按 dekai 的套路,如果他接着教下去也不会有什么改动.
所以我就说说感想好了.


这门课给我的感觉完全不同于我在 THU 所上的 CS 课的风格(虽然我不是 CS 的人).感觉课程设置比较先进,而且 dekai 英语真是不错.当时真是脑抽,不谈了.


Assignment 设计的不错,比清华的作业的质量高很多(大多数课).每一步也是有教你如何把所学的东西用到自己的设计当中.另外一个突出的特点是,每个人的设计都会不一样, 这会让你绞尽脑汁地去设计好自己的 code.


你每次提交所写的程序都像是真正的产品的 release, 而不是 OJ 上跑完数据就 AC, 你永远不知道什么样的样例会让你的 code 跪掉, 也不知道你所写的程序的水平(尤其是 dekai 还说要给最先交final version的人加分,不知道最后执行了没有). 所以每次提交程序的时候都巨担心. 我建议选课的大家 share 自己写的 test case. 由于我是 exchange 所以很惨,很少有人可以和我讨论这方面的问题...


还有就是对于 dekai 对于 encapsulation 的执着了...自己写的头文件,不可以看的parse.cpp,还有自己写的 bstmap 和 hashmap... 自己写 STL 真的是学到了很多东西,我觉得 code 量最大的那几天就是写这两个 map (说好的不用写 bstmap 的呢...),对于 template 的理解提高了很多.


课程的进度实际上很慢,上课两个小时我觉得一个小时就可以说完,比较拖沓.
但是 dekai 实际上想教的东西巨多,各种夹带私货, scheme, emacs...这导致每一个方面学的都不太深入,但是每一个都像是无底洞,如果想弄的比较清楚,实在是很痛苦的一件事.不过在这个过程当中,你会学到很多东西.


总而言之,这门课几乎没有上限,如果你想学到更多的东西,这门课就像一个入口,你可以从这里开始学写编译器,自己搭建自己的 emacs,学用Unix-like OS, 等等等等.


说下 grade 吧. papercheck 的时候似乎从 Karteek 那里看到总分50+的同学 Karteek 的建议 grade 是 B+, 所以好好学加上有大腿可抱的话,拿 A 应该不是很难. 顺便膜总分96+的大神...不知道是哪位...不知道是不是最高分...


最后在这里感谢一起上课的小伙伴们,你们都很 impressive, 从你们身上学到了很多. 希望以后有机会再见 :-)

Other tips:
1. 如果你想学好这门课, 可以先看一看 SICP,可以 cover 掉 dekai 关于 scheme 的所有解释,而且很多他没解释的东西也可以从这里参考. 我就是使用了一个错误的设计导致无法做出 list-sort ,但此时已是期末,再想改也是有心无力了.简而言之看看此书就可以做 TA 了,哈哈.
2.  Midterm 和 Final 都考了 constructor 和 destructor 的执行顺序,尤其是 member initialization list 中的执行顺序,期末直接跪在这里...
3. 其实我上了一段时间的课有打算去 dekai 的科研组,但是 google 一下会发现很那啥的东西,直接把我吓退... 后来去找 Karteek 聊天,感觉...不说了,免得被查水表.希望有高人可以说说看真实情况...



查看更多/評論

[COMP2012H]小伙子,愿圣光指引你的道路

课程时间:2014年Fall季
授课教授:Wu,Dekai
我觉得教授:不知道该怎么评价

这门课的Grade:dekai自己说是龟神,不知道事实如何。


等了那么久没有等到大神们来发表一下评论,权且抛砖引玉一下好了。
传说中的2012H到了我这一年就变成了dekai来教 = = 

Your grade will be determined by a combination of factors:
Midterm exam  ~20%
Final exam  ~25%
Participation  ~5%
Homework  ~40%
Labs  ~10%

可是lab的时候根本没有做什么啊 = = 不知道这一项到最后会怎么算分。
Participation那一项估计除了孙神@sys这种被dekai看上的,其他的人应该也差不多。


Midterm就是各种写C++程序,虽然我跪了但是真真心不难,没有奇奇怪怪的命名,没有奇奇怪怪的写程序时候根本不会用到的方法,没有奇奇怪怪的概念选择题。我水平不够,不好评价这样的出题方式好不好,但是起码这样让我舒服一点,没有小伙伴问我2011题时候的那种蛋痛的感觉。

Final也主要都是在写code,槽点很多,首先就是课程后半段的数据结构那里并没有怎么考,其次就是scheme的量占得略多。这么说好了,final有20分是给你scheme语句让你输出结果,这些scheme语句都是自己assignment里面做出来的。还有20分是拿scheme写一个merge-sort出来,一共三问一步一步引导着你做。
Final的mean是72,sd是24这样 = =,midterm的统计数据没有问到。
 
着重说下Assignment,字面上来说一个用9个assignment(其中2个optional),先结论一句,这个课的coding量比起CK版2012H就是很少(虽然比起其他课还是很可怕),assignment看似数量多但是单个assignment根本没有那么大的工程量。
 
A0是自己实现一个链表。当时刚学C++什么都不会,然后就做的十分困扰,加上dekai说不仅看输出结果还要看code还要看注释,当时简直就是改了好几天代码的可读性和注释的简洁易懂。
A1是用staticOO的思想写一个s-expression的解释器,基本就是+-*/那些东西。初次接触这种东西当时写起来真是力不从心,经常是在lab憋了半天觉得写不出来然后就去写数学了==。
A2就用了dynamicOO,虚函数,继承那一套东西重写一遍,然后多实现几个操作符。这个assignment是我花时间最多的一个assignment,当时对继承机制的不了解导致花了许多无用功,也一度很沮丧。【一位跟我十分要好的朋友告诉我说,这个东西不像你做数学题,能不断地做出来,写这些东西就是要有很多无用功的啊。】在这里发出来共勉。
A3加了异常处理类的使用和用stlmap来存储变量。异常处理这种东西。。就是写了一遍再写的时候就简单了,于是我第一次写的时候就写了high长的时间。
A4开始做procedure和lambda,dekai推广scheme的野心终于暴露出来= =
A5是自己写一个基于二叉搜索树的map。(这是optional的)
A6是自己写一个基于哈希表的map,写完了上面那个的话这个就很好办了,而且这个的工程量要比上面那个更小一些。
A7是完全用scheme写一个快排出来,好痛苦的经历= =
A8是最后dekai说,“If you are impressed with Scheme, then try to write somescheme to impress us. Then I will give you extra credits.”于是跪掉final的我就苦苦写了一些东西交了上去。后来的感想就是Functional这种东西真的挺神奇的,但我可能是刚刚入门,所以并不是非常的习惯。
 
之前也提过了,这个课虽然今年被提升到了5分,但是根据之前的cwiki描述,workload完全比不上CK版的,到最后的版本我的解释器也只有3500多行,加上那些scheme的code,加上那些用不同的方法实现解释器的code(后来删了的),也顶多到5500。虽然课程中间因为dekai各种要求不明确导致坑来坑去,不过一学期下来,着着实实是学会了一些东西的。包括dekai一再强调的代码可读性,可维护性,这些都给我留下了深刻的印象。刚开学的时候,我的习惯是“不管怎么样先实现了功能再说”,然后就陷入了debug的无尽旅程和总是被孙神骂“你这里太丑了”。然后到课程的最后已经训练出了写code之前慎重思考慎重落键盘的习惯。


关于这个课的workload和难度,确实完全取决于你的program经历,我作为一个初学者,大概14-20h/week吧,周围也是有大神经常是一下午干完一个assignment,(对说的就是你@sys)所以workload这件事也是仅供参考。难度的话确实没有多难,跟math2131比真是不知差到哪里去了==


上这种课嘛,更重要的是旁边的小伙伴,在lab的时候变了一个属性的孙大神@sys,提前别人两个assignment进度的@qy,被TA钦点当这门课TA的@yxy,以及debug时候print出奇奇怪怪东西的@dzh。相比起这门课的notes和上课,这些人教给我的明显更多。
 
打字好累不想打了,总之,dekai确实有很多的不好之处,但是这门课的dekai没有坑到极致。虽然这门课的代码已经没有那么多了,可如果不上这门课,这些代码的量在初级CS课里还有哪门课有呢==。

查看更多/評論

[COMP2012]小心地雷

课程时间:2013年S季
授课教授:Gary Chan
我觉得教授人很好

这门课的Grade:Grade较好/一般
这课我上完之后本来不打算写的,但是忽然想起什么,还是写吧。
Syllabus大家都说的差不多了,我就提一个要点吧。
在科大,每门课第一个lecture都会重复这个要点,估计也没几个人认真听,但我觉得还是很有必要提一下。
Plagiarism Policy:
1st time: all involved get ZERO marks, and will be reported to ARRO
2nd time: need to terminate (Fail grade)
有个同学在OOP的课上,由于忙于庄务,没时间写project,于是到处向同学借,最后一个傻逼借给了他。
结果他照抄了。
或许这个同学改了改variable的名字,换了换顺序什么的。
但是最后借代码给他的同学收到了TA的邮件,因为涉嫌抄袭,project 0分。
在科大,抄与被抄都是一样的待遇。
而且会reported to ARRO
这会进入档案的吧,first honor应该是没有了的。
所以,来上课,就别抄袭。

查看更多/評論

[COMP2012H]记在一门课消逝之后


课程时间:2013年Spring季授课教授:Chi-Keung Tang
Grade:很好

Update: 据CK的消息,2013-2014学年的2012H由dekai教....好自为之好自为之

虽说课程已逝,以后再有的机会怕是很少了,但总归是科大CS系的具有标志性的一门课,还是老老实实地将所见所闻胡乱发泄一通吧。


先说龟,这门课的龟是很好的,虽说之前见到fb上有若干local提出质疑,认为本来就是若干大神凑在一起写code的课,龟自然坏不下去。对于这种说法我需要指正一番。以课上某位童鞋wd为例(顺手一黑,本文将多次以该具有代表性的童鞋为例,请当事人不要往心里去),该童鞋这学期才刚转CS,之前的专业与CS风马牛不相及,可以说是鲜嫩的菜一枚。然而在课程最后,该童鞋获得A的评定。不是我要故意黑,私以为该童鞋在学期甫一开始时没有体现出任何CS天赋,然而学期末获得A的成绩,我认为不是该童鞋隐藏大神属性,也不是CK看在最后一次课手下留情,而是该童鞋发奋努力的结果。因此,认为此课龟好在于课上多大神(虽然我承认课上是有某local大神血虐全场)的谬论可以平息了,龟好龟坏,不在于教授(LANG除外),不在于其他人(HUMA除外),私以为更在于自己。


下面结合wd童鞋的实际进步史谈谈这门课的各项内容
课程评分按照project(50%), lab(5%), midterm(15%), wriiten assignment(5%), final(25%)来给分。课程的难点在于50%的project,常规的project5个,另有一个拉龟用project。


midterm之前主要讲OOP,内容目测与隔壁2012差不多,只是速度快了不少。OOP这边个人感觉工程性较强,思想性偏弱,切入点偏向语言特点而不是思路。感觉是教会你使用OOP,而没有探讨使用OOP的原因。或许是我以前POP写多了,所以会有这样的疑问。但其实OOP是个很自然的想法吧,但是个人觉得了解一下程序设计思路的变迁是一件很有意思的事情。
midterm之后开始涉及Data Structure,同时介绍了一下Algorithm。这些内容还是比较浅显的,算法分析也没有太过深入(留至3711H了),介绍了一些基本的数据结构和算法,对于以前没有接触过CS的童鞋来说确实有入门效果。


CK讲课非常有特点,首先是很快,这个快仅限语速,并不指内容,因为CK讲话喜欢夹杂40%的er....en...
其次是各种兄贵闪瞎氪金狗眼,上学期上了papa的1004已经被各种兄贵闪瞎,这学期又上了ck的课,让我不禁感觉这俩是多么好的基友啊


lab挺简单的,主要是教怎么用qt,一般project1的时候lab就要做到7了,个人觉得那还不如直接batch mode在第三个星期前把所有lab都写掉比较好。


written assignment个人觉得其实可以是加深数据结构和算法理解的大好机会,可惜有些题目实在有点没意义


midterm在前一天会有preview session,今年在良好的组织下当晚把所有答案都弄出来了,所以基本都是满分,除了某童鞋= =。final会提前告诉你每道题的title和分数。CK号称会有道谁都做不出啦跌题,实际上题目都很naive,但结果我看错一道题做败了= =


project可以说是这门课的亮点,code量巨大。而且每个project都可以玩出花巧(当然相应地code量进一步增大)
CK有个非常有意思的late credit系统,每个人五个,所有project一共可以迟交5天。听说以前credit一个值一顿饭,可惜了今年没有交易,就连wd童鞋都没用完,真是呜呼哀哉。
project1是写一个小画家,结构可以写得很简单,但是code量绝对不少,而且是第一次用qt写GUI,可以说是五个常规project压力最大的project。典型的工程性编程任务,很多coding非常机械,但是又非常繁琐。值得一提的是sample有很多很多不合理之处....其实我们是有义务去修的...结果我修了不少,还是遵从了一个sample behaviour结果被TA痛下杀手= =然后requirement里面提到了对QT designer有一些额外的功能要求,虽然我没用designer,但是觉得有几个比较好玩顺手实现了。
project2是俄罗斯方块,这个project雨巷大神只用了一个下午(含休息)就做完了https://www.youtube.com/watch?v=3lYvRE_1GbE...令人发指啊令人发指...我感觉我还要提高一下我的姿势水平。这个project是最regular的,做出来的成品不会有大的区别,但是背后的设计上可以做得很优雅,也可以做得很糟糕(某童鞋在deadline前三天时都还只有一个cpp)。
以上两个project我都在AGM上给写完了,诚如涛爷所说...AGM写code效率果然不一般
project3个人觉得是最精华的一个project,虽然可能很多人都很primitive的就给implement完了,但是不是这样的!让我们仔细阅读一句话
The point is that your program should not crash if this exception occurs.
这是一件很疼的事情,因为你的数据结构是支持Iterator的。所以设想一个Iterator还留在那里,但是你的container已经被destory了,最好情况是dangling pointer,最坏情况就是crash。查阅了STL的我发现STL是直接撒手不管,dangling pointer就dangling pointer呗。但是当时非常蛋碎的我鼓捣了很久很久,弄出了一套绝壁不会crash的设计,即reference count+lazy deletion。写的过程万分痛苦与纠结,还要考虑各路神奇的behaviour,最后写完交上去(这次的sample还是有一个bug),TA倒没认真查我的数据结构,认为我写对了。结果我在project4,project5时重用了这份代码(代码重用是很重要的思路!),到project5才把这两个数据结构改到没bug。
project4很水,真的很水,非常直接的计算几何。开始我以为要自己想算法,结果翻到下面居然直接给了算法,那么工作就很简单直接了。在这里再次膜拜雨巷大神一万次,这个project的官方sample是雨巷大神亲情提供的= =速度快得惊人,我优化了好几天才稍微和他的速度靠拢一点....
project5是非常综合性的一个project,而且可以玩出非常多花巧。我个人就把这个project写得非常generic,还模仿qt做了event系统和pre-compile过程(虽然是手动的),然后sample生成的网页非常之丑,跟CK交涉过了以后他同意可以写自己的样式,于是我又果断写了一套html generator(非常原始啊非常原始)。为了console的显示高大上,写了一个terminal环境的套件(主要是各种第三方库不让用嘛)。为了做数据验证,写了一个regular expression engine(众人皆表示这个最令人发指)。最后code写出来大概有4000来行吧(不计注释)
project6因为没有提升龟的需要所以没写,但其实非常有意思!我给过非CS的人看这个project的paper,众人皆惊呼:“太神奇了!”果然还是哪天写来玩一玩


做project,好的编程习惯非常重要,千万不要像某童鞋那样把所有实现堆到一个h/cpp里面,后来想分割都不好分了。源文件的分割和设计应该是在一开始整个project的设计时就要做好,因为这个分割相当于功能模块的分割,也相当于逻辑关系的分割。然后valgrind是个很好的工具,写完程序一定记着用valgrind查一下,当时查某童鞋的project5程序,先拿valgrind跑一下...一查2000个错误,我霎时就不想看了= =内存方面管理不当的错误绝对不要犯,不然信不信晚上Gan Dashen托梦吓死你= =


今年是一个新TA,看起来十分面善,可惜我很早做完了lab后来再也没见过他= =但是给project给得很松,第一个project还额外送我1分,简直大好人。


下面谈一点个人的想法
学期开始时就有传言说这门课以后就不再有了,那时CK还得意满满地跟我们说没有这回事,要是没了这门课他spring sem就没课教了。但是在final前的那个星期,他还是告诉了我们,这门课果然是以后不再有了。我不知道当时他是什么心情,但我想,如果是我,一定是落寞吧。我选择上这门课,很大程度上是因为看了cwiki上面诸多评论,或许是佩服CK作为一个教师的操守和坚持吧。然而这样的一位教师,终究敌不多体制。或许是因为课上的人数太少(这学期10人),或许是以前的SFQ评价不好,学校终于取消了这门课。从行政的运作和民主的理念来看,或许这是个正确的选择。然而作为学生的我,却感到有些心寒。我不知道,当科大的课程越来越简单,越来越肤浅,越来越贴近学生,当学生只知道稍微学学就开是hea,视学术为限制个人兴趣(我承认单纯的学术不利于个人发展),认为上大学就是刷龟,这样的变化究竟是好是坏,这样的大学教育是否成功。我不知道其他人怎么看学术,但我认为学术就是很简单的用时间换结果,雨巷大神会写编译器,Gan Dashen会写操作系统,恒爷上PG课横扫一片,我同样记得他们为得到这些付出的努力。如果只有水课,每个人都很好龟,学生怕是会失掉上进的动力吧。我感到很幸运,上学期遇到了SH Song这位professor,他说,上大学是为了跳出comfort zone,去挑战自己不知道的,不熟悉的东西。我认为,如果认为一门课很难,完全搞不定,professor在搞笑,是不是要去想想是自己没有相应的付出,是不是自己安于comfort zone而不思进取呢?当然你可以举出dekai之流来反驳我,但平心而论,我认为COMP2012H必然是不属于残害学生一类的。
其实我很佩服上面提到的wd童鞋,可以说他就是跳出comfort zone的典范。虽然他到课程最后code还是写得很糟糕,但是仍旧可以看出他的努力。记得写project1和project2时,他天天追着我想看我的code,最后他还动用了late credit才搞定。但是到后来,他已经能自己写code,而且按时交project了。这说明,只要有心学术,课程根本就无所谓难易,无所谓烂龟好龟。
考完final,去找SH Song聊了下天,他告诉我,ELEC2600以后也要缩短学时和内容了,fall sem暂时不变,要上的童鞋我建议赶紧了。他觉得科大把课程变简单的做法其实是一种戕害,我深以为然
或许再没有以前恒爷那届壮观的2012H队伍了
雨巷大神告诉我,科大以前还有门COMP104H,但也被时间裹挟而去
COMP2012H R.I.P.


-----分割线-----
为了防止因课程消失而造成课程不再留于人间,我特地备份了这门课的课程网站
http://johnmave126.github.io/comp2012h-backup/

以后有志于CS的童鞋可以试着做做project锻炼一下
然后我自己的project源码也开源出来供参考(虽然觉得参考价值不大)
https://github.com/johnmave126/comp2012h-paint

https://github.com/johnmave126/comp2012h-tetris

https://github.com/johnmave126/comp2012h-queues

https://github.com/johnmave126/comp2012h-patterns

https://github.com/johnmave126/comp2012h-register

最后打个广告,有没有谁想2013-1014 fall想去尝试重开2711H的来报个名
宇神求组织= =

查看更多/評論

[COMP2012]OOP and Data Structures

课程时间:2013年春季
授课教授:Gary Chan
我觉得教授 超级和蔼,超级耐心

这门课的Grade:还行



1.Prof:
  担心问题太简单会被鄙视吗? 没关系,找Gary
  编程水平有限,各种纠结吗?没关系,找 Gary
实践证明,这是一个很招同学问问题的prof,因为永远不会拒绝你的问题,永远不会出现任何不屑的痕迹,
因为当年Gary在Princeton的时候就是code从0开始学习的,是个勤奋的好学生。。。
2.TA
TA 和 helper其实挺强的,不过还是你要问问题他们才会搭理你,讲多深取决你的问题有多难,注意的是有的时候他们可能会 涛 涛 不绝 的讲一些略高端的东西,挺实用的,善良的TAs还会帮你处理assignment 里面eclipse的异常表现,很nice
3.assignment
要早一点做,鉴于假期后可能1004的东西忘了一些,所以赶assignment是一件危险的事情,切记切记
正常学就可以了,一般A, A+都挺多的,考试之前刷一刷paper其实比刷notes有用的多,notes是平时看看就行了
当然,考试的时候要注意各种细节,比如handle exception,先考察input合不合理什么的,细致细致
4.grade
觉得比1004的grade好一些,若是对1004有些许怨念的话,这是一门一定要上的课,因为身边的人都是在1004跪了,在2012站起来的。。。

查看更多/評論

[COMP2012]OOP and Data Structures

课程时间:2013年春季
授课教授:Prof Gary Chan
我觉得教授平易近人,经常被同学围住问问题以至于多次迟到我上的后一堂,表现出色的十几个同学能记住名字。TA也很认真负责,邮件回复很快,只是由于课程设计原因lab太水使他们没法展示真正的才华。

这门课的Grade:较好

我觉得这门课作为CS和Minor IT的必修课,在只有Java基础下补上pointer内容后还是可以一上的。内容基本和2012H的描述差不多,今年的PA改成了3次,做一个以linked list实现的BigInteger或BigNumber计算器,算法不难但需要事无巨细全部考虑清楚,尤其要杜绝typo和低级基础性错误,以防调试过程葬送整个周末时光。WA和midterm很基础所以一定要仔细。Final也不算难。考虑到各系均有卧虎藏龙之大神前来上此课,想拿A或A+还是要小心仔细点,并对自己在编程上的水平有一个合理的认识。

查看更多/評論

[COMP2012H]OOP&DS

课程时间:2011年Spring
授课教授:CK
Grade:mean > A

我也来凑个热闹。

关于workload,拿好龟的workload确实不大,但是想学好是没有尽头的。尤其是OOP这种关乎设计的东西。

关于Prof,CK人很好,但讲课还是比较水的。回邮件的速度基本取决于问题的质量,如果是发比较扯淡的邮件那可能在三四天后才有回复。

关于TA,TA人也很好,给分还算公正,因为大小写什么的扣分还是应该接受吧,计算机傻,多一个空格都可以是严重的bug,所以像大小写这种东西还是应该严肃对待。TA的问题在于评分几乎只看Functionality,所以似乎和OOP扯不上什么关系....

关于project,project们的傻逼之处在于spec中给出了太多的细节,每个project都还给了sample,所以我们大都参照着spec模仿sample后写出了相类似而毫无特点和风格的东西。最后那个extra看似是从PG课上搬来的,但其实只是读篇paper然后implement一下其中的算法,除了知道paper长什么样子外好像也没学到什么..

课程的设计还是很不合理的,lectures分为OOP和DS两块被midterm分开,可lab和project都只是OOP的东西,lab严重滞后于project(做完project one几乎已经用到lab中所有的东西了)。而DS那块像是把OOP压缩后插进去的,讲的也比较粗略。notes还是用151和171的旧notes,所以刷notes需要比较快而深度却不够。

CK自己也说在334的改革之下这门课不太可能幸存下去,但其实相比较而言这门课还是不错的。所以推荐EE的同学们考虑一下去上这门课,上的时候顺便关照一下year0的CS学弟们。

(小提示:如果在上课前面那个winter多写完几个projects,上这门课的时候可以非常hea)

查看更多/評論

[COMP2012H]OOP/Datastructure and algorithm

课程时间:2011年春季
授课教授:CK.Tang
Grade:Grade神
COMP152H自去年开课起就以workload大而闻名。看了诸多大神对着门课的评论,我诚惶诚恐的写下我的看法。。。

我觉得这门课给我最大的帮助就是养成了去看技术文档的习惯。这门课主要用的GUI library是Qt这是一个跨平台的应用程序框架,现在由诺基亚开发,当然随着诺基亚的式微,这个框架恐怕前景惨淡。。。好吧,扯远了。

我们有三个project都是用Qt写的,其中第一个基本就是辛苦的调用这个框架的各种接口,无技术含量,纯属苦力活。但是,CK整个学期基本没有给我们讲Qt怎么用,Lab有讲那么一点,但进度严重落后于project。所以,一切都是靠我们一页页的翻Qt的技术文档。。。(参见这里)。

在做的时候觉得很虐,但回头想想,看技术文档是学计算机十分重要的一门技能。在计算机中,各种语言的各种程序框架成百上千,不可能每一种都有人来教你,看documents是掌握和应用这些东西最基本的要求。

第二呢,这门课的project还是比较精髓的。事实上着门课的精髓也就是他的6个project(今年比去年多了个extra)。
第一个写个画板,因为从COMP104写着那些toy program过来的我们对GUI没有任何了解,写这个project需要大量的时间去学习Qt,本身coding又十分繁琐,大概需要2000-2500行左右的代码吧。。。哪个大神在1500以下的,求膜拜。。。。
第二个,写个俄罗斯方块。。额,我写这个的时候参考了不少网上的资料,搞明白原理之后其实很简单,大概700-1000行代码可以拿下,我是开AGM的时候搞定的(PS.AGM写code效率非常不错)
第三个,这个是最坑爹的,其实不难,就implement一个vector一个linked list就完了,关键是这个project的description不清不楚,TA改得各种纠结(关于这个TA,下面还会详细讲)。结果这个project的grade各种悲剧。。悲剧啊。。。。
这个project也用不了多少代码,没统计过,不到1000
第四个,implement两个算法,给出一组点的坐标,找出共线的。两个算法,一个暴力破解,一个用了排序的。算法描述都给你了,写一遍就是了。不难,不过debug挺纠结的,需要不输出重复。1000行左右吧。。把算法写出来,剩下的据不难了。。。
第五个,写个小小的课程注册系统,用哈希表(hashtable),这个是比较考验程序设计的,如果结构不好会产生各种麻烦,我自己就重写了好多次。而且如果有更高的追求,要写出可扩展性更强的东西代码量还是非常繁重的,比如某大神写了4000行,这里我只能表示膜拜。。。我自己最后是接近三千行吧。。。
第六个,额外的,写了可以提升一个subgrade经济实惠,写一个根据原有的texture产生新texture,看起来挺吓人,但其实算法都给出来了,代码也不十分繁重,我两个下午写完的。效果十分神奇,值得一试。

这些project的workload其实个人认为之前的传闻有点夸大了,除了第一个和第五个外,其他的其实coding都不算太沉重。OOP本身就是为提高大程序的可维护性和可理解性提出的一种编程概念,没有一个足够大的project个人认为理解起来比较困难。我之前就一直不理解要object来干什么,object能干的事情procedure都能干。

至于使用C++嘛,有位大神(再次膜拜下)说C++太繁琐,但也因此C++的效率比较高,所以熟练掌握C++还是十分有必要的。有了C++其他的语言相对都容易得多了。对于计算机入门的语言向来有很多争论,比如ust从明年开始CS入门的课就是java和python了(斯坦福用的是java,而MIT用的是python),但个人还是比较倾向于由C++入门的。

下面来讲将CK,其实我是十分喜欢这个教授的,他效率十分高,写程序的时候有抽筋般的手速,回邮件的效率非常高,刷notes的效率高到了极致,一节课一百多页的notes轻松秒杀。教授人很好,热心详细解决每个问题,我在邮件中向他请教过各种问题。。。他自己的水平是很高的,但是讲的课说实话不是非常好,英语有很重的香港口音,而且基本是念notes,所以要学明白,自己看书是王道,话说这门课用的教材Data Structure and algorithm analysis in C++被誉为20世纪最经典的计算机科学教材之一,十分值得一看。CK个人感觉算法和数据结构部分过得实在太粗糙,这种内功的东西还是值得仔细探讨的。

话说我们今年的TA简直就是极品TA,把我们辛辛苦苦写的project当一坨屎一样来改,各种函数名的大小写问题,少些了几行comment啦都扣分。把我们写的死去活来的东西改得千疮百孔。。坑爹啊。。。。

再说说grade,这门课的grade还是相当不错的,这学期除了有个B-外全都在A range。只要老老实实写好每个project拿A range是妥妥的。

查看更多/評論

[COMP2012H]C++以及数据结构

课程时间:2011年春季
授课教授:CK Tang
Grade:较好

上这个课嘛...实际意义其实很一般。
我个人认为,这个课的主要意义在于它是一个符号。有趣并且有爱的教授,一学期6000-8000loc的C++,严格的TA,这些都是以前没有见识过的。
上这个课来长见识,我觉得还是不错的。

————我是胡言乱语的分割线————

pros:
- yr0就能上,而且挺有趣
- 小班教学,能认识了解好多同学
- C++是一门相当繁琐的语言。上了这门课写了几千行C++之后,再学其他语言就容易了
- C++是如此的繁琐以致于你会想用metaprogramming(不,这里指的并不是C++的template metaprogramming)来降低coding的复杂度

cons:
- 课名是OOP和数据结构可是教的是C++这门繁琐至极的语言
- project都比较消耗时间
- 上课时并没有深入讨论数据结构和算法
- 上课的时候会被[i]兄贵[/i]教授的肌肉闪瞎硬化氪金狗眼(?)

总之是第一门H课,也是唯二两门教你做码农的H课里的第一门,好好的享受吧...

查看更多/評論

[COMP2012H]OOP and Data Structure (Honor Study Track)

课程时间:2010年春季
授课教授:
Grade:很好

CK Tang的COMP152H是科大工作量最大的课程,没有之一。 想上好这门课,每周需要进行大量的思考进行程序设计,投入大约二十小时时间去写

程序。

课程主要内容:
1.lecture讲解两部分知识:面向对象的程序设计;数据结构。使用的notes为旧年的COMP151H和171H所用的PPT,这说明它是一门浓缩了两个Honor

course的course。上课的时候CK会用非常迅猛的速度过notes,曾经创下一天讲100页的记录。这也就意味着考试之前有很多notes需要复习,这也

就意味着纯靠考试前复习是不可能的。尤其是下半学期的数据结构部分,很多算法需要反复仔细地悟。

2.lab做一些很废的小程序练手。

3.最考验人的是五个大的程序设计。第一个是做一个小画板,第二个是写俄罗斯方块游戏,第三个是泛型函数设计,第四个要求设计快排算法,

第五个类似软件工程,设计一个小小的选课系统。总计下来一学期写了6000行代码,不包括那些写了又删掉的语句。所有的设计的要求都写得云

里雾里,需要自己想程序的结构,这进一步加大了写程序的工作量。更郁闷的是身边有骥华哥这样喜欢精益求精的人,搞得我也不得不学着精益

求精,把程序代码改了又改……由于这些程序作业太变态,所以每一个作业的deadline日期都有着非同寻常的意义,所有上COMP152H的同学这学

期的生活都被这些deadline齐刷刷分成了5份……

很多人都因为这几个程序作业对COMP152H望而却步。要求是变态了一点,但是确实这样的训练能极大地提高人编程的水平,而且我们还练熟了

linux系统的操作以及linux下Qt图形界面的开发。总之益处多多。如果你想在COMP的course里面学一些实在的东西,那么CK Tang的COMP152H是你

最好的选择。

4. In addition to 上面这一切,还有6个written assignment,从下学期开始每周做四五道算法题,有些还是蛮challenging的。因为CK很喜欢

用LaTeX来排版,所以通过做这些算法题,我还学会了用LaTeX。

5.另一个好处就是,考试占的比例特别少。期中10%,期末25%。期中考试的时候还允许提前看卷子。在考试团团长鸟哥的带领下,大家期中考得

都不错。期末考试也不是太难,最后一个题还让我提前猜中了。


说些题外话。
在我看来,CK Tang是一个悲剧英雄。CS Department里面,他教过的课程得到学生的评价是所有教授里最低的,原因已经陈述如上:工作量

太大。十年前他刚刚来到的时候,科大还没有像样的Computer Graphics研究。是他开创了这个领域,而且让科大达到了很高的水平。但是他现在

也只是一个associate,很大一部分原因就是学生给他的评价太低。在科大这个地方讲课,好grade和少workload是让学生说好话的最好方式。现

在人人都是想要个好grade,至于能从上的课里面学到什么他们完全不管。你可以感觉到,科大的课程越上越简单,教授和学生都越来越喜欢用省

事的方法互相蒙混过关。在这个grade至上的功利学校里面,CK Tang和他变态的COMP152H真是一个难能可贵的组合,只有他的课真正教人学到了

东西。多年以来CK始终秉承这样的思想,他教过的所有课都有过COMP152H而无不及。当然,也被学生骂得很惨。

CK说他曾经想过离开。这学期开始前他去另外一所知名大学面试,人家愿意给他Chair Professor的职位做,而且酬劳远高出他现在职位的

薪水。你应该能从这个事情中窥到一些问题:一个人有能力做Chair Professor,但因为在科大得不到学生的好评,所以只是一个associate

professor,这是谁的问题呢?经过了一些艰难的抉择之后他还是选择留在科大,原因他不愿意说,他只说“I fliped a coin”(我拿硬币决定

了去留)。但是我觉得背后他另有自己的想法,也许他期望有一天科大的学生不要只是为了拿好grade而学习?期望有一天科大的教授不会为了讨

好学生而把自己的课讲得像是给SB听一样?

总之我深为之感动。倘若有朝一日我成为一个professor,定当如CK Tang一样,就算被人骂成SB也不会把自己的课讲成SB。


查看更多/評論

[COMP2012H]OOP and Data Structures (Honors Study Track)

课程时间:2010年春季
授课教授:Chi-Keung Tang
Grade:很好

COMP152(H)是将原先COMP151和COMP171合并后的新课程,内容比较多,上课节奏很紧凑,要跟上需要付出一定努力。不过152H不论homework还是exam都不难,仔细准备便会有好结果。
这门课的难点集中在占总分50%的5个project上(5*10%)。工作量巨大(有的project需要千行以上的代码),而且需要很多课程并不包括的知识,比如linux系统操作,用Qt进行window programming之类的,对自学要求很高。做第一个project(用Qt写一个类似windows画图板的程序)时,由于完全没接触过Qt,有一些手足无措,很是辛苦,上手以后便轻松多了。想要take这门课的同学不妨先自学一下Qt。
教授的讲课水平很一般,口音很重,基本是照本宣科。不过除了这点以外他还是一个很不错的教授。性格很有趣(上课时各种卖萌动作...);亲自上tutorial;回邮件飞快,有问必答;还有各种方便学生的政策,比如做project有10天的delay credit,mid-term preview(考试之前把试卷给我们看...)等等;给分也比较松。grade极好(honor track course的惯例),只要能跟上基本就有A range。
在COMP104H取消之后,这应该是泛CS系接触到的第一门honor course,不管怎样都值得尝试一下。

查看更多/評論

[COMP2012H]Object-Oriented Programming (Honors Study Track)

课程时间:2008年春季
授课教授:dekai
Grade:一般(仅仅是我觉得,有人认为grade很好)

对于CS人来说,究竟take COMP151还是COMP151H主要是看教授。个人而言dekai教COMP151(H)是很有一手的。这恐怕是所有有对应H Course的COMP课里,H和非H相差最大的一个课程,而课程内容与教授直接有关,与是否H无关。

正常的COMP151通常教QT,而dekai流的COMP151(H)会教BT(-_-b)。如果大家翻查以前的记录的话,有一年dekai主理COMP151-COMP251这个一年course,其中COMP151最后一个assignment的分数分布呈变态分布,基本上就是一个y=1/x曲线。究其原因,是因为dekai的每一个作业都需要正确地完成之前的所有作业才有可能完成,往往在后面的作业才会发现前面的作业的问题。因此当年的source奇少,0分都不会below mean一个SD。

但我还是强烈推荐上dekai的COMP151(H),原因主要是dekai本身是个很自傲(乃至有点自负)而很有思想的人。在他的课堂上你可以学到很多书本上没有的东西。毕竟COMP151的OOP所教导的是一种思想,一种理念,一种已经被普遍承认的工业标准,有时只是看书的话感触没有这么大。

dekai经常在课堂上面展示新闻,踩微软(在COMP526更是如此),和教导了我们很多CS应该知道的词语的来源,比如foobar和RTFM。虽然我是个逃课狂,但COMP151H在我上过的课里出席率算是比较高的了。

要学好COMP151,thinking in C++是很值得一看的一本书,还有那个叫做 C++什么FAQ lite的也应该看看。这是一门可以受用终身的课。插播一个个人观点,OO是用来编程的,不是用来生活的——用OO来看待事物有时会有不太好的后果。

查看更多/評論