S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

(转)在麻省理工读计算机专业,看美国的计算机教育

美国, 麻省, 计算机教育, 理工, 专业 清华本科5年,和许多同志们一样为着一个闯荡世界的梦想苦苦努力,98年终于在历尽千辛万苦之后,踏上北美大陆。这两年来当真是感慨万千,清华的学习生活我算是深有体会,而北美大学的学习生活我也可以算是领会了个中滋味。相信国内的许多好学上进的DDMM们还处在一种梦想和憧憬的阶段,如我两年前一样,在这里我穷一己之力,希望能作一比较和介绍,让大家在国门之内能够了解到清华与北美的学习生活之同之异与差。切入点我选择的是中国和美国的名牌老大:清华和 MIT。


从生源上讲,美国没有那个学校可以把全国各省的理科状元和前十名大半收入囊中。MIT虽然始终在理工科方面独占鳌头,但是加州理工学院、 Stanford、Berkeley等名校并不逊色太多。像Stanford更是以地处硅谷、生产杨致远型的资本家而独具吸引力。从优秀学生的聚集程度上讲,大概MIT加上Stanford都不足以与清华一拼。


TOEFL和GRE毕竟没白考,上课能听懂百分之八九十。本来用于录老师讲课内容的单放机只带了一次,也没开录,后来再也没带过。阅读课文也没有太多的困难(哪有GRE歪词那么多)。美国学生实在是基础差,又不用功,一百分的作业得不到五十分的一般都是美国人。(日本、印尼等其他国家人的英文名字读起来可没有美国人的那么顺)。但是,这里的课程负担可实在是不轻松,一般来说,选三门课上是标准(不少人只敢选两门);能上四门课的人堪称不同凡响;五门课?最好不要想。


我在这里的第一学期上了一门叫《计算机系统设计》得本科课程,其辛苦程度真实一言难尽。十五个星期内交了十次作业,作了六次课程设计。有的设计还分几个部分,分开交设计报告。所以设计报告大概也交了有十次左右。最恐怖的是有一次,十天内要交六份作业或设计报告,而且当时正值其他几门课正在期中考试。抱怨是没有用的,老师说:"我很抱歉。但这门课很重要,请大家不停的工作。"学生从一般的逻辑时序电路开始设计(数电都已忘得差不多了);核心是自行设计"麻雀虽小五脏俱全"得ALU,单指令周期CPU(single cycle CPU);多指令CPU(Multi-cycle CPU);以直到最后实现流水线(pipe line)32位MIPS CPU和Cache。一门课下来,所有与计算机CPU有关的知识全部融会贯通。硬件设计水平也有了很大提高(就是太累)。


在清华的本科课程中实在找不到这样一门如此实在的集理论实践于一体的课程。计算机系的TEC-II型试验计算机几经是全国独家了,但是试验安排并没有触及核心(TEC-II机是微指令时的计算机)。缺乏动手设计环节是学生对CPU原理的了解比较肤浅。


当初我作微指令实验时曾由茅塞顿开的感觉,但是现在才发现远远不够。至于全校性选修课《微机原理》的水平就不用说了,至今我想起老师的一句话还有些心痛-- "学通了八位机,十六位机、三十二位机的原理是一样的",MIPS怎么可能和十六位CPU相提并论?在anford,本科生也有相似的计算机系统设计课程,但是要求学生用VHDL语言(当今IC设计标准语言)实现,清华的本科生由几个会用VHDL?在清华曾上过《操作系统》这门课,要在 Linux基础上作四个project,六个人一组,可以期末一起交。我在计算机系的同学直到期末前两三周仍叫我不必惊慌,说最后一两周内定会有牛人做出来,大家都可以搭车。我在这里的情况则不同,也是四个project,三个人一组,每三周交一个project。


如相似之处过多,当即受到质询,处罚办法抄者被抄者各扣50分(满分100),被罚者早有先例。交作业时间是某个周日晚11点59分59秒,网上交作业,半秒钟也不许拖延,到时间传输停止工作,谁也交不成。所以大家只有坐下来勇敢的面对困难。


其实,三个星期短得不合理,因为第二个星期与Project相关的课程才讲完。唯一的方法就是熬夜--第三个星期,从晚上九点到凌晨两三点,公共机房的数十台工作站前座无虚席,几乎每个人都要连续熬夜;凌晨三点有人开始支撑不住,而熬到六七点的也不乏其人。教师在上第一节课时曾展示过一块白布,上书"我宣布投降"和几十人的签名。这份由败在Project手下的学生赠送的礼物被老师悬挂在办公室的墙上。而我对这门课的感觉只有一句:我开始明白操作在清华,计算机系的《操作系统》和《计算机原理》是体现了其应有的份量的。


