cwiki MSSSUG|香港科技大學內地學生學者聯誼會本科部
Cwiki-查看
返回 Cwiki-首頁Cwiki-個人頁面Cwiki-貼文列表Cwiki-課程列表Cwiki-教授列表
OOP/Datastructure and algorithm
課程:COMP2012H [原課號:COMP152H]
作者:tliab [10级 CSE]
創建於:2011-06-12 19:09:34
课程时间: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是妥妥的。

Comments
[1 L]tliab [10级 CSE] @ 2011-06-12 19:10:56
哪个坑爹的说CWike支持BBCode的来着。。。。。。
[2 L]lzhangab [10级 CPEG] @ 2011-06-13 11:25:24
看評論我笑了。。
[3 L]ch_jyx [08级 CSE] @ 2011-06-14 08:54:32
膜拜涛神!
[4 L]stanab [12级 CSE] @ 2013-03-23 17:34:10
(mb)(mb)(mb)
Write a comment
請登錄後再評論