[选课] 2019Fall CMU ECE SV 个人选课。网络资源汇总。就算选完了课也还要看看。

选课前的了解

CMU ECE选课 https://blog.csdn.net/he_wolf/article/details/14157949

一个正统的cs科班出身的学生 他得会

一个门派:一种语言
一个武器道具:数据结构 算法
一种内功:操作系统 计算机相关(比如数据库 存储系统 网络)

M.S. ECE/SE@CMU-SV 选课向介绍
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=316668&highlight=CMU%2B��

5门ECE核心课(ECE graduate level课和CSD 700以上课都算ECE Core)+3门选修课毕业(注:因为国际学生需要每学期修满3门以上课来保持fulltime身份,所以实际最少修9门,最多修10门,也就意味着最后一学期你还是要交2万多刀的学费哦)(再注:根据ECE新规定,18fall开始,ECE的MS只能修4门外系课)
SE核心课列表
18-652 Foundations of Software Engineering
18-653 Software Architecture
18-658 Software Requirements and Interaction Design
18-654 Software Verification, Validation and Testing
18-656 Data Intensive Workflow Development for Software Engineers
18-657 Decision Analysis and Engineering Economics for Software Engineers
18-697 Statistical Discovery and Learning
18-600 Foundations of Computer Systems
18-638 Mobile Security
18-644 Mobile Hardware for Software Engineers
18-645 How to Write Fast Code
18-655 Service Oriented Computing
18-659 Software Engineering Methods
18-747 Wireless Device Architecture
18-842 Distributed Systems
18-843 Mobile and Pervasive Computing
18-600 Foundation of Computer Systems

10-703 Deep Reinforcement Learning & Control
Ruslan的课,据说很难听懂。。我作为一只菜鸡看了看往年的作业果断放弃。如果明年我数学有所长进再来战吧。(注:这门课算ECE核心课学分)
11-785 Introduction to Deep Learning
也是这学期新开到SV来的网课,但是视频是放在YouTube而不是Panopto上,所以视频质量比较一般,会留13个quiz,5个assignment还有一个final project,没有考试。(注:这个课老师要求参加recitation,最后project report有presentation,所以不受网课限制,利好)

15-688 Practical Data Science
Data Science入门合集,从抓数据到数据可视化,处理数据,分析数据,一学期5个homework加期中自己写一个tutorial给大家看,期末一个project从0开始搞一波数据分析。噢对了,他也是一门(纯)网课。

15-619 Cloud Computing(CC)
CC一度是SV唯一能选的CS课,也几乎是SV每个中国学生必选课,然而因为巨大的时间花费以及选课的丰富,CC的热门程度可能会降低,但是CC作为一门纯project+online课,巨大的作业量和很实践的project使得基础不好的同学可以很快补充一些码代码的经验并丰富resume。。
10-601 Introduction to Machine Learning
这课一般只有fall才会开到SV来,17fall的prof.是Tom Mitchell。。本来是一门入门的ML课,据说被Mitchell大爷讲的不是很简单。

经典15-213的ECE版本,把Attack Lab改为选做(好像做了也没有bonus。。),加入了Arch Lab,也就是说这门课会加入CSAPP中被常年无视的第四章。。作为平衡,好像去掉了链接相关内容。。emmmm 这门课是SV跟匹兹堡一起上,两边各一个老师,不同lecture轮流讲,即有时候SV坐在教室看电视,有时候匹兹堡看电视,老师讲课比不上15-213。
18-647 Connected Embedded Systems Architecture
这门课可能是ECE workload最大的一门课了,要从板到云搭建一套嵌入式系统,老师是从工业界过来的,以前是Nokia的CTO,感觉人挺和蔼,但是要求很严格,每周要到实验室做实验跟project。
18-652 Foundations of Software Engineering
SE必修课,目前ECE已经很难选上这门课了,课上就是讲一些Software Engineering的方法,然后会要4-5人组队做一个Full Stack project, in Node.js… From 1point 3acres bbs
18653-18659 SE套餐
基本ECE都选不上了,SE同学可能需要选一些满足核心课要求。我是ECE的所以也没有过多了解,如果有想去SE的同学可以自行了解。
18-751 Applied Stochastic Process
一门数学课,是从匹兹堡广播过来,老师上课会用pad写推导过程,这是我听得最认真的一门课,第一节课SV只有大概10个人,目测一半的人是PhD。然而因为对找工作帮助不大,所以我还是drop了。。
18-799 Advanced Machine Learning
好了我要开始吐槽了。。我是不太知道CMU怎么会有这种教课水平的老师存在,上课就是坐着念PPT,问题是PPT做的还很烂。。果断drop

