CMU MSECE 三学期 选课浅评

13911
10
首先说一下我自己的情况。我是2021 Spring入学MS ECE Applied program(三学期,需要实习),今年五月毕业,毕业后去湾区。我本科是强电专业,但是一直有陆陆续续搞软件,入学时有三段大/小厂的SDE实习,在CMU主要是想学习system/backend相关知识。

我的课程安排如下:

2021 Spring:
- 15213/18613 Intro to Computer Systems (推荐)
- 11785/18786 Intro to Deep Learning(推荐)
- 17445 Machine Learning in Production (勉强推荐)

2021 Fall:
- 15640 Distributed Systems (强力推荐)
- 18645 How to write fast code I(一般般)
- 12741 Data Management (6学分 水课 勉强推荐)
- 19672 Tech Startup (6学分 梦中水课 强推)
- 18793 Image Processing (本人噩梦 退)
- 15463 Computational Photography (梦中情课 强推,但是我半路退了)

2022 Spring
- 15719/18709 Advanced Cloud Computing (推荐)
- 18875 Internet Service (推荐)
- 18738 Sports Tech (梦中水课 推荐)

下面是具体评价:
2021 Spring:
这一学期还是比较爽的,基本上是三门码课。

15213/18613 Intro to Computer Systems
- Load: ⭐️⭐️⭐️
- 水分: ⭐️
- 推荐指数:⭐️⭐️⭐️⭐️
- 18613的课程质量可能跟15的有出入,但是课程内容基本上是一致的,CMU神课,没有传说中那么神但是也是很练的。

11785/18786 Intro to Deep Learning
- Load: ⭐️⭐️⭐️⭐️⭐️
- 水分:
- 推荐指数:⭐️⭐️⭐️⭐️
- 11785是一门绝佳的DL入门课,实践和理论并重。上完这门课,作业的Kaggle比赛可以直接写在简历上,quiz和slides中的各种知识点也很有可能出现在面试中。很多同学通过这门课的project成功勾搭的教授然后步入了科研阵营。但是后续可能会取消crosslist,然后ece会自己开一门Deep learning.

17445 Machine Learning in Production
- Load: ⭐️⭐️⭐️
- 水分: ⭐️⭐️⭐️
- 推荐指数:⭐️⭐️⭐️
- 17445主要是在生产环境中ML系统遇到的各种非ML问题,具体可以参考课程官网哈。这门课老师和给分都很nice只是上课有点太理论然后就没怎么听。Project设计的还是很用心的,有很多比较实用的知识(比如message queue, docker, container orchestration,CI/CD,monitoring),但是能学到多少主要取决于做到了什么程度。我把宝贵的公选课名额献给了这门课,感觉稍微有点点亏。

2021 Fall:
这学期堪称是大型翻车现场了。上学期感觉load还行,所以一上来就选了四门课,还有个TA,还需要找全职,多线程失败后面就开始大型拆东墙补西墙了。最开始的四门课是15640, 18645, 18793, 15463。

15640 Distributed Systems
- Load: ⭐️⭐️⭐️⭐️
- 水分:
- 推荐指数:⭐️⭐️⭐️⭐️⭐️
- 15640 是我感觉在CMU上过的最扎实的一门课。这门课秋季春季分别用Go和Java,教授和project也略微不同。我上的是Go版本,两位教授的上课质量很高,课程的内容就像是传统DS课程一样有点散,但是配合homework和两次考试一起食用有很强的巩固作用。Project有点难度但是很有意思,涵盖范围比较广泛:从手撸TCP到手撸Raft。Go版本四个project中有两个是team project,所以一定要谨慎组队。这门课给分很严格,拿A/A+还是有一定难度的。

18645 How to write fast code.
- Load: ⭐️⭐️✨
- 水分: ⭐️⭐️⭐️
- 推荐指数:⭐️⭐️
- 这课让人一言难尽。上课内容看似简单,但是hw不问TA是做不出来的(于是我狂抱同学大腿);内容关于高性能/并行计算,听上去很高大上,其实用处不大;fast code是关于高效率软件代码,但是什么寄存器缓存之类的也要一并考虑;新加坡老师很有热情,但是上课很容易走神。我本来是当水课选的,后来发现也挺花时间的,而且最后想拿高分也不容易。除此之外,确实是HPC,MPI,OpenMP之类的比较好的入门课,不太适合当水课。

18793 Image and video processing
- Load: ⭐️⭐️⭐️
- 水分: 上课没听 无法给出客观评价
- 推荐指数:⭐️
- Pro: 这课给分很松,全班大部分A / B。Con: 主要内容是信号处理相关,涉及大量变换和公式推导;老师上课无ppt,口音有点难懂;每周一次作业,主要数学推导和matlab编程,比较烦。我本科EE但是很抗拒这一类东西,所以期中的时候用两门mini 代替掉了。

15463 Computational Photography
- Load: ⭐️⭐️⭐️⭐️
- 水分:
- 推荐指数:⭐️⭐️⭐️⭐️⭐️
- 选这个课主要是因为自己对摄影比较感兴趣,这门课适合兴趣/科研导向的同学,不是转码课。这课是一门well-designed偏向科研的计算摄影学入门课。通过这门课了解到很多数码相机internal的流程,比如如何从一堆光子到一张jpeg图片,自动白平衡,HRD等等,也会有一写比较进阶的研究领域,比如3D scanning, time-of-light imaging…我退课前的两个project分别涉及动手制作一个小孔成像相机和手撸HDR算法,感觉很有实践性。后面因为忙不过来把这门课退掉了, 感觉很遗憾。

12741 Data Management
- Load: ⭐️✨
- 水分: ⭐️⭐️⭐️⭐️
- 推荐指数:⭐️⭐️⭐️
- 土木学院的数据库课,主要是搞搞数据分析,写写SQL/pandas, 背诵一下数据库的几个范式。课我没听,主要就是做做作业。作业比较简单,但是有点费时间(一次大概5-6小时,两周一次)

- 19672 Tech Startup
- Load:
- 水分:
- 推荐指数:⭐️⭐️⭐️⭐️⭐️
- 工院跟heinz联名的创业课程,老师是一名身经百战的连环创业家(上学期期末presentation前夕拿到1.8million的融资),全程口头讲课,内容诙谐幽默。对于创业的同学来说,是一个可以用来networking和获得老师指导/合作的好机会。无作业无考试无尿点,最后project是团队present一个创业项目。

2022 Spring
写累了。。。未完待续