原址

课程介绍

下面从我了解的课程的各个方面给大家介绍,以供参考。

18600 Foundations of Computer Systems 简介:算是转码系统方向的必修课,和计算机系统入门课15213/15513类似,整门课学完后对计算机体系能有一个基本的全面认识,有助于为后续课程打好基础。
课程内容:计算机体系基础概念:0/1bit操作→进程→cache→并发→虚拟内存→proxy等。
授课方式:传统授课模式加相关lab练习,有配套课程CSAPP;ps:如果觉得老师授课比较单调不太喜欢,可以自己参考513的课程和网课。
作业考试:作业包含7-8个内容比较丰富的lab,要求用C语言在Andrew Unix machine环境下实现,而且coding style最后也会计算进分数。同时会提供start code和清楚的handout以及比较宽裕的时间,所以总体来说不是很难。 关于考试,包含期中期末两次,特点是题量大且出题灵活,相对难度大一些。
关于课程和lab更多信息还可以去官网查看:http://csapp.cs.cmu.edu/3e/labs.html17637 Web Application Development 简介:学校为数不多关于Web知识的课程,因为课程相对好理解且易上手,推荐跨专业转码新手选择。
课程内容:授课内容比较基础,知识面广,对网络的各个方面基本都有涉及。
授课方式:讲课风格和授课老师有关,有传统的授课模式也有,授课与实践相结合的方式也有,各有利弊,可以提前邮件咨询自己的代课老师。
作业考试:作业的话分为前后两部分,前半学期是基于模板实现一个小型的网站,这个网站不是一次成型,而是通过平时若干作业不断添加功能开发,最后所有作业会提交到GitHub的课程repo里。后半学期的作业会加大难度,通过2-4人组队来完成较之前稍大型的网站,类似online game、piazza那样,过程和前半学期差不多。考试最少会有期末的那次,考试内容一般是选择填空简答题,其中难度比较大的是手写Django app。

15640 Distributed Systems 简介:名气比较大的系统课之一,授课老师都比较牛,能学到很多有用的知识。
课程内容:春季授课内容偏底层基础,有RPC、caching、distributed file system、scaling、failure recovery等,秋季授课内容偏应用,加强了分布式系统的一致性内容。不过选此课的要求比较高(600/513至少是B),且最后给的分数历来不会很高,想要刷GPA的同学需要考虑一下。
授课方式:project都使用autolab提交,有coding style分,课程整体内容多压力较大,比较充实。
作业考试:整个学期总共有4个homework,题型和考试差不多,分为简答题和计算题。考试分为两个,期中和期末,特点是难度不大体量很大且考察的知识点细节很多,比较难拿到高分。 15719/18709 Advanced Cloud Computing 简介:高阶系统方面的优秀课程之一,由行业大拿Greg Ganger和George Amvrosiadis开设, 课程中还有机会听行业大佬的演讲,了解工业前沿进展。
课程内容:课程包含了cloud computing领域中的经点概念以及相应的系统实例,从多角度让你深刻理解cloud computing。
授课方式:首先ACC课程春季开课,暂时没有秋季班,选课的时候推荐同时选DS,两个课程在内容上可以互补,效果会更好。授课方式上主要是传统的授课模式,课前也会布置一些相关论文或文献帮助同学加深理解。两个老师讲课各有特点,Greg讲课风格比较幽默,内容深入浅出很好接受;George讲课风格较Greg严肃一些,比较重视互动。
作业考试:课程project是使用 Python和Go等语言,在AWS完成的。一共要完成三个,分别是基于spark的大数据ETL、模拟Kubernetes scheduling以及scaling policy设计,总体来说代码量不是很大,不过相关记录和细节比较繁琐,除新手比较难掌握外,load适中。关于考试,也是期中期末两期,题目设置灵活,多为简答题,需要运用课程上教授的内容来论证自己的观点。

