百科问答小站 logo
百科问答小站 font logo



求比较cmu ece 哥大cs 芝加哥mpcs选哪个? 第1页

  

user avatar   awliu-xue-jiao-yu-zhong-xin 网友的相关建议: 
      

我是2019spring CMU ECE的学生,在这里分享一下关于CMU ECE的信息,希望能够给你带来一定的参考,以及帮助到想申请这个项目的小伙伴。

项目介绍

CMU ECE Department下有两个项目,一个是ECE(Electrical & Computer Engineering),还有一个是SE(Software Engineering),由于我读的是ECE,所以下面就具体介绍前者。

ECE的项目时长最短一年,最长一年半,毕业要求是修满96个学分,其中包括60个学分的专业核心课和36个学分的任选课,每个学期至少要修36个学分,最多修48个学分。一般的课程都是12学分,但也有持续半个学期的mini course是6学分,所以一般情况下我们都是一个学期三门课;也有想提前毕业的同学一个学期修四门课的,但是这样做压力非常非常大,建议不要轻易尝试。

另外项目还要求我们最多只能修4门非ECE学院的课程,即课号不是18开头的课程,其他课都要求选ECE学院的课,当然我们学院有些课是和CS学院共享的,所以选择范围还是挺大的,有很多神课可以随意选择!在选课的优先级上,CS的课CS的同学先选,ECE的课中,除了SE的核心课是他们先选之外,一般情况下都是ECE的同学先选。

CMU课程的一大特色就是网络直播,除了大部分的CS课程不允许直播,其他很多课程都会采取直播/录像的方式来授课。有很多直播课都是神课,质量非常高,这样也保证了硅谷校区、卢旺达校区的学生可以享受到和本校区学生一样的资源。但是学校只允许我们一学期选一门纯网络直播的课,其他课程都要求线下。还有一个就是Concentration,ECE项目里有四个Concentration,分别是Cyber-Physical Systems, Computer Security, Data and Network Science 和Wireless Systems,每一个concentration都有相对应的课程,如果你所选的课程满足了某一个concentration的要求,那么毕业时学校就会给你发一个证书。但是concentration不是我们的毕业要求,所以不选也没有关系,我个人觉得concentration就是将我们选课的方向区分了开来,给我们选课或者对未来的职业发展有一个引导的作用,参考一下还是不错的。

项目的人数还是挺多的,班里中国学生居多,也有很多印度的小伙伴,我接触的几个同学都是来自国内的985,专业的话五花八门,通信、物理、生物、经济金融等等都有,大家的背景都非常多元化,转专业的同学不用太过担心。除了应届生以外,有些同学是先去了秋季录取的学校读了一个学期后转过来的,还有几个是已经有几年工作经验的同学,感觉项目在录取时对于大家的背景没有很大的限制,比较友好。我自己是国内985通信专业的,但是本科院校里这个专业的排名并不是很好,GPA85,TOEFL104,GRE324+3.5,只有一次非常水的一个月的实习和电赛+美赛经历,当初也没想到会被录取,收到AD时还激动了好久。我也没仔细去了解过其他人的详细背景,总之在现在的申请大背景下,做到三维多多益善,实习什么的含金量高点,文书好好写不要掉以轻心,尽最大的努力就好了。

就读体验

来这边最大的感受就是作业实在是太多了!感觉一个月的作业量比本科时一个学期甚至一年的量还要多,学习节奏很快,压力很大,娱乐活动基本为零,周围的同学基本都在埋头写代码。前面说到过一学期一般选三门课,一门课12学分,按照学校的说法是1学分相当于1学时,那么计算下来就是一周至少要花36个小时在上课写作业上,平均一门课12小时,不过我个人效率不太高,所以花费的时间比这个还要多一些。有些难的课程一周要花上二十几个小时,甚至听说有些神课到了期末每周花四十几个小时也是常见的。我第二个学期的时候没安排好选了四门课,生活完全被代码所操控,感觉自己每天24小时不间断全都在写代码,即使没有坐在电脑前,平常脑子里也在思考接下来的代码要怎么写。总之CMU每门课的workload都很大,根本不存在那种轻轻松松就能拿高分的课程。想拿A也不容易,毕竟CMU的大佬实在是太多了,再加上我自身的基础不太好,所以拿A就更难了。个人认为对于大多数人来说,课堂积极表现把平时分拉上去,考试前认真准备复习,平时作业也认真做一般都能够拿B+或是A-;而拿A的话需要在此基础上付出更多的时间和精力,需要对知识理解得更加深刻。