总结一下,从SV选课来看,以下三门核心课因为老师走了的原因没有了(DS不确定原因)
1、how to write fast code
2、java smart phone
3、18 distributed system

但好消息是有几门新课加入了
1、15688 practical data science (回归)
2、10703 强化学习 (匹兹堡远程新课)
3、11785 深度学习 (匹兹堡远程新课). check 1point3acres for more.
4、18739 Security and Fairness of Deep Learning (匹兹堡来SV的老师开的)

CMU SV-SE 入学一学期体验 + 选课介绍
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=466151&highlight=CMU%2B��
18652 软件工程基础
这门课主要教授软件开发的流程以及实践方便,有一个很大的project贯穿课程始末, 这门课我觉得质量还是非常高的,毕竟是SE专业的必修课,由于这门课的project主要是基web的上完这门课可以对web开发有一个较为详细的了解。有期末考试
课程语言:Javascript
课程评价: 4.5/5
课程难度: 3.5/5(科班) 4/5(转专业)

18600: 相当于操作系统吧,这课我没上,毕竟本科已经被怼过一次了,看周围同学的状态, 也是非常hard的一门课,由于我没上这门课,具体不是很清楚,有期中期末考试。
课程语言:C
课程评价: 4/5(估计)
课程难度: 4/5(科班) 5/5(转专业)

11785 深度学习,有自己的课程网站 http://deeplearning.cs.cmu.edu/ 内容可以上去看,有4个大的HW和一个project,HW全是要上Kaggle打比赛的,大神疯狂刷榜,简直让人怀疑人生。这门课号称拿A就是deep learning specialist了,load够大,作业够劲,quiz让人更是欲罢不能,推荐有ML喜好的人选。没有考试
课程语言: Python
课程评价: 5/5
课程难度: 4.5/5

11751/ 18781 语音识别与理解 这门课主要教授如何构建一个语音识别系统,大部分是理论,4次HW也基本上是理论推导,编程较少,有team project和期末考试。
课程语言: -
课程评价: 3.5/5
课程难度: 3/5

15619 云计算 据说是招工神课,当然load也是很大,还没有上过,下学期上了来更新
课程语言: NA
课程评价: NA/5
课程难度: 5/5(据学长学姐描述)

18655 service oriented computing 用JAVA的一门课 我没有上过,但是看周围人的反映来看,争议很大。

我上过的课有以下:-baidu 1point3acres
第一学期
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不大很稳定 不过确实很需要耐心…

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

cmu ece(sv+pitts) 17fall入学选课分享
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=455110&highlight=CMU%2B��
15640 distributed system
这门课要强力推荐了!非常喜欢!而且感觉很有用…老师讲的真的好,此处高亮加粗表扬一下daniel 和 yuvraj,特别是跟acc类似内容对比一下…这门课homework+project+期中期末,load不小,用的是非常喜欢的golang…因为去onsite面试耽误了很多课 发现老师的ppt做的真是一言难尽啊…能去上课一定要去上课…project内容我也感觉蛮喜欢的,写完就深深的爱上了go, 和春季写c++的同学们对比一下工作量,还是小了很多…其中第二次、第四次两个人组队写作业,和男朋友通宵一晚上打双排写作业感觉不要太愉快。其实project和homework倒是还好,上课讲的真的挺不错的。各种ds比较基本的东西都有涉及,详情可以看一下syllabus, https://www.synergylabs.org/courses/15-440/syllabus.html 就不再多做介绍了…期中的给分也是一言难尽 前百分之十也是拿不了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…

