cmu ece(sv+pitts) 17fall入学选课分享

28576
37
今天非常不想学习,准备写个帖子介绍一下很多人已经介绍过的cmu ece 算是转专业向介绍...一般基础很好的同学都比较有自己的目标,要么一堆系统课要么一堆ml, 我属于啥都上了一些...

楼主17fall ece, 第一学期在硅谷校区,之后两学期在匹兹堡。对两边情况都稍微有点了解。今年看到很多本科师弟师妹18fall或者19spring来cmu感觉很欣慰,突然也想着介绍一下自己选的课...

先直接说一下选课,听说18fall之后选课限制加大,但是17年入学的感受是ece可能是cmu选课最自由的项目之一...5门核心课涉及范围非常广,可能最后一门ece的课都没上过就稀里糊涂毕业了....ece自己也有许多不错的课程或者和cs cross-list的课程(共享课号,内容相同,算ece学院课 & 核心课)

我上过的课有以下:
第一学期
18600 intro to computer system
这个课是和15213/513 内容几乎一样的课,作为广大系统课的先修课,还是ece的核心课,可以说必须一上...这门课的内容确实经过了许许多多年的进化演变修炼,非常的经典。是我感觉cmu最不可错过的一门课吧,性价比很高,投入的时间不算很多,收获很大。对找工作可能没什么直接帮助,但是这种内功还是必须要修炼一点的。不过我个人感觉ece版本的18600讲课水平有待提高,比起513还有差距...下半学期几乎不去上课了,写作业+看513视频应付过去...这门课是sv和pitts广播共享,通常instructor一个在匹兹堡 一个在sv 轮流广播 还会学期中间走访。广播效果还是不错的,不会影响到上课。这个课确实是转专业同学必备良心好课,上完之后对很多东西都有了概念,作业也是很经典。很多时候感觉做作业+为考试复习的效果比上课好(可能是600讲的确实不怎么样) 不过每学期都会换instructor的样子 然后这个课作业大家努努力都能满分,不过style扣分挺严格的,拿A比513难很多,几乎全看考试。考试刷好往年题,ppt就没啥大问题...然后考前的ta recitation一定要去,模拟卷好好做...都是血和泪的经验...

18652 foundation of software engineering
这门课是sv se的必修课。spring学期会广播到pitts。这门课其实挺不错的,对简历帮助很大,会用到很多web tool/library/framework。 语言呢就是js, 上课比较扯,讲各种software engineering practice,非常非常非常的理论?感觉不知道有什么用的那种扯...一开始会有一个hw0 用socket.io作middleware写一个非常基本的nodeJS(expressJS) 为后端的聊天室,非常非常基本。作为毫无正经web开发经验,瞎搞了大概两三天搞出来了作业和视频介绍...不过想上这个课可以提前了解一下作业评估一下自己能上不,如果这个非常struggle那么可能整个学期的组队作业都会成为拖后腿的存在2333。这门课全程就是组队做一个老师规定好的project,强制使用node(express)作后端,其他好像没什么要求。如果你选一个很潮流的技术栈,就对简历加分很大了(羡慕隔壁组用react/redux)。当时我对web非常不懂,然后强行上了这门课,为了锻炼英语,选组的preference填了mixed 5个人一队队友来自4个国家嗯 真的mixed。这门课让我真的怕了印度队友。在队友强力的建议下选了angular当前端 当时我对angular一无所知 后来印度队友几乎啥也不干 0基础硬写整个组的前端 可以说很折磨人了 不过确实这门课的初衷很好,组队项目每两周一个iteration,所有人一样的项目要求,一样的requirement和feature 每周要给助教会报进度,两周一次给助教demo,中间大家各种git practice, code review, ci/cd,testing testing & testing, 检查代码风格甚至还有pair programming。不过这门课两周一次iteration被我们生生搞成了1天一次iteration, 一个队友把控大局,我和另一个老哥一个写前端一个写后端,最后代码真的很垃圾,但是老师非常喜欢其中一个队友于是得分很好看...期末会考试,单选、不定向选择、简单js testing 代码,无法复习的那种...想拿高分 上课积极参与...组队好好做,让队友喜欢你...不过这个课其实很难说,因为全是自学写web中间掺杂了各种不正确不规范practice,还是要有点基础再上或者组里有经验的大腿比较好,看着室友每周几乎不花时间在这个课上,一只菜鸡的我强行搞 还要时不时demo前一小时修队友的bug 有苦说不出...

10601 intro to ml

这门课,秋季学期会有一个section可以广播到sv, 在cmu上的最轻松愉快的一门,tom版本 上课节奏很慢讲的很清楚,把ml常见的一些算法概念介绍了一遍,cnn很认真的推导了中间一步步该怎么做,很清晰了。还有很多其他算法,有的详细介绍有的省略,不过我个人感觉除了vc维那些理论 都介绍的非常明白。如果之前没上过ml又很想接触一下,值得一上。作业是python, 编程的部分很少很简单,还有一些选择填空简答作业,不过tom好像不常上这一门课,其他instructor貌似特点也差不多...作业很简单,考试很简单,周花费2小时,我们这学期没有project。可以说把ml稍微学了一点点...但是没有涉及到各种流行的deep learning 框架 收获还是有的...这门课很适合上4门课当水课搭配一下...拿A非常容易...期中考试安慰了我600雪崩的心情,期末考试题贼多但是也很简单...

