介绍一些CMU-INI-MSIN的课程(四)

avatar 48791
endless
24423
50
[align="left"]其实这个系列的标题有些局限,因为介绍的课程不仅MSIN的同学,CMU其他专业的同学都可以参考。[/align][align="left"] [/align][align="left"]1)15-415/615 DatabaseApplications[/align][align="left"]这门课把数据库的内外原理与实现都讲到了。例如,从设计和应用(E-R图,SQL)到数据库理论(RelationalAlgebra/Calculus),再到内部实现的原理(数据库如何上锁,如何建立和选择合适的Index,Write-Ahead Logging是怎么回事)等很多内容,所以非常适合数据库领域的入门学习。课程负担很小,一共8个作业,两次考试。8个作业里面有两个是编程的,大概需要花个一两天,其它的都是一个晚上。从作业到考试,再到最后的成绩,给分一般都很高,所以只要你认真学,拿A没有问题。老师是Christos和Andy,都很nice,有亲和力。前者据说是Data Mining界的大牛逼,后者是数据库界冉冉升起的新星(研究方向包括了NewSQL和H-Store),所以如果想在相关领域做研究,上这个课或者TA这个课也不失为一个非常好的接触老师的机会。这门课无疑是性价比很高的课,内容不错,负担轻,可以和负担重的课(例如OS)搭配起来上。[/align][align="left"] [/align][align="left"]2)15-746/18-746 AdvancedStorage Systems[/align][align="left"]这门课是CMU比较特色的一门课,因为据老师说专门讲Storage的课在其他学校并不算常见。这里的Storage并非指底层的磁盘,而是指存储作为一个SoftwareSystem是如何实现和运作的。底层原理也有涉及,但只有一两节课。略上层一些的内容,会讲到Local FileSystem,例如Ext2。个人觉得这个也不是太有意思,要处理太多的bitsand bytes,不过作为IT领域的人,了解一下很有必要。第一个project就是给Ext2文件系统写一个简单的file system checkutility(大概1000行C)。再往上层的内容就更多一些,包括分布式文件系统与并行文件系统。这些文件系统一般构建在user space,所以不需要直接处理bits and bytes,也不用做kernelspace debugging,而是利用已有的本地文件系统,例如Ext2,在上层构建自己的filesystem。第二个project就是这个类型,在Ext2的基础上构建一个cloud file system,分为三个部分:part1,实现一个简单的文件系统,把小文件放在本地,大文件传到云端;当然,所有操作对于用户来说必须是透明的;part2,实现de-duplication,节省云端的花费(云端存储是要钱的);part3,实现一个cache,自己琢磨一个cache policy让云端花费进一步减小。代码量大概是2000-3000行C或C++。讲课的老师是CMU的两个大牛逼,GarthGibson和Greg Ganger。他们都在PDL实验室,对INI和VLIS的学生感觉还挺友好,因为很多这两个program的学生在那里做research;这门课的TA也差不多被INI的人包揽了。总体来说质量不错,难度适中,推荐。[/align][align="left"] [/align][align="left"]3)18-842 DistributedSystems[/align][align="left"]这门课在INI和ECE的评价向来很差,到底有多蛋疼请自行体会。其实课程内容还行,主要是老师和大多数TA的水平不行。这门课是MSIN的必修课,所以无论如何MSIN的同学也得熬过去。应付这门课的tips有如下几点(仅根据Spring2014的经验,后面会不会改不知道):(1)Live Session一定要认真参加,里面讲的练习题会出现在考试里;(2)想办法搞到Spring2013的Lecture Slides,备考的时候Slides能背多少背多少,然后再复习一下Live Session上的题就可以了。从Spring2014开始,Slides非常精简,对复习帮助不大;(3)考完Quiz之后一定要去ECE Hub拿试卷和答案,因为Quiz的原题会出现在期末考试上;(4)Lab和Project都是随机组队,随到不靠谱的人概率还挺大 - 认真你就输了,关键就是Demo的那15分钟。Demo不会太细致,主要考察一下功能和简单的cornercase。[/align][align="left"] [/align][align="left"]说点题外话:如何避免这门课?对于MSISTM的同学来说很简单:修OS就不用修DS了。对于MSIN的同学来说目前还没有有效办法,但是我有一个idea觉得可行:来MSIN的第一年全部选修VLIS的track课程,然后申请VLIS,转program。这样可以避免这门课,并且已修的学分可以算到VLIS里面,所以并不会浪费时间。事在人为,我强烈怂恿MSIN的同学可以这样试试,有成功案例了一定要来和我share一下~[/align][align="left"] [/align][align="left"]其他推荐课程:15749 Engineering Distributed System,老师是Satya,陆奇的PhD导师,AFS的设计者,大牛逼。15-648 Studio in Big Data Systems,专门为VLIS开设的一门课,INI的同学想上可以和Garth Gibson申请。[/align]
  • 47
50条回复