其他同学上过稍有了解的课如下:. 1point3acres
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 特别多…但是秋季学期期中考试哀鸿遍野

ECE MS @CMU 转码菜鸡 入学半年心得及择校建议
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=476334&extra=page%3D3

CMU CS System课程介绍
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=97038&highlight=CMU%2B�γ�

CMU转学CS感受+课程介绍
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=113843&highlight=CMU%2B�γ�
第一学期,15112,15122, 15150, 02713

CMU CS 课程介绍
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=210509&highlight=CMU%2B�γ�

CMU ECE ML/System两开花选课攻略
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=502216&highlight=CMU%2B��
首先ECE三个学期96学分毕业,但实际上为了保持F1学生身份,每学期至少36学分,所以其实是108学分毕业,但是最多又只能选120学分,CMU正常课程是12学分,mini一般是6学分(没修过mini不是很了解),所以如果不选mini的话正常是9门或者10门课毕业。

ECE的选课政策允许我们选择4门CIT(工学院)以外的课程(肯定都选SCS的了),看起来不多,但是其实由于ECE有很多和CS cross-list的课程(即同一门课,一起上课但课号不一样)以及很多CE和ML方向的课程,所以对我来说其实4门SCS课完全够用了。
这个core基本就是ece的课186以上, 别的学院的7level的课及以上, 个别例外会在每年更新的handbook里面给出来。 可以直接google 年份+cmu ece handbook, 或者看这个https://www.ece.cmu.edu/programs … s-requirements.html

ML课程推荐18661,ECE的Intro to ML

11661 Search Engines (不是非常推荐,内容和作业都很好,但是考试死记硬背太蠢了)
11747 NN4NLP(牛逼哥的课是真滴挺牛逼,可能是我来cmu以来听得最认真的一门课了)

10707 Deep Learning(后悔没选另一门deep learning 11785,10707的课程设计问题比较大,但是好在还有team project,想做啥尽管冲鸭)
10707 Deep Learning, Russ 大佬讲课。 这个课是个core, 三次作业, 手写neural net + 手写 restricted Boltzman machine还有autoencoder这些 + 手写language model, 每个都是手撸一个ML的经典模型, 不许做平台玩家。 个人觉得不难。 三次作业花时间最多的分别是(手加batch normalization & cd algorithm及玄学调参 & embedding layer更新啥的搞明白)。有midterm没final, midterm好好准备我觉得也不难但是考完可以说大家哀嚎得比较厉害? 有final project, 很开放, 爱做啥做啥, ML相关就可以。 Russ是真大佬, 偶尔还会发个fb吐槽我们超可爱(为什么我觉得这些老师都这么可爱??)。 TA回复不如601及时且不如601回答切题细致, 但是可以理解为这是7level的课就是要你自己思考……(微笑)我个人想给这个课颁一个“水core”的title……

10601 Intro to Machine Learning, 是郭美丽讲的,不是老教授但是个人觉得他讲的非常非常认真+细致。 刚来的时候觉得不适应感觉每节课都是空中投递式教学, 他会在电子屏上给你写茫茫多的证明+例子+公式, 但是上了这么多课以后发现emmm我最喜欢郭美丽讲的课了…… 当时的课程主页 http://www.cs.cmu.edu/~mgormley/courses/10601-s17/index.html
作业(background + bayes + 回归 + perceptron + 读paper及互相review + svm/kernel + cnn + hmm&bayes net + 小project), 有background考试有midterm和final。 个人觉得load并不小, 也可能是因为第一学期我实在是不适应,泪目…… 课程用gradescope用autolab用QnA, 作业基本都会包括选择填空+coding +math。 TA piazza回复很及时, 老师也是又帅又可爱。 另外很有趣的是可能因为是MLD的课每次的statistical结果给的都跟。。emm。。专业, 以及分数评定细则也都很新颖, 觉得老师和TA都炒鸡用心。 带着私心想五分推荐这门课。