第二学期

这学期转回了匹兹堡,学期开始前找到了实习,摩拳擦掌准备大学一场...但是事实发现选课失误 不考试就没动力好好学习,比第一学期还轻松:(

15719/18847 advanced cloud computing
这门课是和cs学院cross-list的一门,感觉质量还是可以的。不过和ds有很多重复的内容,所以如果一起上ds 可以达到两门功课同步学的神效hhhh。这门课还是大力推荐ece的同学上一下,一个是load很神奇,前紧后松,上半学期花了不少时间在acc上,期中考试之后这门课如同不存在的。和其他课前松很紧形成了很好的搭配和对比...比起cc这门课的load小很多,三次project,第一次autoscaling with terraform 大概算是aws各种api熟悉一下 第二次spark各种操作,python写。当时年轻不会spark, 也没怎么跟大神们交流一下,和男朋友一起闭门造车各种爆内存超时间...后来学乖了去office hour,听听大神们的思路,回家再布道开始写就愉快多了...这门课的spark project个人还是很喜欢的。第三次应该是难度比较大但是被我以及绝大多数人做水了的一个project,c++的job scheduler自己设计一个合理的schedule算法最后要写报告...给我的感觉是这个project考验的是助教,各种yarn thrift搞上去很厉害的样子...而我们就是简单的瞎搞搞...上课的内容和project关系不大,读各种经典的有关云计算/ds的论文,因为考试的缘故学得还比较扎实。不过跟秋季go老师讲课水平一对比有一点点高下立判...作为核心课值得一上,推荐一下。当然和600类似的是 project几乎不会扣分,于是成绩又是almost被考试决定...

15688 practical data science
这门课属于走马观花型,ds从crawl data from multiple source到clean到analyze/visualize/ml 都搞了一遍,各种ml算法也走马观花的讲了一下,听师兄师姐介绍这是一门小cc工作量的课,于是把它当了个硬课选,最后可能是cc十分之一工作量的上了一下...但承认自己没有好好上课... 这门课也是广播到sv 作业坑很多,ta不是很responsive 于是都拖到很后面写 面向piazza编程 花费的时间确实很少...但是组队的project短时间做出来还做的挺满意,后来发现这门课其实设计的很多地方还是不错的。不过再给我一次机会大概率不会上了...对ds感兴趣的同学还是可以一上的 不过从这门课开课的频率来讲 不知道什么时候会再开

10703 reinforcement learning
广播到sv, ece核心课,上了online section, 这门课讲的东西很硬,老师很强,作业很刚,给分很水,project是水过去的没啥大的收获...但是出于不知名的原因,project好像大家都是满分...这门课作业是用openAI gym + tensorflow 实现了很多rl里潮流的东西,比如dqn, a2c, reinforce, imitation learning,大概认真的上课上了半个学期因为不考试坚持不下去了,每次都是作业考哪我学哪,真的挺可惜的...这门课也体会了一下炼丹的神奇,经常是我睡了aws还在为我整晚工作着...rl感兴趣的同学还是强力推荐一下的,老师很良心,讲的东西也很新,但是不好好上就会沦落到跟我一样...过了一个暑假仿佛从来没学过那样。此处反省100s。

11642 search engine
老师讲的很棒,但是上了半学期上不下去了...讲的是比较传统的search engine,公式满天飞,考试需要记很多东西,但是感兴趣的话还是很有意思的。对我比较头疼的是,真的很像一门英文读写课...每周课前需要读老师指定的内容,写一篇读书笔记,代码期中前的作业大概是一下午的量,但是要花费很久做实验写报告...不知道期中考试之后有没有变化。不过确实 老师讲的很好,然后我感觉老师的java代码的架构还是值得学习一下的。这门课load不大很稳定 不过确实很需要耐心...

第三学期
要毕业找工作...于是这学期也不敢很刚...

15640 distributed system
这门课要强力推荐了!非常喜欢!而且感觉很有用...老师讲的真的好,此处高亮加粗表扬一下daniel 和 yuvraj,特别是跟acc类似内容对比一下...这门课homework+project+期中期末,load不小,用的是非常喜欢的golang..因为去onsite面试耽误了很多课 发现老师的ppt做的真是一言难尽啊...能去上课一定要去上课...project内容我也感觉蛮喜欢的,写完就深深的爱上了go, 和春季写c++的同学们对比一下工作量,还是小了很多...其中第二次、第四次两个人组队写作业,和男朋友通宵一晚上打双排写作业感觉不要太愉快。其实project和homework倒是还好,上课讲的真的挺不错的。各种ds比较基本的东西都有涉及,详情可以看一下syllabus, synergylabs.org 就不再多做介绍了...期中的给分也是一言难尽 前百分之十也是拿不了A的...

11601 coding bootcamp
cmu的刷题课,课本cracking the code interview,这门课感觉第二学期上比较合适...这样秋招的时候就很有用啦。工作量很小,每周需要写作业(hackerank) 需要和同学互相mock interview并且打分,可以很清楚的根据grading rubric看一下一个好的面试是怎么样的...以及从别人身上发现问题发现长处互相学习,感觉还是挺不错的,题目来自课本。语言仿佛会涉及java/python/js 不过还没有到js的地方还不太敢确定...因为好朋友当助教才知道的这门课,选的比较晚,差点没有选上...上课老师讲的一言难尽全当不存在的,不过这个课的流程尤其是mock还是挺不错的,非常小的工作量以及强行刷题也是挺不错的...

11785 deep learning
这门课工作量一言难尽可大可小,老师非常刚,上课拿一把大宝剑指点江山,作业炼丹云里雾里,微信大群氛围特别好,看大神们如何搞自己跟上。用的是pytorch 作业是有关语音的层层升级 第一次作业硬写mlp的实现,可算是把back prop矩阵运算痛苦的倒腾明白了...batch normalisation以及它的backward也要自己from scratch的写...感觉到自己弱小可怜又无助。每周还要做很刚的quiz...感觉自己还是不太适合deep learning,每天都在后悔为啥我又上了炼丹课, 这门课也广播到sv... 然后这门课也没有考试 只有作业+quiz+project 所以我又没好好的上lecture...

其他同学上过稍有了解的课如下:
16XXX computer vision 非常传统的cv 每天听周围人怨声载道...说是之前用matlab现在改python很多地方需要造轮子,但是没有考试
17XXX java for application prgrammer/ data structure XXX java 两个mini course 据说讲的很好很系统...给分不是特别好但是转专业的同学可以一上
17637 web development web课对简历还是有用的...选了两学期都没真的去上...一看第一次作业要自己画css就非常不情愿的放弃了...但是坚持下来应该还是很不错的..每次有人问我转专业简历上还啥都没有应该上啥..虽然cc对写简历有帮助,但是web还是load小门槛低不容错过吧...
15619 cloud computing 对简历帮助很大 转专业上来硬刚如果队友没有很强力还是慎重考虑... 其实可以考虑acc cc同步学或者acc先上再上cc 很多同学反映cc如果之前没怎么搞过 就有点搞了很多 但是不知道在搞啥的感觉
然后load真的大 第一学期看几个选cc的同学每周六一起通宵 很是感慨...但不知道为什么后来上cc的同学仿佛没有那么辛苦了?毕竟cc每年都改革...
18899 早上八点起来上课的号称ece核心水课 给分好像不是很好...好像也不是很水...但是肯定不硬核...
18631 intro to security 很不幸的是17fall好多同学赶上了换老师...于是作业很难给分巨惨根本不水....至于现在什么样子了 建议大家还是去试听一下 不要根据往年意见做判断...毕竟换了老师就像换课一样
18797 ml in signal processing 评价两极分化...能确定的是load不小...和11785一个老师,可以想像,嗯,肯定比较扎实的一门课

10701 intro to ml(phd) 核心课,每学期因为老师都在变化 所以难度变化很大,18spring学期难度可能只比601大一点点,而且grace day 特别多...但是秋季学期期中考试哀鸿遍野

一些小体会:
1. cmu的课真的是非常丰富,总有你喜欢的合适的...但是比较心酸的是开学之后只有第一周能试听换课,所以感兴趣的课一定要赶紧选上或者加到wl里 开学再纠结...当然有online session的除外,什么时候都能选上。另外移民局要求国际学生每学期至少36学分(3门课),至少24学分是physically meet(非online)选课还是要搭配好 以及记得5门核心满足毕业要求
2. 总的来说系统课经过长时间的演变进化相对比较完善...特别是上古流传下来的课程,确实质量比较高。ml的课程内容都很新很不错,但是如果自律性比较差...那么不考试开放选题project的ml课很可能让你...一事无成...像我一样....
3. 硅谷校区因为很小 大家交流比较多 pitts这边ece人很多 很分散 如果你不自己多social一下很可能就落单了...像找工作找实习之类的 我对pitts同学大部分都不了解..对sv反而知道的更多...(也可能因为我是转到这边来还没有去pitts orientation) 一开始我比较担心ece选课会不会优先级太后,在cmu 众多好项目里会不会太弱之类的...但其实个人感觉没有遇到这些问题...找工作还是看个人实力运气以及积极的态度...hr可能也分辨不太出来cmu这么多项目哪个强哪个弱 还是看你的个人经历
4. pitts房价真的便宜太多!我们从硅谷校区转来的几个人一起租了个大house,于是成为了匹兹堡根据地,逢年过节在家里整一波大的,良好的氛围还是很不错的,大家也可以考虑和同项目的同学住house多多交流 上差不多的课找工作找实习互相交流互相帮助,真的很方便...很多住公寓的同学跟我们玩的很好,经常来我们家过夜写project 非常羡慕我们哈哈哈哈。每个人有自己的空间也不会互相打扰...(打个小广告 松鼠山大house转租,有意者可以帮忙凑室友,跟房东直接签合同,送家具!)

差不多就这么多,希望大家enjoy cmu生活!