Computer Science and Engineering
文/戚得信 编/廖舟怡
CSE一以概之
wiki 定义:
http://en.wikipedia.org/wiki/Computer_sciencehttp://en.wikipedia.org/wiki/Computer_science_and_engineering
Computer Science和Computer Engineering的区别
应该说这两个专业相似度还是很高的,二者的核心思想都是算法和编程。而他们的区别就在于“理”和“工”的区别了。computer engineering作为一种engineering专业,不但要熟练掌握编程,而且要懂很多electrical engineering的东西,如电路、计算机构造等等,而computer science则侧重各种算法和各种语言,数学与逻辑在这个专业里更加重要。如果要读到博士级别的话一般会选择CS。
CSE在UCSD
本科:不属于impacted major,所以你可以进了UCSD以后再转成CSE。
研究生:2012年,CSE研究生院共招收研究生90人左右,其中博士生20人左右。
Master的方向和学位的Plan不要求一开始就定下来。通常可以再第二或者第三个学期定下来。
CSE本科生课程简介:
CSE department下面分为三个专业,分别是: Computer Science,computer engineering,以及CS-bioinformatics
具体课程区别看这里:
http://www.cse.ucsd.edu/node/1991
简单地说,就是,CE比CS多学了很多电子工程的课,而informatics少了一些和软件相关的课程,而多了bioengineering的课,CS则比前两者少了很多学分,稍多了一点数学的课。而数学department还提供Math and Computer Science Joint major,可见数学和CS还是息息相关的。
我们学校的CSE专业先从java开始学起(CSE 8系列),虽然本身并不是非常难,但是lab作业可不少哦,如果一旦有了bug可能会要花远超出你想象的时间去完成作业。所以,初学者可以待在学校的computer lab里完成这些lab作业,然后会有很多TA和tutor来帮你们debug,效率会高上不少。
到upper devision的时候,学习内容就侧重理论了,比如data strucutre、代数等等,对于刚刚接触的同学可能会感到很抽象,所以在大一大二的时候打好数学的基础是王道哦。顺便提一句,CSE的课考试是在篮球场考的,和另外一个完全不相关的班一起,你的前后左右的卷子都和你不一样,而且一个tutor盯着三个学生,所以不要存有任何侥幸心理,平时必须要实打实地学习。
CSE研究生课程不完全坑爹记录
CSE 202 Algorithm Design and Analysis (Russel Impagliazzo) 4 credit
核心课程之一,打分规范如下:3次作业,每次占10%,一次project占20%,期末的take home final 占50%。以上所有的作业中,除了期末最后的一次,其他都是以组为单位完成。一组的人数在2~5人不等。教授说平均每次作业需要10~20小时完成,我个人的实际情况不止。鼓励提交打印版的作业,建议使用latex。每次作业基本是5道题,题基本是教授自己出的题目,很少在其他地方看到过。开始选课的人很多,第一次大约有七八十人吧,后来去上课的人也就30个左右吧。
课程从图搜索开始入手,从贪心,分治,回溯讲到动态规划以及最大流等内容。另外一个算法老师讲的内容和他不太一样,具体内容没体验过。
教授是年级略大的男子,非常友好热情且可爱,基本没有口音说话易懂,去他办公室问他问题他会对你说“thank you”。最爱喝可乐,办公室里摆满了可乐罐。粉笔字写的比较难辨识,板书不太易懂。上课从来不看备课笔记或者其他书面材料,无课件ppt全板书,思路有一定跳跃性,跟上他的节奏可能会有点费事。上课的内容基本上就是针对某些他所准备的问题进行讲解,讲解其相应的求解算法,算法的证明方法等。
CSE 232 Principles/Data Base Systems (Yannis Papakonstantinou) 4 credit
非核心课,多被称为是CSE最水课之一。给分规范以及往年的课件和考卷可以再这里找到:http://db.ucsd.edu/CSE232F12/。
教授是中年男子,口音非常重,比一般的印度口音或是日本口音还要难懂。第一次上课的时候基本上完全听不懂在讲什么,唯一值得庆幸的是他基本每次课都会发打印出来的课程ppt,讲课的内容也是围绕着ppt展开的,基本每次课都是对着投影的ppt讲的。如果不考虑口音问题,讲课的思路比较清晰浅显,相对易懂。大约有30~40学生的样子。
平时可能会有一两次作业,加起来占总分数4%。考试难度可能会有较大的不确定性,我上这课的时候期中考试的难度较往年明显难,并非很轻松不听课就能混个好分数的。
虽说是水课且负担很轻,请不要抱着不听课不看书就能轻松混个好分数的心态选此课。
CSE 250A Artificial Intelligence: Search&Reason (Charles Elkan) 4 credit
警告:请不要被课程的名字欺骗!整个课程基本不会涉及Search,Reason也不是重点。
非核心课,AI方向必选课。给分规范参见:http://cseweb.ucsd.edu/~elkan/250A/。
教授基本没有口音,说的话听起来基本没障碍。大约有60~70人一起上课。课程负担相当重,每周两次课一次Problem Session。每周的两次课中,一次做当堂quiz,一次交作业,也就是说每周都有作业。作业的平均完成时间不等,有10小时之内就能完成的,也有40小时以上都不一定能完成的。作业包括数学推导,也包括编程实践题目。当堂的quiz和作业都要求两个人一组为单位完成,也就是说quiz的时候可以进行讨论。每次当堂quiz的时间是7分钟,做完提交之后当场讲解正确答案。分组不要求固定,可以随时换搭档。
我这届是教授第一次上这个课,主要是借鉴之前上这个课的教授的lecture notes和上课内容。上课从不使用ppt,全板书。板书较算法课Russell教授的板书来说,易读一丁点。课程讲解的内容主要是贝叶斯网络,各种各样的贝叶斯网络模型和其算法。一方面因为我自己概率和数学学的不好,另一方面这课确实负担很重,它光荣的成为了我一学期中花时间最多的课程。也因为是第一次上这个课,教授讲课的思路不是非常连贯,时不时会被学生打断,也会出现跟学生讨论某个问题讨论半天以至于原来要讲的课程内容没来得及讲的情况。课程使用Piazza作为课程的网络交流平台,教授回答问题的速度很快,通常提出问题的一个半小时之内就会做出回答。强烈推荐参考之前上这个课的教授Lawrence Saul的lecture notes。
Problem Session由助教讲课,基本是将作业里面题目相关的内容,对于作业还是有不少帮助的。时间基本在一个小时。
CSE 292 Faculty Research Seminar (Different Professors)1 credit
核心课,很水。每周听一次讲座签到即可,没有作业没有final。
CSE 599 Teaching Methods (Simon Elizabeth) 2 credit
想申请TA的同学必须上的课。虽然只有两个学分,但是课程一点也不水。每周都会有作业,基本每周都有讨论。上课的老师灰常激情,是很正儿八经的在上这个课的。每周的作业通常会有reading和moodle论坛上的discussion。每周的课基本上是上四五十分钟的课,然后剩下的时间所有的学生分组进行小组讨论和演讲。基本的形式就是每个同学分别扮演TA的角色进行授课,讨论或者是解答问题等活动。如果你课程紧张,也没打算马上当TA,建议别凑热闹选这个课,可能会花费一定的时间和精力。
CSE 就业趋势
CSE可是说是国际学生初期在美国最容易找工作和实习的专业了,没有之一!原因在于,互联网的人才需求量实在太大,而且任何其他行业都需要有CSE背景的人来做database、网站维护等等。而且,本科生在一开始就学了java和C++等语言,实用性非常强,而且打好了这些基础对学习其他编程语言也有莫大的帮助。而主要招CSE学生的大公司就有谷歌、苹果、intel、facebook等等,而且很多其他公司也都会招CSE学生。而这个专业在国内的就业市场也是十分庞大,所以CSE的学生不论回国发展与否都不必太过担心就业问题。当然,这个行业竞争也是非常激烈的,好多CSE的学生们从大一大二就开始物色实习了,所以机遇是与挑战同在的。