建议大家来之前如果有时间的话可以提前学习一下比较难的课程,这样到时候学习压力就不会太大,因为第一个学期我们既要适应这边的学习节奏,又要准备实习、提升英语水平等,事情还是挺多的,能尽量预习就先预习吧。我当初申请的时候虽然投了Fall,但是拿了Spring,中间空闲了大半年的时间,原以为研究生的压力应该和本科时期不相上下,于是就高高兴兴地去做了一段没什么技术含量的实习。事实证明我还是太天真了,来到这边我最后悔的就是那半年没有好好预习而是去水了个实习,如果提前预习一下第一个学期必选的15213那么刚开始的压力就不会那么大,我也就不用天天埋头在代码里,应对着做不完的作业。

我在CMU上课的另外一个感受就是学校非常重视师生之间、同学之间的交流互助。先说老师吧,教授们的讲课水平都很高,人也很nice,我们上课有问题随时都可以举手提问,也可以在office hour找老师,平常遇不到老师的话也可以发邮件联系他们,甚至预约一对一的meeting也是可以的。总之只要自己发现问题并主动反映,表达我们的诉求,一般情况下都可以得到解决。同学之间的交流互助则表现在TA上,TA们会耐心地为我们解答关于课程的一切问题,对于一些比较难的课程,TA们还会安排专门的辅导时间。另外,我们在线上的piazza论坛上提问的问题也能够很快地得到TA或者教授们的解决,千万不要担心自己问的问题太简单而不好意思,关键在于搞懂知识点。学校对于学生的个人情况也非常关心,有开设心理咨询、一对一学生导师等活动,感叹学校课程质量好、人文关怀合理的同时不得不承认学费这么贵是有它的道理的…

至于科研我个人没有去打听过,因为这个项目本身就是以就业为导向的,感觉身边大多数的同学也都是以找工作为目的,好像读PhD的同学并不多。我知道的是学校允许我们选research project,相当于是一门课,专门帮教授做研究,选课方式就是直接到系里的网站查project然后投递简历就可以。另外我有一个同学暑假也去了实验室,所以个人认为和教授多联系,打听打听,科研的机会应该还是挺多的,毕竟CMU是CS大校,各种各样的机会都有。

还有英语水平问题,我TOEFL的口语是23,听力自以为是不错的水平,然而刚来这边的第一个月,听课简直灾难,几乎听不懂老师在讲什么,只能下课自己默默研究,不过后来渐渐地就好了。口语,不讲话还好,一遇到需要开口讲话的场合,我就发现我的口语和听力一样也是一个灾难。和TA讲话的时候,每次都要费劲地说好多遍对方才能够理解,交流十分费力,有时候都会感到一丝丝的尴尬。尤其是第二学期我选了一门同学、教授和TA几乎全是美国人的课,每次教授语速快一点、提到美国传统的/独有的电视节目和他们从小玩到大的玩具、游戏的时候我就完全不能理解,有时也无法get到他们的笑点。这其实是文化差异的问题,所以我真诚地建议大家一定要让自己和外国人多交流,强迫自己融入当地的环境,不要总是和中国的小伙伴抱团取暖或是一个人孤独寂寞地承受着学习的压力,这样我们用到英文的机会就会很少,几乎只有听课和做作业的时候会用到。还有一点就是考虑到以后要在这边就业的话,面试的时候口语非常重要,networking也需要我们多去认识新朋友,所以大家还是多多走出去吧!

单就学习来说,上课-写作业-考试这个节奏是和本科时期相同的,只是压力更大了一些。不同之处在于我们有很多课是和本科生共享课号的,共享的课程就会有非常清晰的要求,TA也很负责,我们只要根据要求一点一点完成作业就好,虽然workload会很大,但也省心。而纯研究生课程的安排就没有本科生课程那样完善,TA人数较少,office hour也不多,有很多东西需要自己去摸索搞明白,作业也没有特别严格,能够自圆其说就行。总之感觉研究生阶段我们还是要学会自学吧,学会时间规划,有问题要主动去找老师或者TA。

选课心得

下面的课程都是我自己亲身上过的课程,但是因为我基础不太好,在CMU成绩一般,很多课学起来也比较吃力,再加上我是个社交废材,平常不怎么和其他同学交流,所以信息来源有限。如果你是学霸可能以下内容对你的参考性不大,这些心得更适合和我一样基础一般的小伙伴参考,当然如果能够给每个人都带来帮助那是再好不过的啦。

  • 必选