18755 Network in real world, Radu教。看这个名字就是到是个奇葩哈哈。 选它为凑core。。这个课要用一个叫Gephi的奇怪的软件, 我要吐槽这个软件超难用且对mac很不友好。。。三次作业没考试有一个project, 听起来是不是好棒棒? 作业就是network相关的比较无聊,每次作业也都有coding, 不难, 然后用各种奇怪的软件分析这个分析那个。。。作业设置的不是很清晰。 接下来我要吐槽project了,每周都要meet一次TA, 4个milestone, 每次都要ppt+录video presentation+ live QNA。。还有个paper session很多选题你们小组选一个回去读然后课上presentation+QNA, 也有paper review, 总之radu爷爷的鬼点子很多啊……我觉得这个课。。没啥用,不是很喜欢

15513 Intro to Computer Systems,ECE有与之对应的18600

进阶的系统课有18709/15719 Advanced Cloud Computing, 18746/15746 Storage Systems (ECE/CS cross-listed), 15640 Distributed Systems, 15xxx Computer Networks 和 18xxx Computer Networks(两门CN不是cross-listed,内容差别比较大,课号由于我没选过这两门课也不知道,懒得查了),当然还有CMU workload据说最大的Cloud Computing,(Advanced Cloud Computing虽然advanced,但是load小一些,然后CC不需要513/600先修,所以第一学期就可以上)

11-642 Search Engines
15-619 Cloud Computing 选ACC
15-624 Foundations of Cyber-Physical Systems
15-640 Distributed Systems
15-645 Database Systems
15-688 Practical Data Science
16-720 Computer Vision
16-772 Sensing and Sensors
17-637 Web Application Development
17-639 Management of Software Development
17-652 Methods: Deciding What to Design
17-653 Managing Software Development
17-766 Software Engineering for Startups

15605 OS

想选的课:
15213Computer System、一个web相关的、一个数据库相关的、一个存储相关的、一个算法相关的、云计算CC、分布式DS、机器学习ML

课程介绍

课程号 课程名 开设院系 学分 难度 评价 类型 其他备注
15121 基本数据结构 - - - - 计算机基础向 你要本科修过就不必听了,最深到二叉树堆排序
15123 - - - 我的周花费20h 好课,必选 计算机基础向 好课,必选,请第一时间抢课
15410 - - - - - 计算机基础向 好课,慎选
15211 - - - - - 计算机基础向 没了,现在的取代课是用sml编程的15210,喜欢函数式编程的可以
18648 real time embedded system - - - - 算60学分的课【cs向】 archer大神推荐
18645 how to write fast code - - - - 算60学分的课【cs向】 sv的课,archer大神推荐,主要关于hadoop
18642 software management - - - - 算60学分的课【cs向】 sv的课,就是ruby on rails啊啊,lz我上过,坑= =。叫你如何在一个大团队里从0开始学ruby,呵呵。周花费18h?前半段松后半段紧
18641 java smart phone - - - - 算60学分的课【cs向】 sv的课,前半段java基础,后半段android,sv远程,12fall首次开上,坑= =。手把手自学android。周花费15h?前半段松后半段紧
18649 distributed embedded system - - - - 算60学分的课【cs向】 java写电梯写文档?具体不知,没上过
18746 advanced storage system - - - - 算60学分的课【cs向】 file system,有project的周花时间20h,没project的周不看reading,于是考试前恶补= =
18842 numerical method - - - - 算60学分的课【cs向】 水课,比较轻松
15437/15637 java web application - 做网站,周花费20h - 算36学分的 算36学分的课
10601 machine learning - - - - 算60学分的课【cs向】 【我数学不好,我好好做码农】
18603 leadership - - - - 算60学分的课【cs向】 【大水课,每周10分钟的工作量】

三学期选课规划

学期 课程号 课程名 开设院系 学分 难度 评价 类型 其他备注
第一学期 15213 Introduction to Computer System CS ---- ---- ---- ---- 镇校之宝
第一学期 18243 Introduction to Computer System ECE ---- ---- ---- ---- ----

第一学期建议:先买一本叫做《深入理解计算机系统》或者英文版《Computer System: A Programmer’s Perspective》 自己先学一遍 有个充分的准备