再有像美国的VLSI设计课程在清华很难找到其应有的设计实践效果。这里的VLSI设计课程上到深处,学生就可以做出实实在在的ASIC芯片,然后拿着自己的设计去硅谷或别处工作面试,说:"这是我作的东西。"清华大概没有真正的"企业级"集成电路设计试验课程--这也不奇怪,全中国现在都在作板子而不是" 片子"。美国大学的教授对授课的认真程度有高下之分,但任何教授都不允许抄袭。这一点我在前面已经提到了一些。有一个教授的话很据代表性:"发现抄袭很难;但我会竭尽全力。"

另一个共同特点是他们上课一般不会沉闷的让你想睡觉。它们的幽默虽不像新东方的宋昊那么多,但是往往恰到好处:比如一个教授说"有的黑客只是看一看,就像女人逛商场";有一个教授每当学生回答出一个较难的问题时就赠送一美元;一次课堂上学生回答问题时说"这要看实际情况(Itdepends) ",教授对大家说"怎么像政客说的话"......总之,这里你一般碰不到在清华常见的"面苹果"老师。比较认真的教授的责任心是令人钦佩的。一个教授在学生课程最重的时候,把家中的电话留给学生,告诉学生说晚十点前可以打电话请教。我有一个同学修一门课,最后一个Project做到半夜三点时完工,大呼轻松之余上网解闷,发现一封新的E-mail,原来授课老师也工作到半夜三点,有设计了一个新的Project叫学生作。


再比如说美国教职人员活着很不轻松,一般没有国家投入这一说。如果自己不能做出成果拿到企业界的资助,处境就会相当艰难。助理教授(assistant professor)升副教授可不像国内这么容易。在princeton,五年内拿不到终身职位(tensure)就请卷铺盖走人。Princeton 大多助理教授都是这种命运。我所在的学校化学系的一个教授就是被princeton轰出来的,现在已经是某个领域中的带头老大一级的人物了(天啊, princeton也太横了)。像这种人,Princeton 又会利用其巨大的名望、优厚的待遇和良好的研究条件把人吸引回来。


前几天和国内同学联系,听说一个现在是直博生的本科同学一学期要修九门课,下学期则专门为老板出差。另一个硕士生一学期中半学期旷课为导师出差。首先以美国的课程标准,这样做大概死定了;其次,美国教授一般会让自己的学生多参加研究工作而不是做重复性项目。美国的博士生一般有一个资格考试,在硕士期将近结束时进行。形式时提出一个新兴课题,摆出方案,由五人评议小组审核课题的新颖程度,意义和方案可行性等。通过资格考试,你才可以在这个课题上开始你的论文研究。如果评议期间有人就同一课题发表了阶段性研究成果,你就必须修改课题甚至从头再来(作一次要看遍所有相关论文,还要做准备性的研究,要半年多时间呢,全废了可够点背的)。准备资格考试过程中还要修课呢,谁有时间出差?好多教授都让学生全心准备资格考试。

这种考试算轻松的, UCLA和加州理工学院的化学系博士资格考试有这么一项:几个教授从某篇新发表的文章中(博士生大概还读不到或并不在专项领域内)提取课题,让博士生在两三天内提出解决方案(人家可是作了好几个月才发表文章),以此测验学生对前沿研究的敏锐程度。这种考试有时一个通过的也没有。合格标准是十次中必须通过四到五次,过不了就对博士梦说永别吧。导师也许会帮助说话,但是像加州理工学院明确规定,百分之二十左右的博士生再优秀也拿不到博士,我可知道一个北大生物系的女生berkeley苦战四年,最终落马,现在硅谷某生物公司工作,年薪两万多(这点钱在物价飞涨的硅谷可不太好混)。


据说,加州理工学院六年博士毕业者就是天才,MIT有些博士生则耗时九年。清华的博士水平是很高的,但有时导师会让学生不用参加自己开的课的考试,有时会在该做论文研究时让你出差,然后再想办法让你的论文不战而胜......操作系统》这门课的MIPS模拟平台和基础代码(不是Linux或 MINIX)是由berkeley的一位教授设计的,现在为多个大学采用。值得注意的是这是一个非盈利的项目,对于这位教授的升迁和获取工业界的资助也没有任何帮助,而且不知耗费这个教授多少可用来做项目赚钱的时间.本文写到此处,我不禁怀疑自己太悲观或是忘本,TG期间我也是靠课程轻松和抄兄弟们的作业才挺过来的。但我清楚,即使像VLSI这样的硬件抛开不说,清华的课程管理决不能与MIT相比,也许六十年代是可以的。每一个清华人在海外都享受着清华两字所带来的荣耀,我衷心希望清华成为一个让平庸者却步,让挑战者兴奋,让优秀者更优秀的世界级学府;而不是只靠名气招揽人才却只提供平庸的教育。这才是我写本文的初衷。

Feedback

# re: 在麻省理工读计算机专业,看美国的计算机教育   回复  更多评论   

2010-02-07 09:05 by mcs51a
实践和认真,永远是科学或工程人员不能忘记的两个词

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理