[心得] CMU MSIT-SE/ESE/MSE资讯与课程介绍

楼主: iaminanl (好MAN)   2019-03-12 12:17:40
《前言一》
几点动机:
1.想提供资讯很久了,但课业真的好重..趁春假写一下,希望两小时内写的完
2.地里的资讯年代久远,更新些消息希望能帮助大家选校选系
3.更新在这里还是习惯一些
4.一方面整理一下做过的事情,帮助我review方向与履历
《前言二》
CMU的SCS有大量的program,好像有十个,个别有个别的重点,
小弟读的是着重在software engineering,之前一位学长有问过我,
我当时真的分不出来CS跟SE,来了才算是略懂~
考虑到我去年手牌不是很好,没有太多选择,而且就是想念embedded,
因此虽然不是很清楚SE,但基于选课自由以及校名还是选择这间,
这里稍微介绍一下software engineering这个program的重点,
希望能帮助跟我一样不太清楚的版友选系。
(我投了好多embedded或软硬结合的program,SE并没有花太多时间了解)
《科系介绍》
CMU主校区有一栋建筑,二楼是ISR: Institute of Software Research,
他们开设Software Engineering的master program已经超过十年,
目前主要有几个program:
1.MSIT-Software Engineering
2.MSIT-Embedded Software Engineering
3.MSE
这三个program都是fall入学,MSIT-SE唸三个学期,八月底毕业,
ESE跟MSE唸四个学期,十二月毕业。
前两个是主打两学期的MSIT project,第三个是三学期的Studio Project,
由于都是春季开始做project,所以这三个program都是不能暑期实习,
暑期需要至少24学分做project。
(还有一个是MITS,我不熟悉,就先不谈)
(暑假不能实习很多人都认为是硬伤,这点不多说)
Project基本上可以想成校内的startup software team,ISR帮你找客户,
客户可以是业界或校外单位,举例像magic leap或是NASA JPL,
也可以是CMU校内的专案,举例像SEI的开源专案或是RI的机器人竞赛,
在这两个学期或三个学期间,把所学的SE技巧用在管理与开发,
会有Mentor像老板或顾问一样给予协助,
这个单位的program大概是这样的定位。
至于SE的技巧小弟目前也是略懂,大致上包含:
- Requirement Engineering: 试着将客户的需求转化成更具体能实作的项目
- Architecture Design: 根据需求导出品质特性,并设计出相对应合理的架构
- Quality Plan: 根据需求设计出各种测试方法,确保软件的品质
- Planning and Estimation: 依据budget试着找出合理的开发计画
- Risk Management: 根据可能发生的问题做事前规划,问题包含可能的延迟
- Software Process: 根据这个专案的特性,选择并执行合理的软件开发流程
写成中文好奇怪哈哈,但大概意思是这样,
每个学期末有EOSP,End of Semester Presenation,
报告给系内的老师们,并根据project过程中,
产出的software artifacts给予评分与建议。
(artifacts大概就是前面提到的五六个文件啦)
project的内容大致上可以选,题目我就不说太多了,
但project评分的重点在于如何做好software engineering,
实际的软件写几行、写多帅并不是老师们认为的关键,
重点是写出来的软件有没有客户满意、有没有架构的问题、有没有流程的问题。
《课程安排》
我的program是Embedded Software Engineering,俗称ESE,
必修与其他两个program有至少三门不同,SE类型的课程大概占一半,
如果考虑每学期修四门课,扣除必修,可以选择的course slot分别有:
- 秋季学期:两个slot
- 春季学期:一个slot
- 暑假学期:一个slot
- 秋季学期:三个slot
其中一个slot要选17开头的课程,也就是ISR所内开的课程,
因此可以选择六门ISR以外的课程。
相较来说,其他两个program如下:
- 秋季学期:一个slot
- 春季学期:一个slot
- 暑假学期:两个slot
- 秋季学期:一个slot(MSIT-SE没有这个学期)
这几个slot里至少要两个17开头的课程。
CMU这边SCS大家常说的好课=好重的课,大多是15、16或10开头,
17的课程相对来说评价没有这么好,
但考虑到春季学期一般而言非常繁重,且暑假学期没有什么课程,
ISR这样的课程设计是否符合需求,就需要多做点功夫比较。
(话说本来就要比较吧,学费好贵)
(另外这里四门课通常操到吐出来,我自己是不打算最后一学期修四门课,以利求职)
《课程介绍》
*Canvas是CMU的课程管理系统
想了想我还是以时间作区隔,读起来比较知道每学期在干嘛,
但我用亮色标记的是SE/ESE/MSE必修,是software engineering的核心课程,
大致上秋季一入学会讲软件工程概论(17653),
下学期着重在讲testing(17654)跟architecture(17655),
以及开始跑project(17677, 17678),把许多学到的软件工程概念应用上。
至于选修就看看就好,个人兴趣。
《暑假》
15-513 Introduction to Computer Systems
。必选修:必修
。课程网:Canvas以及可google到的那个
。介绍:
这门课是开学前五月到八月,远端上课。
这门课是开学前五月到八月,远端上课。
这门课是开学前五月到八月,远端上课。
很重要要说三遍,开学前不是通常很忙吗?忙离职、搬家、签证、打包、结婚,
没错,然后很多课程需要这门课成绩至少B才能选,
还没到美国就先体验CMU的生活囉^o^
但这门课真的很好,作业都非常的有趣,教课书读起来如沐春风,
把电脑的很多观念都深入浅出的讲解,并且透过作业稍微体验,
大概知道怎么设计cache、设计memory management、设计proxy,
只读课本可能就很有帮助了,作业设计的很好更让人印象深刻,
很可惜我不能百分之百的时间投入,人生好多可惜~
推荐有志写扣的人都读一遍CS:APP这本书
《秋季》
18-648 Real-Time Embedded System
。必选修:ESE必修
。Prereq:15-513至少B
。课程网:Canvas
。介绍:
主要是Linux Kernel Hack,四个Lab最终把resource reservation framework实作,
可以学到怎么改Android Linux Kernel以加入各种schedule policy的task server,
还有知道怎么做bin packing,利用RMS确保系统可以达成real-time的要求,
大概会深入了解作业系统里的scheduler这个角色,
另外了解一些Linux的design: kernel module、sysfs、或是governor等等,
大概会很熟悉用C自己刻一些资料结构或syscall,跟学着与Linux kernel相处
课堂讲的比较多是理论,Linux的部分是不提的,需要靠摸索或是问助教,
虽然四五人一小组,但写起来还是干声连连,“又崩惹!”是我最熟悉的中国用语
另外课程进行到Lab3跟Lab4大概就觉得老师讲的有意义了,需要一点耐心,
然后课堂内容着重在各种scheduling policy,各种task server,
主要想知道怎样的task set是schedulable,或是会miss deadline、造成deadlock,
以及一些case study,Prof Raj非常认真教学,讲的也很好,
口音蛮重的有点冲击,但因为讲话很有节奏,还算听的懂
15-746 Storage Systems
。必选修:选修
。Prereq:15-513至少B
。课程网:google的到
。介绍:
这门课的后半会自己用FUSE刻一个file system,大档案放在云端,小档案放local,
云端的部分模仿亚玛的S3-API,并且引入dedup跟cache把云端用量进一步减少,
dedup搭配MD5是非常有趣的地方,另外会实作write-back cache,
相较于前一门,这门会对作业系统的file system这个部分很有心得
前半的project是写一个SSD的FTL,这有点难解释,大概就是把logical address,
转换成physical address,并利用一些技巧节省内存用量、减少消耗SSD寿命,
会写很多C/C++以及bash脚本,以及知道怎么设计资料结构以加速与节省内存
Prof Ganger跟Prof George都非常会讲,有趣而且聚焦,听得很开心,
课程第一部份比较各种储存装置:SSD、HDD,以及tape,
接着讲怎么部属storage system:RAID的概念、declustering跟redistribution
最后讲很多不同的distributed file system:HTTP, NFS, AFS,
有一些客座讲堂:Google FSv2 Colossus,Datum FS,HPC的设计之类的
(可惜期末考爆了QQ)
17-630 Data Structure and Algorithms for Engineers
。必选修:选修
。Prereq:没有
。课程网:Canvas
。介绍:
作业有六份,大概就是实作各种ADT,用C/C++/Python/Java,每个作业用一种XDD
ISR的课程特色就是希望你design doc写好、code comments写满,
作业其实都不难,而且Tony人超好会看我们是不是很操,deadline会延期,
应该是有趣中又有点佛心这样,重点在怎么做info hiding,
效能那些不是重点,也算是很偏design的课。
Tony教学很认真,大概跟他重训一样认真,他多壮请参考ISR官网,
会花大概三分之二学期讲各种资料结构,并且在Tree跟graph讲一些常见的算法,
并在最后讲一些concurrent programming,
因为并不是很重的课,从我的叙述就听得出来,对于刷题的帮助我觉有限,
把他当成Python 101跟Java 101应该可以。
17-653 Managing Software Development
。必选修:必修
。Prereq:没有
。课程网:Canvas
。介绍:
这门课大概是Sofware Engineering 101,把软件开发与管理流程里,
的各种activities介绍一遍,搭配课堂跑一次,大致是希望传达Scrum的精神,
讨论每个sprint的component:backlog、review,或是planning pocker,
还有requirement engineering、milestone planning、earn value tracking等等
我当时抓不到重点,但因为我过去是embedded hardware/software,大致waterfall,
如果在新创上班过的、或是跑过类似流程的,可能可以一秒知道他要干嘛,
这学期开始跑project就蛮有感觉,遇到问题会一直回去查找投影片,
有些组有经验丰富的前PM或前工程师,规划的部分就比较有模有样,希望能跟上
有两个case study,以及期中期末考,reading很多,但loading不算重
MSIT-SE以及MSE在秋季学期会有另外两门课:Method与Modals,
是software engineering core必修课,
我没有修,讲不出什么重点,问问同学再跟各位分享
《春季》
17-654 Analysis of Software Artifacts
。必选修:必修
。Prereq:没有
。课程网:Canvas
。介绍:
作业着重testing与continuous deployment,
大量使用各种工具:Jenkins, JUnit, Mockito, Docker,搭配git,
当然可以自己引入其他框架啦,比如Flask或是Kubernetes,
去年被批评的一文不值,今年loading变超重啊啊啊
老师们都人超好,可以想像他们想花很多时间思索要让我们多学一点,
但这样评鉴大概还是会被写爆,不过总是不会有浪费钱的感觉惹?
有期中期末考,六个个人作业、五个团体作业,每周有阅读小考,
课堂从dynamic testing开始讲:blackbox, whitebox, inspection,
然后讲static analysis:syntatic跟structural, formal verification,
接着讲一些data model跟process model的quality,
下半学期会讨论各种quality的样子
17-655 Architecture of Software Systems
。必选修:必修
。Prereq:没有
。课程网:Canvas
。介绍:
在人人都想当架构师的情况下(是吗),这门课应该算是符合很多人需求,
课堂先讲各种quality attributes,以及可能有哪些tactics可以改善,
比如常见的用redundancy作为recovery tactics以解决availability的问题,
但会造成哪一些trade off,比如redundancy大概就是$$$$$$,
接着讲各种不同的软件架构:pipe-filter, event-based, call-return
作业大概也是以改善某quality attribute作分析与设计,
比如怎样让一个系统可以侦测到错误并某程度上自动修复,
写的code不多,总共四个作业跟期末project,每周小考
17-703 Cryptocurrencies, Blockchains and applications
。必选修:选修
。Prereq:没有
。课程网:Canvas
。介绍:
选这门课的原因大概是load management,但因为也很有兴趣就选了这门,
法国老师讲课不错,课本选的更不错,照着他的安排念,
对于cryptography会有简单认识,然后深入的讨论bitcoin的design,
比如scriptSig跟scriptPubKey,distributed consensus,pay-to-script-hash,
最近讲到ethereum,算是对区块炼以及加密货币有很深的认识
下半学期会有个research project,期待~
《关于Project》
春季学期基本上不会开始写扣,主要是做事前规划与设计架构,
Analysis跟Architecture期末都要交上自己MSIT/Studio project的架构,
以及quality plan,因此project是紧密的与课程结合,
除了要做好development managing,也要把品质做有系统的分析,
暑假学期才会真的开始根据架构写扣,
至于如何manage clients就各凭本事QQ
讲到这里大概可以知道software engineering跟computer science的差异,
software engineering还算很新的领域,这方面CMU有SEI的加持很有成绩,
实际上这边与SEI的合作也很紧密,小弟的mentor就是SEI的staff
《杂记》
最后几点:
1.MSIT-ESE去年停招,也就是2019 Fall不会有新生,猜测是人手问题,
两名主要的老师退休,2020 Fall不知道会不会复招,据说要增加选课自由度
2.MSIT-SE虽然也希望要有工作经验,但认识的也有蛮多毕业就来的,可参考
3.MSE最少都工作经验三年半以上
4.春季学期很多group project,可以练很多英文口说
5.MSIT-SE来之前要做好求职准备,九月份TOC是重要的career fair,
因为只有一个秋季学期,只能参加一次,自行斟酌
6.就这些必修来说,MSIT-SE跟MSE可能都不适合来CMU转职练功,
要马课会太重(听说这学期有人修OS,还想睡觉吗..)要马学不全,
建议来之前要有修过CS的课程
一下子想不到还要说什么,看看有什么问题有空再补充
(另外小弟的申请过程就不多说了,工作经验+GT考好+烧香拜佛,
上班族所以有找代办,但比较像多麻烦代办处理杂务与追进度,自己人生自己决定,
需要的话有空提供三围)
(准备找工作好紧张啊啊啊)
以上
作者: philip09227 (philip)   2019-03-12 12:53:00
谢谢分享
作者: agape9453 (心之俱足)   2019-03-12 13:06:00
感动 谢谢
作者: jasonhu8787 (ggggg)   2019-03-12 13:42:00
作者: tennis1038 (13nash13)   2019-03-12 13:43:00
好文推推
作者: ETETETET (ET)   2019-03-12 14:12:00
好心推,祝找工作顺利唷
作者: courant   2019-03-12 14:22:00
本人某MSCS就读,这边课业量真的不是普通的多,周周program assignment.2-3周就大考...超累
作者: ETETETET (ET)   2019-03-12 15:58:00
可以请问一下楼上是哪间的MSCS吗谢谢
作者: muserholic (muse)   2019-03-12 16:07:00
楼上 看楼楼上的ID我会想猜是NYU 哈哈 kidding
作者: k900421 (qq)   2019-03-12 18:07:00
NYU tandon?
作者: nitu2009 (tomwhat)   2019-03-12 18:23:00
Msit-se跟mse有啥不同?
作者: ETETETET (ET)   2019-03-12 19:04:00
M大对欸,你一说就有感了哈哈
作者: courant   2019-03-12 20:51:00
某top 15 cs
作者: lmr3796 (Toro)   2019-03-13 14:55:00
@nitu,MSIT-SE是给new grad到junior,MSE是给三年工作经验up的至少我申请的时候看他的要求,这两个应该只能申一个MSIT-SE会要求好像是2 or 3年经验以内这样,细节有点忘了
作者: IMPOSSIBLEr (I'm possible rrr)   2019-03-13 16:30:00
求职加油,有需要海外工作版A我看看
作者: courant   2019-03-14 01:27:00
@ETETETET 本鲁读的是公立大学,同样的课程,我发现CMU或Stanford的讲义似乎讲比较详细,但在我们系上有些内容却要自己私下找资料补足,但作业跟考试一样会考一样会出。在这方面我觉得似乎私立大学好像比较好。以上仅供您选校参考!
作者: tx871217 (AHQ-基王拉克神)   2019-03-14 02:08:00
大推
作者: ETETETET (ET)   2019-03-14 06:36:00
谢谢c大的补充!
作者: ron0908 (荣恩)   2019-03-14 20:05:00
谢谢详细的分享!!

Links booklink

Contact Us: admin [ a t ] ucptt.com