15-600/95-712/15-123——在CMU 不会java或者C就是寸步难行 所有高级编程一律使用java 前两门课是java的(15600还有web方面的知识) 15123是C的 不会哪个就补哪个 BTW 不会C就不要选15213了 那个课是要求C基础的

不过这门课是Operating System(同样是一门及其重量级的课程), Embeded System, Computer Network, Digital Computation, Architecture, Compilers等一大批课程的先修课 所以 必选必选必选!!!!

如果你上学期选了这两门课 并且坚持到了最后 那么恭喜你 你已经打下了一个良好的基础

第二学期你可以选择的课程有
15-211 Data Structures and Algorithms 不太推荐和15213一起 要不第一学期你就直接go to hell了 这门课也是我强烈推荐的 真是能让你的java编程水平上至少一个台阶 你完成了这门课 相信你根本不会惧怕公司给你的题目了 顺带还巩固了数据结构和算法 另外这门课的HW很有意思 第二次作业是贪吃蛇 最后一次作业是国际象棋 而且要下过老师的版本1 r0 b; j* H" e* j) r- W1 [3 m
15-410 Operating System 要死人的课 登峰造极的死人$ p# x: n" u9 Z2 q8 Z( R
15-451 Algorithm design 算法导论为课本 是研究算法的一门课 211告诉你是什么 451告诉你为什么
10-601 Machine Learning MS级的ML 已经难度很高了(记得好像可以petition说算作ECE graduate 详情需要你自己咨询小米)
18-345 Telecommunications Network 基本是计算机网络 就是需要接口编程什么的 是一门好课
18-342 是Embedded System 很打基础的一门课 也很难* l. f* L M7 Z+ T
18-648 Realtime Embedded System 还不错的一门课 需要有213或者342的知识 比较适合第3学期上8

