LanternD +

MSU的课程体系 (2):Spring 2015

系列传送门

(注:目前完成了前三,剩下的用来占坑。)

惯例序言

 这个系列上一篇日志写的是我在MSU的第一个学期,Fall 2014的课程,一个是CSE824 Advanced Computer Network and Communication,另一个是ECE870 Introduction to MEMS。这篇将接着时间线继续写。这篇日志包含以下两门课程:

 由于另一边要做RA,我每个学期只需要修6个学分的课程,所以进度缓慢。其实认识的不少小伙伴都是一学期三门课外加RA的。按我这进度得3年半才能修完要求的学分。


CSE 812

 操作系统是门神奇的课程。就目前所知来看,这是我在MSU上过的最难的课程。虽然拿4.0并没有很难,因为有各种助攻。

 这门课的上课时间也很崩溃,每周二周四中午12:40到下午2:00——一天中最困的时间段。

 最崩溃的是我多年积累下来的英语听力被打回原形:遇上了超神的印度口音。这个待会再继续说。

课程大纲 / Syllabus

 这门课的学分要求大概是这样的:

 出勤率——每个人都能拿完的分数。

 在全班同学面前Present一篇论文,老师有一个列表,每个人从里面选一篇来介绍。这种情况下机智和勤奋就显得尤为重要了——事先看好哪几篇文章比较简单,至少篇幅比较短。「勤奋」是指:在某一天老师会让大家填表格,自己想要哪篇,这时候就要去早点,占据有利位置,以最高的优先级选好心仪的Paper。这会让后面的日子好过一些。

 老师为了让我们多读论文,除了自己那篇文章,还需要作为两篇文章的Assistant,当课上那位同学做Presentation的时候如果有人问问题,Assistant要帮Presenter回答问题。

 所以这个课程一学期下来总共要读3篇论文。老师说你们最好每篇都看过,然而这句话只是耳边风。

 大概有3次作业,每次作业占一点分数。其实性价比超低,因为作业不好写。

 一学期两次考试,内容不重复。其实难度是不小的。但是……且听下面分解。

 又要找一个什么也不会的Topic,写若干代码,写个报告,上交完事儿。不过只要不用Presentation就已经算比较轻松的了。看到这也大概知道了,这门课是全套服务的。我们对此定义是:既要写作业,还有Presentation,考试少不了,还有不知会遇上什么样队友的Project。

小(Tu)结(Cao)

 这门课上课第一天,刚进门就发现了老朋友Hayden,心想这学期应该不会孤单了。然而老师开口说话的一瞬间一切都不一样了……完全听不懂。10个词里面也就听到了些连词和冠词。详细分类的话,这个并不是「正统的印度口音英语」,还有些其它的味道,以及老师说话自带模糊效果,一句话没有抑扬顿挫,没有重点,听起来特别费劲。第一节课过后,Hayden回去把课Drop了,留下我孤军奋战。

 每天中午去Panda Express吃完饭还没来得及眯一会就要跑到教室去了,一个多小时的课程中大概有10-15分钟我是神志不清的。几乎我每次都坐在离讲台很近的位置,尝试听清每个老师说的单词。几节课下来我仿佛是竹篮打水一场空。后来我和老师说我以前没上过OS,能不能录个音让我回去听,他说OK。

 我确实也录了音,但是教室宽敞以后iPhone获取声音的量比较小,回放的时候把音量放大以后就会出现大量噪音。后来我也不怎么听了。

 至于课程内容,我本来以为是讲操作系统的各个部分,不同的层,线程之类的东西,然后发现并不是。老师讲的东西完全是Distributed system(分布式系统)。讲的是有一堆节点,它们应该以什么样的方式连接,互相之间用什么算法获取一致的Agreement(决定);还有如果一旦决定做出以后,用什么算法把这个决定广播出去,保证每个节点都收到;或者是一个节点Fail了,有什么办法Recover,或者重新形成新的连接结构……反正我听的时候脑子里想的都是:这又是什么鬼。

 计算机这行,一个显著的特点就是程序员或者研究者都特别喜欢给东西取名字,或者以自己的名字命名一个算法或程序。这就导致了有无数的名词和名字需要记,而且还不能搞混。一个学期下来真是没少记这些东西。我上这门课之前,对分布式系统一无所知,但是历练之后还觉得有那么一点意思。

 上课的时候认识了泰国小哥Sorrachai,这个是他的名,然而他的姓的英文有22个字母……他还说这个在泰国挺常见的……为了方便我们称呼,他说可以叫他「Chen」。他祖上也是中国人,移民到了泰国。上课的时候我仿佛觉得泰国的教育系统和中国的截然不一样。他特别喜欢问问题,每节课平均5个以上。在国外上过课的话应该知道这个是什么概念,中国留学生我怀疑3节课里能不能问出一个问题来(顺便自黑)……后来由于某些原因我搬到了和他同一个实验室,所以后来就成为了比较好的朋友。

 这个课我得了4.0,运气成分功不可没,我以前的实验室座位上有一些陈旧的文档。上了这个课以后我偶然翻了翻那些文档,一道响亮的标题赫然摆在我眼前:「CSE 812 Advanced Operating System」。我疯了一样把和它相关的资料全部翻了出来。发现大概有10%的内容是真·操作系统(同一门课,但是是不同老师教的,内容很不一样),剩下的都是分布式系统的内容(和我这学期的一样),是以前师兄师姐上这个课留下的宝贵资料。对于在国内长期靠历年题突击考试的我们来说,这些资料毫无疑问是雪中送炭。更给力的是连作业题都有。那时我是长长舒了一口气。然后你都懂。

 像我这样每节课都不逃课的,一直认真听课的「好」学生,对里面很多内容都没有掌握透,但是作业每次都能做得差不多全对。还好做完题目觉得这些东西确实掌握了,尽管我不会的时候就果断接受前辈们灯塔的勾引,啊不,是指引。

 Present的论文我刚看的时候也是云里雾里。CS的东西实在是太多了而且好多东西并不成体系,能抓到老鼠就是好猫,这就导致了有些东西学起来无从下手,没有完整的说明或者文档。

 刚开始对于Presentation的恐惧已经消失了。取而代之的是学会了如何快速「突击论文」、做好Slides、完成Presentation的方法,或者说套路。老师觉得你作为一个留学生做到这样已经是不错了,一般印象分都还过得去。

 这个课就说这么多吧,回头看也写了好长了。


