cwiki MSSSUG|香港科技大學內地學生學者聯誼會本科部
Cwiki-查看
返回 Cwiki-首頁Cwiki-個人頁面Cwiki-貼文列表Cwiki-課程列表Cwiki-教授列表
CSE的天堂,其他人的地狱
課程:COMP1022P
作者:xxuaj [14级 SCI]
創建於:2014-12-15 20:14:42
课程时间:2014年秋季
授课教授:Wilfred Siu Hung (T3)
我觉得教授人还是不错的,不过编的学案量太少了,不够用。更诡异的是三个教授一人编一套,其中我们这套和考试对不上号!

这门课的Grade:较好/一般/烂grade

我觉得这门课听听的话还是相当好的,不过仅限于这么旁听吧!如果不是专攻而只是顺便学学的同学,不建议选这门课。
讲的内容是Java基础。对于想学计算机并且有天赋的同学,还是很简单的,尤其是CSE系的,当我没说。因为学习Java的基本技能对于你们来讲就是理学院的MATH1023,这都学不好就出事了。课程相比其他课不是那么负责,不过也是还算不错的,基本的编程逻辑判断还是完整的。
但是由于这门课是公共课(Common Core),其他院系的同学们很容易为了凑分顺便加一节这节课,不仅看上去很适合低年级生,而且比较抢手,注册人数比较多,不是吗?但是这是三节计算机基本课程(1022P、Q,1021)中最坑的一节,并且在此提醒各位想要学编程的同学。和基础学科不同,编程属于一项技能,如同游泳一样,不会也能很好的活下去,会的话自然是锦上添花,但这不意味着你适合将编程选作你的专业,你的职业!
Java是微机语言界的一朵奇葩,其操作极其复杂,不适合初学者。建议学习掌握更高级的语言,比如C++、MATLAB、或者Mathematica。这些语言都不难,debug时也能很快的注意到程序中错误的位置,函数使用不仅比较多元,而且方便查询,适合日常搭配其他学科使用,比如MATLAB适合处理矩阵,Mathematica适合处理函数。相比之下在Java中调用各种数据十分复杂,即使是写伪代码十分熟练的我也经常为了编译头疼,因为总是提示输入方式不正确。而课堂上只讲述了基本逻辑,lab中直接要求你写代码,中间就出现了一个坑。比如你明明知道把两个数加起来就可以了,但系统发出了各种奇怪的错误提示,这两个数类型不对,调用位置不对,总之就是不可以加起来,你就头疼去吧。
然后是龟。这门课作为计算机院的基础课,对于准备进计算机学院的同学们根本不算事,就好像数竞大神经常秒杀高考压轴题一样,而其他人根本做不到。同样的,如果你不具备极强的Java技能,还想好好把龟留在A range的话,就不要轻易碰这门课,这里的local们已经把平均分拉上去了;如果你进来了,能活在B range杀出来就是比较好的战绩了。即使会编程的同学也建议改选1022Q或1021,祝你好运!
Comments
[1 L]hqi [13级 MATH] @ 2014-12-15 22:58:06
= =
java操作复杂吗?虽然我是赞同C++入门,但是java跟C++比还是naive吧。
[2 L]rpeng [12级 CS+MATH] @ 2014-12-16 02:10:27
觉得lz语气略重了,或许是遇到了诸多小挫折吧,当然奇奇怪怪的错误提示也是Java比较有特色的地方。
在这只想说这个1000level的comp旨在传输比较基础的概念,给你一个taste,从这个角度说还是多建议各路有兴趣的同学来上。再者我认为Java和诸多M字头的数学toolbox语言还是有本质区别的,不好在一起比较,当然如果你熟悉了任何一种general purpose的语言,其他语言也就很容易上手了。
个人观点,欢迎讨论。
[3 L]xkong [11级 ME + CS] @ 2014-12-16 04:25:58
C++ 入门一律烧死!


Lisp 入门才是正道!Scheme 入门才是正道!不服?抬 6.001 出来!抬 61A 出来!抬 dekai 出来!(好像有什么奇怪的东西混进来了)