第一学期:
15-213 + 15-600 + 186XX + 你有能力的话就再选
) Z% D’ i8 ?9 r; N! K% ?$ d- Z
寒假:3 C% k/ [5 d* u& _# M$ o$ N% G
放松 + 15-121(网上有课件 可以查到)

第二学期:
找实习 + 15-211 + 下面的路你就有资格选择了 + 当然要记得满足毕业条件(毕业条件请看ECE官网或者我的attachment)

暑假: hopefully有个不错的intern

第三学期: 找工作 + 自己选课 + 说不定想选个project

Distributed System是门不错的课,project还是挺锻炼的,当然,coding乐在其中,professor上课的时候各种开玩笑,努力的尝试去听懂他讲课的过程也让我逐渐了解了些美国文化。这门课介绍的多台机器间synchronize的策略,client和server集群之间做replication的策略,logging,checkpointing,map-reduce, 还有各种分布式文件系统。除了学到搭建分布式系统过程中,每个主要环节的algorithm之外,还有各种tradeoff,虽然project并没让我们自己design并实现个分布式系统,不过,现在了解些原理总是好的。

Advanced Cloud Computing,这学期刚开的神课,本来是博士生的课程,被instructor游说,便加入了这门课,上半学期每次课之前不看论文,觉得上这门课就听听讲课,做做项目,还不算太累,结果离期中考试一周的时候,professor说要考论文!当时就直接给跪了,大约14–15篇论文啊。。怎么可能看得完。。然后期中就考砸了。下半学期学乖了,上课之前先把论文看了,课程听得也比较轻松,东西也很明白,这门课讲了hadoop到yarn,还有开源的cloud项目,如Eucalyptus,openstack。可以把LINQ程序并行化的DryadLinq, 还有cloud storage,如GFS,还有multi-level scheduler,如Omega。key-value store, Security, Network scaling, Geo-replication之类的,基本都围绕着scaling,讲了很多tradeoff。这门课读的paper都很前沿,很棒,感觉在10月出去和startup的CEO,Data Scientist聊天的时候,唯一可以聊的就是这门课上读到的东西。

Multimedia DB & Data Mining. 这门课。。很多同学都很喜欢,但是对于我来说。。是难而且有点排斥的,刚开始的时候,希腊老师讲课听不懂,上课昏昏欲睡,回去后看着堆成山的slides hardcopy,不知从何入手。这门课的作业很麻烦,提交时候还要求格式,光读格式要求就要花1小时,整理花2小时,3次作业才占10%的分数。从时间安排来看,选这门课对我来说是最不划算的。不过逐渐发现它的东西都很实用,比如算两个字符串之间互相变换的最小代价,比如fractal,correltaion integral, kd-tree, nearest neighour, R-tree, 对图像音频的处理,如SVD, PCA, ICA, Fourier, 各种wavelet transformation。怎么说呢。。觉得工作也不会涉及到这个方向,不过借机回顾下高等数学觉得还是挺好的,向量,矩阵神马的,确实大学毕业后基本都还给老师了。。

Applied Machine Learning, 这个如果上完了Machine Learning课,完全不用去上。当时选这个课的目的也是为了做自己想要用来做大的项目。结果呢。。确实申请了把自己想要做的project当做这门课的project,做完后大有成就感,but,因为只是一门课的project,所以自己要做的项目也只完成了这门课需求的部分,还有很多未能实现。毕竟如我所述,CMU的生活太过苦逼,完全没时间顾及自己要做的事(也或许是因为我选课太多了。。)

马上也要毕业了,贡献在地里的第一篇帖子好了。。。主要是介绍一下CMU我上过或者旁听过的系统课程,希望对来CMU想学system的同学们选课有些帮助。

首先,如果只是想学CS找工作而其实对CS没什么兴趣,好好刷题吧,学web或者mobile显然是更轻松愉悦身心的选择,奉劝还是不要去碰系统了,213什么的都完全没必要上。

Prerequisite:
15213(Intro to Computer System)(5 stars): 基础中的基础,如果你想要做OS,这些知识就是最重要的基础(虽然还是很表层的知识),如果想要做稍高层的system,这些知识也要掌握,还是会有帮助的。重要的是这个课会给你打下一个不错(仅仅是不错)的C programming基础,如果pointer什么的都搞不清楚,就不要搞系统了。。。

Intro Level:
15410(Operating System)(5 stars): extremely challenging的一门课(我觉的同等难度的课在CMU还有个两三门,例如compiler,15412)。基本上就是一个学期写一个可以用的,但是极其简陋的操作系统。头两个project相对简单。project 2是写一个user level thread library,project 3是写一个kernel,project 4每年都会有点变化好像,一般是写多核或者unix signal。代码量差不多一万多行C的样子,但是重要的是debug真心恶心,各种race condition呀,GDB一行一行的找BUG。总的来说是很好的一门课,Dave能把这么OS这么老技术的课讲得这么interesting十分难得。而且可以让你对concurrency的理解上升一个层次,上完以后就感觉没有自己debug不出的bug了(显然是个幻觉哈 :D)。缺点就是上完这门课你依旧不知道真的OS是怎么做的。。。所以只能算是OS的入门课程,如果想做OS这个课一定要选,但是上完之后还要选一些更高级的OS课(感觉除了15412,CMU好像没什么这种课。。。我没有仔细研究过,所以我觉的唯一的办法就是去读kernel了。。。18648 real-time embedded system涉及些linux kernel hacking,但是主要是scheduling,lock和file system这部分,感觉还是很浅,也许唯一的办法就是去APPLE/ORACLE/Google作OS了)

15440(Distributed System)(5 stars): 这个课是想做分布式系统的入门课,主要是介绍所有关于distributed system的基础知识,包括网络,RPC, commit protocol,distributed file system,fault tolerance等内容。这个课有两个版本(Greg Kesden和David Anderson)。喜欢两个版本的人都有,我个人感觉因为David Anderson实际上在做这方面的research,他的版本会更系统介绍的更全面,但是Greg这个人很有意思哈,不喜欢他的人一上课就头痛,喜欢的人就觉的他蛮搞笑的,大家就自己选择吧。我个人可能更喜欢David Anderson的风格,但是我上的是Greg的版本。Project里比较好的一个就是写一个MapReduce framework with the underlying file system。我们当时写了9000多行JAVA,感觉还是很有成就感的,虽然基本上任何optimization都没有做。Anyway,强烈推荐上一下这个课。

15415(Database Applications)(4 stars): 这个课其实并不是很system的课,但是我推荐上这门课是因为数据库里涉及的ACID related topics和fault tolerance比较普适,在下面我要提到的一些课程中,这些知识会被一次又一次的重复,但是感觉都没有在这门课里花的时间多,所以我觉得这门课是在这方面打基础的最好课程。其他的知识,比如SQL,B Tree,都是基础知识呀,你要是不懂这些你都不要意思说是从CMU毕业的不是。而且今年的新老师Andy作new sql数据库和main memory database很厉害的呀,也是后面我要提到的advanced topics in database system的老师。

Advanced classes:

15719(Advanced Cloud Computing)(4 stars): 在CMU有两门cloud computing的课,15619和15719。我没有上过15619,但是感觉619完全是engineer方面,换句话说, Amazon EC2 API培训课,但是个人感觉也是很好的。15719相比619更偏向系统设计方面,上课主要是读一些新的论文,比如说YARN, Dapper等比较新的系统。project方面因为这门课实在是太新了(去年是第一年开),所以不是很well designed。我上的时候用的是Open Stack,感觉也是API培训的感觉,但是我感觉收获最大的还是读那些论文,让我对cloud领域新的趋势有了一定的了解,十分开阔眼界。而且课程load不是很重,所以建议想接触一些cloud方向新知识的选择这门课。上完这门课后如果你是VLIS专业的可以选择 15648 Studio Big-Data System。这门课和15719风格很像,也是读paper写project,load也差不多,我个人比较喜欢。如果不是VLIS的同学基本上就选不进15648这门课了。

15799(Advanced topics in database system)(5 stars): Andy在CMU新开的课,强烈推荐,涉及数据库研究的各个领域,第一节课是Paxos,学过分布式系统的人都知道Paxos或者类似协议现在可以说是作分布式系统中实现replica,fault tolerance的基础了。随后的课程就是在每个topic上读几篇paper,NO-SQL, NEW-SQL, Streaming System等等等等。如果想做cloud system和database的同学这门课一定不能错过的,绝对开阔眼界。但是感觉load稍微有点重,每周三四篇paper review再加一个一学期的大项目。不过绝对物有所值的课程!

15749(Engineering Distributed System)(6 stars): 说实话这个课是我在CMU的最爱哈,强烈推荐!!!老师是Satya,他也是AFS和Coda file system的主要设计者。首先要说的是不要被这门课15410 B作为prerequisite的要求吓到,只要有良好的C基础(要比15213的C基础好才行),这个课并不是extremely hard。这门课涉及到了所有实现分布式系统中的问题,从caching, consistency model,prefetching,到content addressable storage(data deduplication),再到fault tolerance等,可以说涵盖了大部分你需要知道的分布式知识。更好的一点是Satya经验实在是太丰富了,所有这些topics听着他娓娓道来,怎样考虑各种现实问题,在什么条件下要使用什么策略,绝对受益匪浅,对今后设计系统有很大帮助。虽然如果你上过前面我提到的这些课,很多知识你都已经学过了,但是Satya的讲解肯定会加深你对这些知识的理解。project方面也很有意思,其中的两个是在coda file system中加一些feature。建议喜欢分布式系统的同学必选呀!

其他一些我觉的值得推荐的系统课:
15412 OS practicum:上一次只有6个INI的勇士上了哈,是做一个学期project的课,topic应该是自选的,难度应该是难于15410的

18746 Storage System: 也是Garth的课,我因为选的课太多实在是没时间上了,不过应该是很好的课,建议有时间的画选一下,但是如果你想上所有我前面详细介绍的课,你不一定有时间的。. 1point3acres

15712 Advanced Operating System: 我记的是David Anderson教的,内容和上面很多的课有重复,包含了Paxos,Dynamo,MapReduce,以及很多系统方面的知识,有project,有时间可以去听下。

猜你喜欢

转载自blog.csdn.net/madao_yw/article/details/89300785
CMU
今日推荐