17514 Principles of Software System Construction 简介:由ISR开设,类似软件工程的基础经典课程,非常实用,有助于面试,适合想了解JAVA的转码新手。
课程内容:偏向软件设计基础内容,涉及方向从class level一直到system level都有,其他的软件相关概念如测试、防火墙等也都包含在内。
作业考试: 作业的完成基于Java,提交方式大部分基于GitHub和Travis CI。数量上总共有6个,除了第五个需要团队协作外都是个人完成。难度的话,除了第四个Carcassonne代码量极大相对复杂外,整体难度还可以。 考试的话有期中期末两个,平时认真学习的话,没有什么难度,不需要担心。 15651 Algorithm Design and Analysis 简介:重要的算法课程,授课老师为行业先驱,有深度,难度大,建议有基础的人选择。
课程内容:课程内容涵盖面很广, DP、DFS、max flow、hashing以及一些课本以外老师自己的理解都会加入到课程内。
授课方式:之前的两位老师Gary Miller和Danny Sleator都是行业的领军人物,授课各有风格,不过讲课速度偏快,知识量比较密集。
作业考试:作业总得来说,从难度和量来说都比较大,总共7个作业加一周一测试,形式基本是3道算法加一道编程,都和平时上课学的知识有关联,不过难度都比较高,所以一般是3人组队完成而不是单人完成。考试包含期中期末两个,难度同样比较大,给分也很严格,最后基本只有五分之一能拿到A,剩下一半B一半C。

15746/18746 Storage Systems 简介:以存储系统为核心的系统课,授课老师硬核,内容详实有深度。
课程内容:包含存储系统的各个方面,有概念讲解,FFS/LFS等经典文件系统的实现细节以及一些实例和具体应用,关于存储系统的各个方面基本都涉及到了。
授课方式:秋季开课,与15719/18709课程开设老师一样:Greg Ganger和George Amvrosiadis,授课由这两位老师共同完成,后期还会邀请一些大拿做讲座。
作业考试:project总共有两个,一个简单一个较难,都是基于AWS用C/C++完成,前半学期完成第一个模拟实现SSD中的flash translation layer(FTL),相对简单;后半学期基于FUSE实现一个hybrid file system,功能比较复杂,代码量也大。考试依然是一个期中一个期末,考察方式比较灵活,虽然是对平时授课中各种概念的考察,但是要理解的更深度透彻一些。

  • 其他推荐

除此之外,还有一些我觉得还不错在这里推荐的课程,
像适合小白的17681 Java for Application Programmers/17683 Data Structures for Application Programmers两门mini课,压力较大但会收获颇丰的经典系统课15618 Parallel Computer Architecture and Programming,
想要了解数据库且写过C类语言的童鞋可以选择15645 Database Systems(选不上的话也可以找找在线课),高质量的网络课15641 Computer Networks,651的进阶算法课15750 Graduate Algorithms,以及计算机图形入门课15662 Computer Graphics等等。
ML课里最推荐的是帮你巩固理论基础的18661课程,
System方向的话,强推15513 Intro to Computer Systems,
还有进阶系统课18709/15719 Advanced Cloud Computing, 18746/15746 Storage Systems等都可以考虑。
当然还有一些水课,例如24780 Engineering Computation、18749 Building Reliable Distributed Systems、18794 Pattern Recognition Theory等,选之前最好慎重考察一下。
最后,每个人对于课程的感受可能会有所不同,选择的时候也不一定非要听别人的,可以作为参考。

申请要求

CMU ECE Master对申请者的背景要求不是很高,不过从入学后的学业压力考虑,建议有计算机背景的非文科生申请。
成绩方面,学校要求学生提供GPA、 GRE和语言成绩,结合以前录取情况,最低要求为GPA3.5+,GRE320+,TOEFL105+且语言成绩对于小分也有要求:

IELTS:总分≥7;R≥6.5;L≥6.5;S≥6;W≥6;TOEFL:总分≥84分;R≥22;L≥22;S≥18;W≥22。 更多详细信息大家可以访问官网网址:https://www.ece.cmu.edu**

实习就业

大体来说,在CMU找实习机会并不是很难,一方面学校会提供很多就业支持,帮忙改简历,组织招聘会之类的,学校还会不定期组织Google, Nvidia, Facebook等大公司的tour和校友见面会,加上地理位置比较优越(有校区在硅谷),接触资源比较方便,加上学校本身的名气,同学大多都能找到满意的实习机会。
不过这并不意味着就可以坐享其成,因为毕竟学校的影响是有限的,自己也需要提前一个季度联系实习机会,多联系学长学姐等校友资源,积极争取内推的资格,多听听他们的面试、工作项目经验,多参加招聘会。此外,为了后面能腾出时间做实习准备,在课程选择上,也就不要把压力大的课程放在最后一学期了。
有了前期实习的基础,就业也就不那么困难了。ECE就业率还是很客观的,特别是位于硅谷校区这边,就业率达到百分之八九十还是有很大可能的。即使最后选择回国就业,收入也是相对比较高的。