ECE 818

 第二门课是ECE 818 Robotics,机器人,或者是《机器人学》。老师叫Ning Xi(席宁),是一位已经功成名就的老师了,网上可以搜到,头衔好像还是「国际机器人学术界领军人物」。不过他最近辞职回国发展去了。

大纲

 一共四次作业,每次都巨多题目。每次估计得写两个晚上的样子。印象中占的比重也不高。

 很高兴的是这个课并没有Presentation,是比较传统的「中国老师式」课程。Project也是交个报告就行。

 有一次期末考试。相比其他课程考试少一次,这也是我觉得和国内课程相似的地方。课程设置基本一样。总而言之只要跟着进度走没什么压力。

小结

 这个课颇有回到中国了的感觉,除了中国学生占的比例不高以外。老师上课就是讲概念,板书,我们做笔记。老师只用手写,从来不用PPT,讲义和作业一律打印好了才分发下去,也不使用网盘之类的东西。

 第三次Lecture过后,我们去Engineering Building的地下室参观了他们的实验室。看起来特像国内的实验室,RA们围着墙坐一周,然后中间是各种试验场地之类。助教同学们为我们亲切介绍了他们组研究的机器人项目,抓东西的过障碍的等等。还是开了些眼界的。

 这个课主要讲怎么对机器人的各个关节进行建模,变成数学上的表达式;怎么把各种关节的运动变成矩阵的加法和乘法;怎么控制机械臂的前端加速匀速减速;怎么设计机械臂的运动轨迹等等。后来我和朋友聊天的时候,发现他对这里面的数学原理挺清楚的,一问才知道里面的知识和Computer Graphic里面3D模型的人物运动是很相似的。比如一个人手臂的关节的弯曲伸展等等,所需要的数学变换和机械臂的运动非常相似,也不知道哪个出现的比较早。

 Project是Matlab仿真,前面数学公式推导的阶段异常繁琐,最困难的是把推导结果输入电脑里面,一堆sin、cos,还有各种系数和指数,看得眼都花了。关键时刻从和以前上课的Antoinette师姐那里找到了他们当年做的项目的资料。然后,诶嘿…我倒也没参考特别多,主要框架完成了,Debug的时候出了点小问题就参考了她的代码。

 这节课的助教也是哈工大毕业的,简直瞬间拉近了关系。当然人家毕竟是良好的助教,打分不会有偏袒的。况且不用帮忙我也照样可以作业考试拿满分,哈哈。

 虽说最后也是4.0但话说回来我也忘了我为什么选修这个课了,因为和研究方向也不怎么相关。大概就是凑学分吧。

片尾曲

 这学期倒是正经学会两个从来没有涉足过的领域,我觉得收获是不少。对国外的课程体系了解透了以后仿佛我一下子找到了非常灵活的套路,能够游刃有余。

 一般我发现上中国老师的课思维的启发没有国外的老师的那么强。不过带有中式思维的英语倒是听起来一点难度也没有,有很多表达方式大概只有中国老师会经常说。听过不同的人说英语以后发现每个人的思维还是不一样的。

 大概是这样。

LanternD
LanternD_Logo






订阅

RSS订阅 微信公众号

文以类聚

更多『blog』分类的文章