18613/15513/18213/15213(原来的18600):Introduction to Computer System

传说中的CMU神课之一,学长学姐赐名“优秀程序员入门必备”的课程,可以说是第一个学期必选的课。课程最大的特点就是它的lab含金量很高,虽然很难很繁琐,但是做完会学到很多,可以说是技能有了一个阶段的提升。这门课我上了两学期,因为19spring的时候刚好遇上它改革,有十节课是一个维也纳老师讲的,其余的课我们自己去听15213那边的,作业也是跟着他们做,还有两个可以加分的extra lab。我当时听不惯这个老师口音,而且他上课总是让人想打瞌睡,还有一些乱七八糟的东西搞得我很乱,再加上第一个学期不适应这边的节奏,总之没学到多少东西,之后就withdraw了。有次我哭着跑到老师办公室去向他请教,老师很耐心地教了我很多,还让我有问题一定要及时问,多去office hour等等,后来我就变得积极许多。19fall这个课程又一次改革了,老师换成了一个讲课思路清晰的有耐心的美国人,18613单独授课,内容和14213一模一样。15213则是有两个授课老师,一个是只有三十几岁的教授,语速很快,还有一个就是教材作者Randal Bryant,教授年纪大了讲话比较慢,但是讲的都是重点,非常受用。我因为暑假吧C语言的教材和课程内容都重新学了一遍,所以19fall这次学得还可以,整体下来学到很多。

<学习建议>

1、如果你和我一样基础不太好,建议先提前看完K&R的C语言教材,学下来会轻松不少。我个人认为最好的选择是边学边读教材,或者只读教材,这会让我们对知识理解地更加透彻。

2、考试前刷题很重要!一般好好刷题考试基本没问题。

3、有条件的话在开学之前自己尝试着写几个lab,摸索以下。

4、不要抄袭!不要抄袭!CMU在这方面抓得很严,特别是这种大课,据说有一次lab抓住了70%的抄袭,结果就是他们都挂科处理了。总之一定要自己写代码,不要看网上的代码!!

15112:Fundamentals of Programming and Computer Science

传说中“全美最好的五节本科生课程之一”,老师从零开始教我们学Python,非常适合和我一样基础不太好的同学!上课主要讲了Python和几种排序算法,时间复杂度、NP-complete、recursion之类的概念,内容丰富但有条理,对计算机基础做了很好的概况。课程安排一周两节80分钟的正课,一节90-120分钟的advanced lecture,另外还有很多节90-120分钟TA组织的授课,来给我们讲上周的作业、复习之前的内容和预习下周要学的知识。还有一节50分钟的writing session、一节50分钟的recitation和一节1小时的small group session(也是复习quiz),作业的话大概每个星期要花5-20个小时的时间才能做好,中间还有两个midterm、一个final和一个term project。说实话,这门课非常耗时间,但是我觉得基础的东西就是要花时间去慢慢巩固,如果想要速成往往得不到好的结果。

因为是本科生的课程,所以同学和TA差不多都是美国人,课堂气氛活跃,非常美式。授课老师Kosbie是我心中CMU最棒的教授之一,上课非常幽默,而且充满了活力,会蹦出各种新奇的想法,和我们交流也像朋友一样,完全没有距离感。老师非常注重高效率的时间管理,即使课堂只剩下两三分钟他也能够讲很多东西,利用这几分钟写出来的代码也可以“make a difference”,他对于时间的利用在很大程度上感染了我,之前我是一个做事效率非常低的人,后来渐渐地强迫自己提高效率,完成了许多之前觉得不可能在规定时间内做好的作业。此外,老师还常常鼓励我们要每天进步一点,认识到大学和高中的区别,做自己真正喜欢的事,是一位非常非常好的老师。

这门课的TA大概是我选的课里面人数最多的,有好几十位,office hour时间很长,在piazza上提问也能够随时得到解决,大家都非常积极,有什么问题尽管问,因为我们只有在发现问题和解决问题的基础上才有进步的可能。这门课也让我认识到了CMU本科生是多么有实力,最后的project showcase中很多精彩的projects都是大一学生做的,让我这个渣渣研究生自愧不如…总之还是建议大家多和同学交流吧,能够互相学到很多。有次我们临时组的一个队伍在puzzlehunt活动上意外地拿了第一名,最后还有奖品,团队的力量是神奇的,这个也算是本学渣在CMU的高光时刻了吧。