你们啊,too simple,啊,sometimes naïve!我觉得你们新生还是需要学习,我今天算是要把你们得罪一下!
[4 L]zgao [12级 ECE] @ 2014-12-16 22:51:16
赞同rpeng。我作为一个非CS的同学,当年上这门课觉得还是比较基础的,而且我在来科大之前是没有任何编程基础的(连variable都不知,不怕笑)。JAVA其实没比C++复杂多少吧(虽然我觉得还简单些),而且1022P其实并没有讲太多JAVA特有的东西(那个是COMP3021的任务)。反过来说如果上来就是C++我觉得debug会更痛苦些
建议楼主不要对编程失去信心,如果你真的对JAVA失去了信心也不是事儿,鄙视JAVA的大有人在哈哈
[5 L]匿名 @ 2014-12-17 15:59:28
hhhhhh 之前也是看前面的学长学姐说简单来上这么课。然后midterm好好地把我教育了一番,果断below mean 1 sd
当然我认识的mainland大部分都是90+ 像我这种低的分数基本就没几个
[6 L]匿名 @ 2014-12-17 16:03:14
我也顺便吐槽下吧。 教我们的是韩国人,口音特别销魂,刚开始几节课我基本就没听懂他讲什么(这也导致我midterm一些非常基本的概念扣了接近20分,对你没看错,就是接近20分)
但是到后面能听懂他的英语以后感觉他讲课还是挺好的,但缺点是ppt比较意识流。我这种遗忘速率比较快外加第一个学期作大死课后就干别的事情的人基本就没什么课堂效率了,课后再看他的ppt也不明所以,只能看别的堂的ppt
[7 L]jyangai [12级 CPEG] @ 2014-12-17 21:13:55
赞同zgao。我作为一个非CS的同学,当年上这门课觉得还是比较基础的,而且我在来科大之前是没有任何编程基础的。
等到3000level真的写java了 
分分钟教做人


[8 L]stanab [12级 CSE] @ 2014-12-18 15:14:36
你真的觉得C++比JAVA简单?
JAVA自带gc,没有pointer,没有宏,没有多继承,没有typedef,一切reference,template系统自带type erasure,我一个C入门的来看JAVA programmer简直是娇生惯养。
BTW科大取消1004/H的原因就是很多人抱怨C++学不会。
不过受到Dijkstra熏陶的我觉得现在入门就应该用PFL,不会lambda calculus你也敢叫程序员?
[9 L]zhuac [14级 工学院] @ 2014-12-20 01:36:41
旋神你何必呢?有些夸张了。
[10 L]zwangaj [12级 ECE] @ 2014-12-20 13:57:59
围观楼上几位各系大神欺负学弟。。。
不过话说跟哪种语言简单还是难没关系吧,1022P虽然讲JAVA,但是讲的真心很弱啊。。。
[11 L]匿名 @ 2014-12-21 23:59:08
但从编程语言上来说,比较赞成谭说的java更简单。但是我觉得就是因为简单,所以在理解上反而难以入门 -- 从自己来说,我觉得c++教的方式,从c过渡到oop,比较能更让人推开编程的门。 


P.S 学长学姐说的话,可能是因为曾经这门课相当好龟,midterm+final 有半个sd就有a range - 但是cse采用1022p做入门(也就是comp2011(1004)的pre-requisite),可能会让这门课的龟不如之前理想。我个人觉得1022q更适合商院的同学,excel是很实用的技能。而1021(既python)更简单些,但可能会让之后c++的学习更难过渡些。
[12 L]stanab [12级 CSE] @ 2014-12-29 13:47:27
套用严民的一句话:“Derivative is not important. Linear approximation is important. Derivative is the way to compute  the linear approximation. Linear approximation is the idea. What is important is the idea, not the computation.”
在这里,亦如此,重要的是编程的理念,即OOP,PFL云云,编程语言只是实现这些的手段,是不重要的。
Python为什么适合入门?是因为它有着脚本语言的灵活性,有着OOP的特点,又杂糅了许多PFL的的东西,像map, reduce, lambda等等。所以学这门语言可以学会很多思想。
JAVA为什么适合入门?这大概是最OOP的语言了,学好了JAVA,OOP就没什么问题了。
科大最大的问题是把所有的编程语言当成了Computation Tools而不是Way of conveying idea,所以你们见到的project都是imperative的,所以你们学会的是用这门语言干一些事情,而不是用某种思想干一些事情。
[13 L]zzhaoah [14级 MATH/CS] @ 2014-12-29 18:34:10
这课的难度就是考试带笔记基本[没问题&全在notes上]
而且讲课也已经简单到基本不能再简单的程度了

[14 L]jxieab [12级 MATH-CS] @ 2014-12-30 08:52:32
同围观各路大神学长怒艹学弟(不是学妹吧?)....
(顺便膜拜谭神)

BTW同意各路大神的说法..虽然并没有上过Java
Write a comment
請登錄後再評論