<学习建议>

1、上完课一定要及时复习,有些概念和模板很容易就会忘掉,不复习的后果就是下周的上课效率会非常低,最好是把example code再做一遍,加深记忆。

2、记得要选一个经历丰富的TA我当初非常佛系是随机分配的TA,后来分配到的TA是一个没什么经验的大二学生,感觉没啥帮助。

3、TA的课只要去听quiz和recitation的就可以,重点掌握quiz的形式和出题思路;另外small group可以锻炼口语,建议大家都去一下。

17637:Web Application Development

这也是神课之一,选的人非常多,刚开始我一直在wait list里,原以为选不上了,但是想选的人实在是太多了,教授就让我们把名字都报给他,最后扩充了名额,我才选上了这门课。授课老师是有名的Jeff教授,为人幽默风趣,上课时教我们用Django做框架,语言是python,外加一点JavaScript,又final exam和一个project,课程内容也算是基础的那一类,老师给分也不错。

上课的时候老师会用PPT概括主要的知识点,然后再通过例子里的代码给我们展现细节的内容,例子则是通过录屏的方式呈现,非常方便。只要上课听懂了,workload是不大的,quiz也是等我们做完后对了答案再上交,整体的课程压力不大。Project建议大家好好做,当然找到靠谱的队友也非常重要,像我很幸运地遇到了几位大佬队友,project的分工、时间安排都由他们一手规划好了,还把没学过的难的那一部分做掉了,剩下我的任务就是完善细节,最后我们组的得分也不错。期末考试的题型是概念题和手写代码,平常多练一练代码,多注意框架细节就不会难。

<学习建议>

1、遇到不懂的地方先看视频自己思考解决,实在想不出来再去office hour或是Google求助。

2、再次强调project记得找好队友而且做的时候明确自己要做什么、要用到哪些工具,规划好时间,不然你会很忙的。

3、因为期末要手写代码,所以平时尽量少复制粘贴,尽量手动输入。

  • 推荐选
17681:Java for Application Programmers&17683:Data Structures for Application Programmers

这两门课都是六学分的mini course,第一次看到是在网上,很多人推荐转专业的同学选这个课程,虽然我不是转专业,但是感觉自己基础不太行,于是就选了。这两门课的授课老师都是韩国教授Terry Lee,是Jeff的好朋友,讲课和他一样幽默风趣 、耐心细致,特点就是老师的给分很低,但是letter grade就还好,比如Java,虽然打分只有40几但是可以拿B-,70几可以拿B+这样。另外老师还特别注重细节,quiz和final的考题很多考的都是平常注意不到的知识点,毕竟细节决定成败,这也有它的道理。

两门课的作业和考试都很有含金量,值得我们去认认真真地做一遍,作业就是通过刷题来提高我们对于题型的熟练程度,逼着我们花时间去练习。有一些请教TA后才理解的知识,或者是到了最后交完作业才被指出的错误,自己一个人空想是远远不够的。所以还是要多问,多思考。整体来看这两门课还是非常就业导向的,大部分的作业都可以在一天之内搞定,只有一两次作业我花的时间比较长。然后17681这门课是有录像的,如果有想省学分的同学可以从其他人那里借过来看。

<学习建议>

1、及时复习,建议每次quiz前都复习一遍,这样考出来的成绩就会好看些。

2、Java课上要记笔记,因为很多很多东西PPT上面都没有。

3、作业最好提前几天开始做,因为有些知识点很偏很难想,遇到不会的就马上去office hour找TA帮忙。

4、有时间把example code手动敲一遍,有助于加深理解,考试时也会轻松一些。

18645:How to Write Fast Code

这门课好像一直在改革,我在的春季学期和秋季学期差别就挺大的,教授不同,授课大纲也变了。我上的那个学期教授是一个新加坡人,给我们讲了pipelining、throughput、latency等等基本概念,应用在kernel design中,还学了OpenMP、SIMD、MPI and Collective Communications,整体内容不算太多,但是由于语言、教授表达和我个人的理解能力,所以我学的时候还是比较吃力的。每节课是110分钟,课上有很多小组讨论的时间,方便和同学们交流,有问题也可以随时问老师。Workload不大,我最快的一次6小时就完成了作业,但是有时候多点会花上三五天,主要是有时候不清楚重点,就要去office hour找TA求助。这门课的head TA是一个美国的PhD学长和两个印度MS,三个人都非常负责,为了帮助大家解决问题,office hour经常延长到两三个小时。有一次我有事情在office hour的最后几分钟才到,碰巧TA不在,在我硬着头皮发了一封邮件后TA很快就过来了,还帮我修改了四十几分钟的bug。总之在office hour这方面做得非常好,有问题很快就能够得到解决。

唯一不太好的一点就是老师经常会忘了放PPT给我们,piazza上也没什么人回答问题,也没有课程录像,只能通过频繁地去office hour找TA。期末的project很实用,用到的都是之前学过的知识点,做的时候就可以检查自己知识的掌握情况了。期末考试占总成绩的30%,但是平常有sample exam,题型和内容都和final类似,所以final的难度也不大。

<学习建议>

1、老师常常忘了给我们PPT,所以上课记得认真听讲做好笔记,如果着急要PPT的话可以适当地提醒老师。

2、学期中间的两次作业要早点做完,因为不接受late submission。

3、有问题就及时去office hour问TA,由于没有PPT的原因,知识点很快就会模糊。

4、多看主要概念,少看缩写,要抓住重点。

5、sample exam一定一定要做,到了期末你就知道它有多重要了。

10601:Introduction to Machine Learning

适合第一个学期的时候选,看看自己是不是对ML感兴趣。用的语言是python,作业也允许我们用Matlab/Octave/Python/C/Java等等。老师很好,发音也很标准,网上的大佬们都说这是一门上课轻松作业也简单的课,但可能是我基础不太行,这门课对我来说很难,特别是公式推导部分,更加坚定了我不往ML方向发展的决心。不过基础的代码部分是不难的,起码我能够理解。

<学习建议>

1、平常多复习多去office hour,不要等到要写作业了才去,不仅很挤而且会等得很焦虑。

2、老师推荐的材料都去读以下,有利于我们加深理解,方便写lab。

3、python要熟练掌握,比如class和alias、浅拷贝和深拷贝之类的。

关于就业

先说暑期实习吧,一般来说秋季入学的同学从10月份开始就要为第二年的暑期实习做准备,在CMU,CPT算是summer semester的课程,从5月20号开始一直持续到8月初,总共为期12周。找实习一定不要拖延,其实是越早准备越好,因为第一个学期刚来压力肯定很大,所以早点的话入学前就可以准备了。与入学的实习相对应的是第三个学期的全职,最后一个学期大家都忙着就业也没什么时间,所以建议大家把workload大的课程放在第二个学期。

CMU会提供很多career service,改简历、模拟面试等,都对我们找工作起到了很大的帮助。学校的career fair规模很大,过来招聘的公司也都是大厂,总体还是让人满意的。据说上一届有些学长学姐在美国这边找到的工作收入都非常可观,也有一部分人选择回国,收入也很不错。即使不是所有人都在毕业前就找到了心仪的工作,但是最后大家的去向都是很好的。

另外找工作不得不提的就是networking,CMU有丰富的校友资源,学校会时不时地组织校友来和我们分享经验、介绍业界前沿方向等,我们抽时间去听时也要学会利用起来,多和他们交流沟通,慢慢地就会熟起来。有时候我们漫无目的的海投不管用的话,不妨去尝试一下networking,获得高质量的内推。





  

相关话题

  2019年,程序员眼中最好的互联网公司是哪些家? 
  2020 年秋招,如何进入知名互联网公司? 
  38岁,在互联网公司中是能力强的管理者,年底被裁员后,求职屡屡碰壁,怎么办?(咨询案例)? 
  如何看待陈天奇加入CMU? 
  官方下发通知限制网络游戏企业向未成年人提供网络游戏服务时间,将会给相关游戏股带来哪些波动? 
  芝加哥大学对于中国人本科留学生而言是怎样的学校? 
  如何评价 ofo 小黄车推出拉好友帮退押金功能,ofo 还有翻身的机会吗? 
  从何时开始“BAT”变成了“AT”,百度为何掉队了? 
  如何看待陈天奇加入CMU? 
  中国互联网公司员工平均年龄出炉,平均年龄最低 27 岁最高 33 岁,反映了什么问题? 

前一个讨论
211加权均分74,有希望申到澳洲八大的计算机硕士吗?
下一个讨论
美本top30里哪个cs专业比较好申请?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利