网络资源的拷贝粘贴 备份参考之用


28 December 2008

转载Xi Tan同学去年写的一篇文章

 
在计算机领域做研究的一些想法(转载)

# 前言 #

1. 讨论一下计算机领域的牛圈和'带头大哥';

2. 讨论一下科研方法;

3. 讨论一下计算机领域的学术论文(会议、期刊);

# 第一章 #

计算机的大牛90%以上都在美国,所以只讲讲美国的CS。别的国家没什么太大的参考意义(英国、法国、匈牙利、日本、香港、新加坡、大陆、加拿大),不过还是说两句:第一句是,美国以外的地方CS和美国有差距,主要是没钱;第二句是,搞科研也讲'近亲繁殖',美国以外的其他地方很明显'人手不够'。没钱的问题看大陆就知道,高性能计算、硬件、网络。。统统没办法干。当年人家Stanford跑一个粒子加速器就几百万美金,中国哪个高校有这资金。人手问题也很明显,像Stanford的Dan同学,以前在Cololado Boulder,后来不也被挖走了?像以前呆在加拿大一个人闷做研究的Han Jiawei老大,不也被UIUC挖走了?为什么呢。说白了还是资源。Han Jiawei 02年被UIUC从加拿大的SFU拎到UIUC,转年就成了IEEE的FELLOW。为什么。说白了就是'近亲繁殖'。直到现在美国相当数量的大学(就不说全部了)都非常认可同行的推荐。学校要各个同行评分,发paper也是同行review,nominate也要同行,甚至PhD的application也相当依赖reference letter。另外呢,就是这些资源相当丰富的地方容易产'奶牛'。当年吴健雄也才第九名考进的中央大学,可是人家一跑美国去就成了实验物理大牛,还当了美国协会的会长。物以类聚,人以群分。你说90%的老大都在美国,你呆在印度做CS,有啥意思。不管是Science还是Engineering,还得靠inspiration。Inspiration靠什么?显然是要以Group为研究的基本单位,像Dan Jurafsky和Jiawei Han那样的人毕竟是少数。最好不还是被几个牛棚给挖走了?这玩意真没办法,是趋势。不说废话了,来扯美国的CS。

 

美国CS首当其冲的就是"五大牛棚":MIT,Stanford,Berkeley,UIUC,和CMU。其他的牛校像Washington,Princeton,Cornell,Wisconsin等等都是非常不错的,只不过可能光芒还不够。而且还有很重要的一点,就是这些学校的faculty好多都是'五大牛棚'出来的,自然地位也就低一些。尤其是Princeton和Cornell这类学校(其他还包括JHU,Maryland,Duke,甚至综合排名非常靠后的Amhest),好多Professor都是牛棚混出来然后过来独当一面的。特殊点的就是Washington和Wisconsin,还有诸如Caltech这类学校,他们的Alumni也出过不少人才。

 

首先是MIT。我脑子里(或者说几乎所有工科学生的脑子里)可能下意识地定死了MIT是工科最牛查查的学校。甚至我一直认为(至今仍然),MIT的脑袋都是畸形,整个MIT不是牛棚,而是一个ZOO。MIT简直就是发了战争财。开始做雷达,整的它的无线电啊,EE什么的巨牛无比。然后就是冷战,国防部投了好多美金做乱七八糟的东西。CSAIL还没有合并的时候,MIT的计算机实验室叫AI实验室。就是这个实验室,早期做了很多开拓性的工作。主要是冷战的时候(90年代以前),美国国防部投资了无数的资金,狂搞AI的项目。很多学校在那个时候得到了很大的发展,譬如Texas Austin,譬如UMass Amherst,他们的CS系便是那个时代的产物。可是后来AI的投入没有打到预期的产出,糟蹋了好多国防部美好的愿景,项目一个接一个的流产,大师也一个接一个的归隐。看看MIT那些早年毕业的大牛(50-60年代左右),基本都有深厚的物理背景,这就意味着他们不仅数学知识扎实,而且具有深厚的电子电气的背景。这些"牛群"在冷战后奔向各个其他的institution,自然就成了领军人物。好多人说,MIT虽然没有做什么牛哄哄的东西,可是任何一个人都可以证明,其他institution都是他在学术上的孙子的孙子。Orz. (麻教主千秋万代,一统江湖!! o(∩_∩)o...)事实上的确,比较一下MIT的PHD毕业生,在学术上是其他学校无法超越的。至少去年我在港中文'打杂工'的时候,我们组的'带头大哥'Professor Helen M. Meng就是在MIT拿的BS,MS和PHD;然后中大做Vision的老大Professor Xiaoou Tang,也是MIT的PHD。这两人明显带有MIT培养出来的严谨风格,而且学术嗅觉非常之好。记得我给Helen做presentation的时候,她问过我好些问题,都是一语中的的。而且她还鼓励我做Vision和Speech的数据融合,事实证明也是很好的思路。Helen在MIT是Stephanie和Victor的学生,Stephanie又和我们剑桥的Steve有很好的合作项目和官方渠道(例如CAM-MIT)。这两个组一直都在联合做Spoken Language Dialog System的项目。又一次雄伟而彪悍无比地证明了我说的'近亲繁殖'理论。。。娃哈哈~ MIT的老师我只接触过CSAIL的老大Professor Victor Zue,语音组的老大Professor Stephanie和Vision组的几个Professor。首先感觉是都很NICE,说话都很客气。尤其是Victor,记得去年在上海参加MIT面试的时候和Victor聊天,他老是笑呵呵的,想来脾气应该很好。虽然去年没有去成MIT的Vision组,可是总能感觉到MIT那种技术的金属质感给我带来的吸引和震撼。希望今年能去MIT念Stephanie的PHD啊~~ Bless...

 

然后扯一下Stanford。其实我原来对Stanford感觉蛮好的(现在感觉也不错),我在LA认识的朋友也应该是最多的(最多又是Stanford,然后才是Berkeley,UCLA和Caltech。SYF小朋友啊~ 嗯,我在Stanford最好的几个朋友之一了。SYF,看到这个帖子给师傅留个Message哈。嘿嘿)。可是因为种种原因,以前就压根没有打算过去斯坦福念书(主要是MWJ小朋友不让我去。我又乖又听话,所以就没申请了)。Stanford给我的感觉就是超级大,而且几乎没有什么软肋。历数美国诸多CS高校中,唯一能在AI方面和MIT抗衡的就数斯坦福了。而MIT现在AI仿佛有走下坡路的趋势,而斯坦福倚其地理优势和财政强势,迅速崛起。Sorry,不应该是崛起,是第二波浪潮~~ 斯坦福的AI,诸如视觉,语音和自然语言,机器人等等,都有大牛撑腰。然后在体系结构和数据库方面又依赖硅谷的强大应用平台,有着得天独厚的发展资源。AI作为CS的灵魂,斯坦福已经有了;体系结构和数据库这些应用背景很强的领域,硅谷也给斯坦福与生俱来的优势。当然,那帮学生也不是省油的灯,好多PHD没念完就跑了。什么GOOGLE啊,YAHOO啊,通通都迅速崛起了。另一方面也反应了斯坦福的学生商业头脑很好,很灵活,不像书呆子(譬如MIT,譬如Caltech。哈哈)。真没什么说的,牛哄哄的。对了,补充一点,斯坦福坐拥硅谷的土地,真是巨有钱啊。。。望尘莫及。

 

第三头大牛要数Berkeley。好多人和我讨论,和我争辩,到底是Berkeley厉害还是MIT厉害。我觉得没什么好比较的。因为每个学校发展的方向都不太一样,CS和CS没法比,可以比的只是某个组,譬如MIT的AI就比Berkeley的好,Berkeley的网络就比MIT好。Berkeley的传统优势就是网络,操作系统等等。早期Berkeley的CS毕业生好多去各个高校当教授,大多也做的是网络和操作系统这一块的东西。现在Berkeley的AI也发展了起来,诸如图形图像,语音语言都有了很大的发展。Berkeley作为公立学校的老大,收费低,又地处LA,开个什么国际会议啊,养个老啊,都挺好的。UC系统又联系广泛,而且Berkeley还和诸如Stanford,UCLA和Caltech这样的牛校贴得这么近,不做点东西出来真是对不起这地理位置。想想我本科毕业的学校'西北工业大学',其实计算机在中西部应该是最强的,在全国我觉得某些领域也能在前五(譬如计算机应用)。可是相比起同是国防科工委的北航,就没有了地理优势。西安显然没有北京有钱,地理位置显然没有北京好,而且显然也没有清华北大这样的学校和他交流,甚至连北邮北理北工大这样的学校在西安都没有。哦,对了,有个西电。Sorry,西电也是巨牛无比的。我甚至觉得在很多领域西电比西工大牛多了。记得我在CUHK的时候,看过几篇文章都是西电的老师和港中文的老师一起写的(譬如那篇影响我很大的Xiaou文章,就是和西电的老大一起写的)。然而,西工大的老师是和蔼可亲的。以前给予我诸多帮助的WQ老师,ZYN老师我感觉在学术上都是可以独树一帜的人。事实上也的确给了我很多启发和思考的灵感。当然还有我们更加和蔼可亲的XL老师。真是又是老师又是朋友。想起在清华-港中文做RA的那段日子,的确教会了我很多东西。北航的老师我只和LW校长聊过天。LW老师做的好像是软件理论,也是英国毕业的(好像是爱丁堡)。虽然LW老师都是校长了,可是那时候和我聊天一点都没有什么架子(5年前了),和蔼可亲的很。哎,大凡大牛都是和蔼可亲型的啊。扯着这么远,无非就是要说Berkeley有多么好的地理优势,把UC其他几个学校远远抛在了脑后(至少CS是这样)。譬如UCSD,譬如UCI,甚至UCLA也远不及Berkeley。去年我给UCSD的Alon做presentation,人家好像才40岁,就已经是IEEE的FELLOW了,这样下去怎么得了。Alon虽然是做Information Theory的,但是却为我的project提了一个非常好的建议,取得了很大的突破。这才让我感觉到IEEE Fellow的威力。我那时就想,要是Alon也跑到berkeley去,那该有多猛啊。。。。(插播广告:英语语法)'Had Professor Alon joined Berkeley, he would have already made far greater contribution to the information industry.' EAP没白来。。o(∩_∩)o...哈哈~ Berkeley的教授我就不认识几个,不过有几位朋友在那,传说没有Stanford漂亮。呵呵~

 

第四头大牛是UIUC。我对UIUC的印象最开始来自高我几级的SZ。SZ和我一样都是做OI出身,然后保送到了清华。据说在清华学习十分猛,老是系里前5名,后来又考了老高的GT,结果就去UIUC了。我当时十分郁闷,因为我那时候不是很清楚UIUC在CS领域里是个什么地位。我说怎么这么好一孩子不去Stanford和Berkeley,非跑到'玉米地'去了?不过这以后UIUC这个名字我就记下来了,这是第一印象。然后一个比较深刻的印象就是Jiawei han。我当年读Jiawei Han的书时,他还在加拿大。我也纳闷,我说怎么写了这么牛哄哄的书的人,倒喜欢做武林蒙面大侠了?莫非又是一'隐藏关卡的BOSS'?没想到Han老爷子02年的时候果真就被UIUC挖走了。这时候我才念起UIUC的好,觉得实属牛棚一个了。以前那些虚幻的带有主观臆断的想法通通成了幼稚的偏见。UIUC是干嘛的?回答其实很明确,如果说MIT是为AI而生的话,UIUC就是为硬件和超级计算机而生的。It is UIUC that 当年改良了计算机中的晶体管、集成电路和ALU的好多东西。Intel和AMD,还有早期做chip的Motorola等等,我想都大多受惠于UICU的faculty。自然,这些老faculty拿这些技术继续做硬件和超级计算机便有如鱼得水之势了。所以,包括硬件逻辑电路设计、计算机算术、机器结构和数值分析领域,UIUC都是独执牛耳的领军人物。UIUC的CS相来比较扎实,生源和师资都非常好,自然声誉也很高。尤其是硬件。早期的超级计算机大多出自UIUC之手,譬如ILLIAC的1、2、3、4代以及后来的一些超级计算机,都是这一领域的大手笔。UIUC的这些理论和工业成果和成功,对并行计算机的发展历程做出了不可磨灭的贡献。UIUC的老教授David Kuck就是并行处理的先驱,原来是NASA第一部超级计算机的首席设计师。属于在并行处理这个领域挖了一个坑然后等着后人来'建设社会主义美好家园式'的人物。UIUC早期的发展有很多历史佐证,譬如美国国家超级计算及应用中心(NCSA)在UICU的建立,譬如Marc Andreessen在UIUC读本科大四的时候在NCSA主持编写的Mosaic。无一不是一个又一个翔实的历史介绍。可惜,后来(85年-2000年左右),UIUC的硬件学术队伍老化,没有形成良好的学术梯队,硬件队伍失去了很多元老级的人物,新的professor呢,又无心做这些东西,大多又开始弄软件去了。把UIUC的传统和家业整个换了个门面。不过,正式由于这个原因,UIUC的CS系以拥有众多充满活力的世界级青年学者。例如Josep Torrellas (其弟子有在Cornell ECE,Georgia Tech CS任教的),Klara Nahrstedt (其弟子有在Cornell ECE,Purdue CS,Toronto ECE任教的),还有稍老一些的Gerald DeJong (其弟子有在UW-Madison,UT-Austin任教的)等等。前几年刚被Duke挖走的Herbert Edelsbrunner,由于对计算几何的根本性贡献,1991年拿了个Waterman Award,成为历史上第一位获此殊荣的计算机科学家。UIUC的校友也有很多有名的,譬如写了Mosaic并成立了netscape的marc Andreessen,譬如David Kuck的学生陈世卿(Steve Chen),譬如Lotus Notes的老大Ray Ozzie等等。UIUC CS 的学生毕业后去学术界的不少,Stanford,Princeton,Cornell,UT-Austin。。。都有UIUC的博士挑大梁。在U Michigan CS和UCLA CS,UIUC CS出身的教授更随处可见。在仅有的18名华裔ACM Fellow中,就有6名是UIUC的。另外一个不得不讲得人当然是我们可亲可爱的'刘爷爷'。当年我拿到'蒋震海外研究生奖学金'的时候,还是刘爷爷给我面试的,还要我背唐诗宋词。吓得我当时很紧张,竟然把沁园春雪给背错了几句,刘爷爷还很机敏地当即纠正了我的错误。哎,仍然记忆犹新啊。刘爷爷的确是个非常(N次幂,N > 3)的人,至少一点架子都没有,和蔼可亲得很。连我当年去MIT的推荐信也是刘爷爷亲手执笔的。可恨的是当年没有申Princeton,要不然panel一看是刘爷爷的亲笔推荐信,肯定就把我给收了。。。哈哈哈~ Professor C.L.Liu是属于桃李满天下的那种人。在国内最有名的当然要数Professor Andrew Yao了,人家在哈佛念完物理就跑到UIUC去念计算机了,当年的导师就是我们可爱的'刘爷爷'。后来姚老大成了世界上第一位拿过图灵奖的华人,当然,现在还是唯一一人。可以想象,当时我和图灵奖的导师聊天的时候有多紧张。。。可惜本人实在愚钝,在CS领域也毫无建树,刘爷爷把Victor从美国请过来给我面试去MIT我最后都没有如他老爷子的愿,跑到剑桥这地方天天骑自行车看康河来了。。。哎~ 真是惭愧。另外关于UIUC不得不说当然是他的发展'现象'。为什么说是'现象'呢?因为UIUC是有名的'玉米地',常年面临加州等地名校的"挖人"威胁。尽管不少教授在成名以后离开,UIUC计算机系仍然凭借着为中青年人才的成长营造最好氛围,在小地方办成了世界一流的研究重镇。我想,UIUC可能是惟一几个不靠地理位置发财的CS牛棚吧。这个'现象'值得很多学校借鉴,譬如西工大,西电,譬如中科大等等。

 

最后呢,当然是牛哄哄的CMU了。事实上,CMU的CS应该比UIUC要稍微好一些。因为CMU貌似就只有一个CS在撑门面,所以它的CS硕大无比,几乎没有弱项。尤其厉害的是它的vision和robotics,当然还有software。CMU的Robotics实在是名气太响了,'附送'的Vision也沾了很大的光,导致CMU在AI领域的大哥地位也无人能撼。我的本科学校去年就走了一个师兄去CMU,貌似就是做ROBOTICS的。什么FIFA CUP之类的足球机器人啦,CMU最喜欢招这些人了。其实我当年准备去CMU的VISION组的,可惜我当年实在是迷恋MIT,就没有申请CMU,现在想起来,如果当年能去CMU也是个不错的选择。对了,我一位很好的朋友现在就在CMU。可爱的CX小朋友。这哥们是少年班的天才,在CMU跟随图灵奖大师做'玄学'(他自己如是说的),哈哈哈。CX绝对属于天才型的,几十位图灵奖的逸闻趣事他都知道。引用我们JK同学的话叫'简直太神奇了'。我们漂亮的JK小同学如今在MIT做EE,所以高智商夸赞高智商总是很有分量。CX做事很踏实,也很有目的性,他就只跟图灵奖做理论计算机的研究。当时把我佩服得直咂舌。不过,现在终于如愿以偿了,人家以后可是图灵奖的弟子啊。。。哎~~ 和我的Professor Steve Young不是一个级别的。可爱的Steve,您啥时候也拿个图灵奖让俺们沾沾光啊。CX同学,过几年回西安的时候记得再吃饭聚一聚~(看到这个给我留言哈)。CMU不仅Robotics好,Software也是技术一流。据说现在微软招得最多的软件开发员工都是CMU毕业的。某种程度上说,CMU的老大们挣了我们不少钱。哼哼~ 另据CX小朋友介绍,CMU的CS系实在是过于庞大了。。。巨多教授。哥们,这还真够挤的~~ 好了,牛棚都介绍完了。都是我印象中的东西,肯定有很多不准确的数据和理解。不过应该大致差不多。够了~

 

# 第二章 #

 我思考后的结果告诉我,其实做科研的步骤,或者说写科技文献的步骤,不是很复杂(当年我做了4年的数模果真没白费,哈)。我总结了一下,大概就一下几点:

1.Introduction

选好一个学术方向后,对此方向上的已有成果进行阅读,分析,分类, 搞清楚已解决的问题是什么,现存的难点是什么,热点是什么, 写出综述报告。其实就是literature review啦。在CUHK LAB的时候,XL老师和Helen老师老是和我提这个词,我已经比较熟悉了。另外呢,刚入门的人应该看看Journal上的东西,毕竟那是沉淀了之后的东西。然后才可以慢慢看看conference的东西练内功。

2. Problem formulation

把所要研究的具有实际工程背景的学术问题进行描述,并转化成数学问题。数学一直都是最强有力的描述工具,当然,也是最正统的科学工具。

3. Main contributions

找到适当的数学工具,给出上述问题的理论上的解决方案,得到理论上的结果, 并用定理的形式进行阐述。还是数学,科学家和工程师只相信数学和事实。

4. Simulations or experiments

通过计算机仿真或实验研究进行上述理论成果的验证。CS,计算机科学与技术,首先是科学,是理论;可是最后终归要转化成实际的产品,不像做Pure mathematics的人,整天只要YY就可以了。。。-_-

5. Conclusions

给出一般性的结论,以及需要进一步研究的问题。有头有尾的事情。一次不可能把问题都解决好,总有可以瞻望的地方,可以改进的嘎吱角落弯。

 

 # 第三章 #

哎,扯期刊和会议。其实这是最没意思的东西了。想当年,我刚了解SCI和EI,整天琢磨着怎么在线看Nature和Science等等。其实,CS里面根本不是这么回事。CS是一个日新月异的领域,各种技术都在以不可预测的速度在发展和变化。这和基础科学有着太大的不同了。所以,什么物理化学生物一个实验做好多年,最后发到Nature和Science上面,真正上conference上发表的东西其实没有什么特别大的价值,都是只言片语,远远没有期刊的威力来得大。所以无聊的美国人加菲猫同学(哈哈~ Garfield有一个多好记的名字),弄了个SCI来做索引。弄了个IF把整个学术界搞得乌烟瘴气,尤其是大陆还有亚洲一些国家,整天就想着弄几篇高IF的牛paper。可是,CS压根就不是这个形式。CS的publication最大特点在于:极度重视会议,而期刊则通常只用来做re-publication。大部分期刊文章都是会议论文的扩展版,首发就在期刊上的相对较少。也正因为如此,计算机期刊的影响因子都低到惊人的程度,顶级刊物往往也只有1到2左右―-被引的通常都是会议版论文,而不是很久以后才出版的期刊版。因此,要讨论计算机科学的publication,首先就压根和IF无关。另外一个现象就是CS的会议规模都很有限,有时候只登十来篇甚至三四篇论文,有的还是季刊或双月刊。很多好的会议每年只录用三四十篇甚至二十篇左右的论文。所以,CS的几乎每个领域都有好几种顶级刊物和好几个顶级会议。

 

最牛哄哄的当然是'Journal of the ACM(JACM)'了,ACM的官方学刊。可是,这个鸟刊只刊登那些对计算机科学有长远影响的论文,因此其不可避免地具有理论歧视。事实上确实如此:尽管JACM征稿范围包括了计算机的绝大部分领域,然而其刊登的论文大部分都是算法、复杂度、图论、组合数学等纯粹理论的东西,其它领域的论文要想进入则难如登天。这让我想到了两件事情:一件是meritocracy;一件是GRE填空里面的一道讲专家如何鄙视layman的题目。哎~ 罢了。另外一个就是'Communications of the ACM (CACM)'了。从某种意义上来说,CACM比JACM要像Nature/Science很多。JACM上登的全是长篇大论,满纸的定义、定理和证明,别说一般读者没法看,就连很相近的领域的专家都未必能看懂。而CACM则是magazine,既登高水平的学术论文和综述,也登各种科普性质的文章和新闻。即便是论文,CACM也要求文章必须通俗易懂,不追求数学上的严格证明,而追求易于理解的直觉描述。在十几二十年前,CACM的文章几乎都是经典。但最近几年,由于CACM进一步通俗化,其学术质量稍有下降。

 

除了ACM老大的东西外,就是IEEE的了。'IEEE Transaction on Computers'是IEEE在计算机方面最好的刊物。但由于IEEE的特点,其更注重computer engineering而非computer science。换句话说,IEEE Transaction on Computers主要登载systems, architecture, hardware等领域的东西,尽管它的范围已经比大部分刊物要广泛。就刊物的质量而言,ACM Transactions系列总体来讲都高于IEEE Transactions系列,不过也不可一概而论。大部分ACM Transactions都是本领域最好的刊物或最好的刊物之一。大部分IEEE Transactions都是本领域很好的刊物,但也有最好的或者一般的。然而,非ACM/IEEE的刊物中,也有好的甚至最好的。例如,SIAM Journal on Computing被认为是理论方面最好的期刊之一。CS方面的会议论文事实上起着比刊物论文更大的作用。大部分会议都是每年一次,偶尔也有隔年一次的。正规的会议论文需要经过2-4个甚至更多个审稿人的双向或单向匿名评审,并且所有被接收的论文会被结集正式出版。大部分ACM的会议都是本领域顶级的或很好的会议。大部分IEEE的会议都是本领域很好的会议,但也有顶级的或者一般的。会议的档次通常可以通过论文录用率表现出来。顶级会议通常在20%左右或更低,有时能达到10%左右。我所知道的最低的录用率为7%。很好的会议通常在30%左右。达到40%以上时,会议的名声就很一般了。60%以上的会议通常很难受到尊敬。但也有例外。大名鼎鼎的STOC(ACM Symposium on Theory of Computing)录用率就达到30%以上,但它毫无疑问是理论方面最好的会议。造成这样的情形,主要是因为理论方面的工作者不多,而大部分人对STOC又有一种又敬又怕的心理。

 

下面列一些CS的顶级会议和期刊,有些是网上查到的,有些是某些人用SCI的IF排序做出来的:

Computer Vision

Conf.:

  Best:

    ICCV, Inter. Conf. on Computer Vision

    CVPR, Inter. Conf. on Computer Vision and Pattern Recognition

  Good:

     ECCV, Euro. Conf. on Comp. Vision

     ICIP, Inter. Conf. on Image Processing

     ICPR, Inter. Conf. on Pattern Recognition

     ACCV, Asia Conf. on Comp. Vision

Jour.:

  Best:

     PAMI, IEEE Trans. on Patt. Analysis and Machine Intelligence

     IJCV, Inter. Jour. on Comp. Vision

  Good:

     CVIU, Computer Vision and Image Understanding PR, Pattern Reco.

Network

Conf.:

     ACM/SigCOMM

     ACM Special Interest Group of Communication

     ACM/SigMetric Info Com Globe Com

Jour.:

     ToN (ACM/IEEE Transaction on Network)

A.I.

Conf.:

     AAAI: American Association for Artificial Intelligence

     ACM/SigIR IJCAI: International Joint Conference on Artificial Intelligence

     NIPS: Neural Information Processing Systems

     ICML: International Conference on Machine Learning

Jour.:

     Machine Learning

     NEURAL COMPUTATION

     ARTIFICIAL INTELLIGENCE

     PAMI

     IEEE TRANSACTIONS ON FUZZY SYSTEMS

     IEEE TRANSACTIONS ON NEURAL NETWORKS

     AI MAGAZINE

     NEURAL NETWORKS

     PATTERN RECOGNITION

     IMAGE AND VISION COMPUTING

     IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING

     APPLIED INTELLIGENCE

OS,System

  Conf.:

     SOSP: The ACM Symposium on Operating Systems Principles

     OSDI: USENIX Symposium on Operating Systems Design and Implementation

Database

Conf.:

     ACM SIGMOD

     VLDB:International Conference on Very Large Data Bases

     ICDE:International Conference on Data Engineering

Security

  Conf.:

     IEEE Security and Privacy

     CCS: ACM Computer and Communications Security NDSS (Network and Distributed Systems Security)

Web

  Conf.:

     WWW(International World Wide Web Conference)

Theory

  Conf.:

     STOC FOCS EDA Conf.: Best: DAC: IEEE/ACM Design Automation Conference

     ICCAD: IEEE International Conference on Computer Aided Design

  Good:

     ISCAS: IEEE International Symposium on Circuits And Systems

     ISPD: IEEE International Symposium on Physical Design

     ICCD: IEEE International Conference on Computer Design

     ASP-DAC: European Design Automation Conference

     E-DAC: Asia and South Pacific Design Automation Conference

Graphics

  Conf.:

   Best:

     Siggraph: ACM SigGraph

  Good:

     Euro Graph Jour.: IEEE(ACM) Trans. on Graphics

     IEEE Trans. on Visualization and Computer Graphics

CAD

    Jour.: CAD CAGD

SE

    conf.: ICSE The International Conference on Software Engineering

    FSE The Foundations of Software Engineering Conferences

    ICASE IEEE International Conference on Automated Software Engineering

    COMPSAC International Computer Software and Applications Conferences

    ESEC The European Software Engineering Conferences

  Jour.:

     SEN ACM SIGSOFT Software Engineering Notes

     TSE IEEE Transactions on Software Engineering

     ASE Automated Software Engineering SPE Software-Practice and Experience
 
 
呼呼呼~~ 终于写完了。弄了我1、2个小时~~ FT~
以上言论大多为个人关于CS的一些不成熟想法,并不代表本台观点。
通俗一点说就是:'纯属扯淡'。不要当真。
25岁以下的儿童须在女朋友的指导下完成阅读。钦此。
 By Xi Tan. 2007.10.6 于英国剑桥大学三一学院 绿野猪楼 R10 ~ :-)
 

9 December 2008

美国大学计算机专业的排名 [zz]

 
总的来说,前20的CS可以分成三波:

(1) 4 个最为优秀的CS Program: Stanford, UC. Berkeley, MIT, CMU

(2) 6 个其他前10的: UIUC, Cornell, U. of Washington,Princeton, U. of Texas-Austin 和 U. of Wisconsin-Madison, 其中UIUC, Cornell, U. of Washington和UW-Madison几乎从未出过前10。

(3) 其他非常非常优秀的CS:CalTech, U. of Maryland at CP, UCLA, Brown, Harvard, Yale, GIT, Purdue, Rice, 和 U. of Michigan.

约定:CS=计算机科学(系)。

总的来说,前20的CS可以分成三类:

一、4个最为优秀的CS Program: Stanford斯坦福大学, UC.Berkeley加州大学(伯克利分校), MIT, CMU 卡内基梅隆大学

二、6个其他前10的: UIUC诺伊大学-香槟分校,
Cornell康纳尔大学,
U. of Washington,Princeton,
U. of Texas-Austin 和
U. of Wisconsin-Madison,
其中UIUC, Cornell, U. of Washington和UW-Madison几乎从未出过前10。

三、其他非常非常优秀的CS: CalTech, U. of Maryland at CP, UCLA, Brown, Harvard , Yale, GIT, Purdue, Rice, 和 U. of Michigan.

********************************
Stanford

Stanford URL: http://www.stanford.edu/

Stanford的CS是个很大个的CS,拥有40人以上的Faculty成员,其中不乏响当当硬梆梆的图灵奖得主(Edward A.Feigenbaum, John McCarthy) 和各个学科领域的大腕人物,比如理论方面的权威 Donald E. Knuth;

数据库方面的大牛Jeffrey D. Ullman(他还写过那本著名的编译原理,此人出自Princeton);以及RISC技术挑头人之一的John Hennessy。相信CS的同学对此并不陌生。该系每年毕业30多名Ph.D.以及更多的Master。学生的出路自然是如鱼得水,无论学术界还是工业界,Stanford的学生倍受青睐。几乎所有前10的CS中都有Stanford的毕业生在充当教授。当然同样享有如此地位的还包括其他三头巨牛:UC.Berkeley, MIT 和 CMU.

毕业于U. of Utah(犹他州)的Jim Clark 曾经在Stanford CS当教授。后来就是这个人创办了高性能计算机和科学计算可视化方面巨牛的SGI公司。SUN公司名字的来历是:Stanford University Network.。顺便提一下,创办 YAHOO的华人杨致远曾在斯坦福的EE攻读博士,后来中途辍学办了YAHOO。

CS科研方面,斯坦福无论在理论,数据库,软件,硬件,AI 等各个领域都是实力强劲的顶级高手。斯坦福的RISC技术后来成为SGI/MIPS的 Rx000系列微处理器的核心技术; DASH,FLASH 项目更是多处理器并行计算机研究的前沿;SUIF并行化编译器成为国家资助的重点项目,在国际学术论文中SUIF编译器的提及似乎也为某些平庸的论文平添几分姿色。

Stanford有学生14000多,其中研究生7000多。CS有175人攻读博士, 350人攻读硕士,每年招的学生数不详,估计少不了,但不要忘了,每年申请CS的申请学生接近千人,申请费高达80$。

斯坦福大学位于信息世界的心脏地带――硅谷。加州宜人的气候,美丽的风景使得Stanford堪称CS的天堂。33.1平方公里的校园面积怕是够学子们翻江蹈海,叱诧风云的了。

申请斯坦福是很难成功的,但也并非不可为之。去斯坦福这样的牛校,运气很重要,牛人的推荐也很重要。

********************************
MIT

MIT URL: http://www.mit.edu/

MIT招生好象不看GRE成绩。但MIT的CS是巨牛的,99年最新排名上它和斯坦福被打了5.0 的满分,并列第一。MIT的CS曾为CS的发展作出不可磨灭的贡献,数据流计算的思想和数据流计算机、人工智能方面的许多重大成就,以及影响了整个UNIX界的X-Window……MIT和斯坦福,CMU,UC. BERKELEY一样,都是几乎在CS界样样巨牛的学校。

MIT的Media Arts and Sciences其知名度不在Computer Department下。主要是多媒体技术,信息处理,人工智能……有一大批著名的教授,如Marvin Minsky(Turing Award)……

********************************
UC.Berkeley

UC.Berkeley URL: http://www.berkeley.edu/

同样地处旧 金山湾畔,硅谷地带,离Stanford只有大约 50公里的加州大学伯克利校区:UC.Berkeley是美国最激进的学校之一。60年代的嬉皮文化,反越战,东方神秘主义,回归自然文化都起源于此。诗人爱伦金斯堡是当年 Berkeley的代言人。

在当今高科技领域C. Berkeley在缔造新的神话,在文学、数学、化学、新闻等20多个大的学科领域中位居前3。16个诺贝尔奖得主,总数近200的科学院院士、工程院院士,连同众多在硅谷商战中成为亿万富翁的伯克利人撑起了一面汇集天下之英才的大旗。INTEL总裁AndrewGrove毕业于UC. Berkeley。

BSD版的UNIX影响了整个OS界,伯克利的RISC技术后来成为了SUN公司SPARC微处理器的核心技术,巨牛人物David Patterson接下了一个6亿美元的项目用于新型计算机体系结构,特别是IRAM的研究开发。

UC. Berkeley有学生30000多,研究生超过8500。申请费和其他加州大学的分校一样,40$。据一项最近的调查,伯克利已经成为美国大学生最向往的研究生院,高居榜首,其申请的难度可想而知。UC.Berkeley的 DEADLINE一般很早,12月中就截至了,其内部的实际DEADLINE其实要迟一些。

Berkeley的CS是个大系,Faculty中有图灵奖得主以及象 Patterson这样的巨牛。学生的出路同Stanford,MIT,CMU一样,光辉灿烂,前程锦绣,这里不再赘述。CS科研方面,Berkeley也是样样强,门门巨牛。

旧 金山湛蓝起伏的海湾,苍翠绵延的山峦,舒心宜人的气候,以及近在咫尺的硅谷…… 这一切的一切不也使得UC.Berkeley 俨然一个CS 学子的世外桃源么?

********************************
CMU

CMU URL: http://www.cmu.edu/

CMU是个位于匹兹堡的不大的学校,学生7000多,校园好象也不大。但这个学校在工程及其他一些领域却是顶尖的学堂。 CMU的CS不单单是个系,而是一个学院,其规模之大,可能只有Stanford, UIUC可比。教师学生的情况同前面3个类似,不再赘述。Mach操作系统,PVM,C.mmp等都有CMU的巨大贡献。

申请CMU的难度很大,因为尽管CMU的 CS Faculty很多,但每年只招不足30人的研究生队伍。

********************************
Cornell

URL: http://www.(cs.)cornell.edu

作为 IVY LEAGUE的成员和一所私立学校,Cornell有其独到的优势。在美国,私立学校一般比公立学校难进,其学生也是经过很严的选拔才录取的,Cornell的CS学生入校后多能享受FELLOW的待遇,其个人经济条件非公立学校可比,加上贵族式校友的提拔,私立学校的出路是很诱人的。

康乃尔在理论计算机方面一直是顶级高手,但在其他CS领域并不总能在前10。 Cornell学生18000多,研究生过5000。CS每年招攻读Ph.D.的学生25 人左右。

********************************
UIUC

URL: http://www.uiuc.edu/

UIUC的工程院在全美堪称至尊级的巨牛,其CS,ECE,EE在历史上都屡建战功。在CS方面,从早期的超级计算机ILLIAC I, II, III, IV到后来的 CEDAR,都是CS发展史上,特别是并行计算机发展史上的重要事件,影响,引导了很长时期的发展。 David Kuck曾是并行处理界的一代先驱。

超级计算机研究开发中心:CSRD,美国国家超级计算及应用中心:NCSA等众多的机构,使得UIUC的CS常常成为研发的领军头领。

大家可能还记得,Netscape-Navigator 的最初开发人员中有个Marc・ Anderssen。这位来自WISCONSIN的小伙在UIUC读本科,大四的时候在NCSA参与编写了MOSAIC,后来他去了硅谷,并在那里遇到了前面提到过的大牛: Jim Clark,SGI的前创始人,两人一见如故,联手创办了著名的网景,并一度在浏览器市场上独霸武林。

随着一代代至尊大师的离去,UIUC 的 Faculty看上去似乎并不引人 注目。但得提醒你,UIUC的CS向来以实干著称。我期待着他们下一个惊世之举。

UIUC是个大学校,学生数过35000,研究生院的近万。UIUC的CS很大个,40余个Faculty提供了全面的CS教育和科研项目。每年30多个博士的毕业数目似乎只有斯坦福可以匹敌。

UIUC的Polaris并行化编译器是这个领域和斯坦福的SUIF直接叫板的拳头产品。清华开发并行编程环境时选用了这个系统。只是代码庞大,运作缓慢的Polaris搞的清华有那么一点点瘪西西……

UIUC 在计算机硬件,软件,AI,DB,等各个领域都相当巨牛。特别是硬件,前面提到的ILLIAC,CEDAR……事实上,UIUC在超级计算机系统的研究开发方面决不逊于CS四大天王中的任何一个,甚至有过之而无不及。NCSA建立在UIUC这一事实本身就是佐证。

UIUC-CS 的学生毕业后去学术界的不少,Stanford, Berkeley……都有UIUC的博士挑大梁。但更多UIUC-CS学人还是进入业界,成为业界实干的中坚。

********************************
U. of Washington

U. of Washington URL: http://www.washington.edu/

位于 Seattle的 UW 得天独厚--计算机界的巨牛MS就在西雅图,而且更为要命的是,Bill Gates就是那里儿的人。这位Harvard 的辍学者给了哈佛许多MONEY, 但同给UW的钱财相比,实在是小巫见大巫。

U. of Washington位于分光秀丽的WASHINGTON湖畔,气候四季如春。33000多学生中研究生有8000。Seattle最令人厌恶的地方可能就是一年有160天会降水。

UW的CS较大,30多名Faculty成员,每年近20个优质博士毕业,以及大量的Master。估计每年的招生数应该不低,UW的CS在各个方面比较均衡,最强的软件排名第5,而其他领域也一般都能位居前10,好象没有明显弱的地方。

图灵奖得主 Dick Karp从Berkeley告老还乡后又被返聘到了UW的CS。U. of Washington的 CS要求很高,Ph.D.学生入学的平均 GPA 高达 3.86,GRE2160+,加上一般较早的DEADLINE,申请UW是相当有难度的。


********************************
Princeton

Princeton URL: http://www.princeton.edu/

Princeton是个令人神往的地方,这里曾经是科学的世界中心。Princeton的CS不大, 18个Faculty成员,学生数也不算多。科研上除了排名第5的理论,似乎俺还没注意到其他闪光点,望知情人补充。但是,Princeton无疑培养出了大量计算机界的优秀人物,Jeffrey D. Ullman, John McCarthy等巨牛人物均出自大名鼎鼎的Princeton. 在Princeton领受的教育是最好的教育熏陶。

Princeton学校不大,只有6000多学生,研究生不过1700。Princeton 的 CS录取很严,虽然已有不少华人学生就读 Princeton。

********************************
UW-Madison

UW-Madison URL: http://www.(cs.)wisc.edu

UW-Madison的CS较大,35个Faculty,200多个研究生,每年招60-70 个新生。 目前几乎 1/4 的 Faculty 来自Berkeley,博士生毕业后有去 Stanford,Berkeley等牛校挑大梁的,但和UIUC类似,似乎进入业界的更多些。然而要在这里拿到博士学位可不容易。超过7成的人,会在中途找到比较理想的工作后,拿着硕士文凭撒丫子就跑,免得被那些无穷无尽的科研项目给整瘪了。一位WISCONSIN的哥们在回答我关于 "该做些什么准备"的提问时说:尽情欢乐享受吧,这样可以 Bring A healthy and energetic you to Madison to survive those projects.

UW-Madison的数据库一直在前 3 位,经常是第1位。这里的数据库由于在设计实现DBMS系统上的传统优势,使得其在业界的声誉相当崇高, MicroSoft 里据说有一帮WISCONSIN的校友从中兴风作浪,Oracle也格外青睐WISCONSIN-Madison的学子。可惜,偶似乎对数据库并不是很感兴趣。

WISCONSIN的硬件,计算机体系结构实力巨牛,99排名第6,对业界相当有影响力。微处理器中的超标量技术(SuperScalar)源于此地;多处理机CACHE一致性的总线侦听SNOOPING协议,IEEE SCI协议等,都是源于此地。正在研究开发中的MultiScalar技术和DataScalar技术据吹可以把微处理器每个时钟周期的指令发射数提到10以上,大大地提高微处理器的计算能力。WISCONSIN的软件99排名第 7。主要是在系统软件方面做OS的设计与实现,WEB上的CACHE策略,支持共享主存和消息传递两种并行编程模式及其混合的并行程序设计语言和编译器,以及由MIDSHIP项目挑起的关于并行与分布式计算,OODB,科学数据库,支持图象查询的新型查询语言以及图象处理等方面的研究。由于美国有大量的卫星图象需要及时处理,加上迫切需要GIS系统的研究开发,这方面的研发使得UW-Madison 捞到了不少经费。

WISCONSIN和UIUC的CS理论都是10名左右。WISCONSIN的Carl de Boor 是逼近理论方面的大牛。

U. of Wisconsin-Madison是个大型综合性的学校,40000 学生中研究生院的超过10000,这万人中有博士生5000,硕士生3500,法学院、医学院、护院、兽医院的职业学生2000人。2200多 Faculty中有多位诺贝尔奖得主,52个院士,18个工程院院士。130个科系几乎涵盖了所有科研领域。科研经费常年位居全美前4。Wisconsin的研究生院稳居 TOP20,而且由于它的大而全,在科研排名上能进前10。UW-Madison在95年NRC 的41项评价中,16项位居TOP10,35项排进了TOP25。

U. of WISCONSIN-Madison的校园位于风景如画的湖畔林荫中. 现代化风格和古典欧美风格的建筑物在平缓起伏的湖岸上交相呼应。学校自吹拥为世界上最美的校园之一。偶不知道其他校园的场景,单从他们在网页上提供的照片来看,的确很美。WISCONSIN的冬天很冷,很长,而且大雪纷飞,寒风凛冽。

需要注意的是,WISCONSIN的CS有点不同于许多其他学校, 它隶属于College of Letters & Science. 而不在College of Engineering下面,因此许多偏硬件的项目,比如嵌入式系统,网络硬件、路由,多媒体,通信,自控以及数字信号处理及等项目不在CS Dept, 而是在工程院 下的 Dept. of Electrical & ComputerEngineering 即 ECE系。那个系也挺大个,比CS还要大不少。98年在工程类排名的计算机工程一项上也排了第9。但偶将来怕跟他们没多少来往。伊拉的网址:

工程院:http://www.engr.wisc.edu

ECE系:http://www.ece.wisc.edu

********************************
URL: http://www.(cs.)utexas.edu/
UT-Austin的CS较大。Faculty中好象有个图灵奖得主。( Edsger Wybe Dijkstra,是那个搞算法的)。好象该系发展比较平衡,最好的AI 排第5,其他几个专业也多能挤进前十。

UT-Austin是个巨大的学校,5万学生,研究生院的可能有1.3万。但学校的主校区却好象面积不足,仅140公顷,按美国大学的标准,太不足了。偶曾见到一张照片,校园周围高楼林立,可能是位于市中心的缘故吧。

总的来说,前 10 的 CS由于在当前国际计算机行业普遍热门的情况下,很难申请,但决不是不可为之的!

********************************

CalTech

CalTech URL: http://www.caltech.edu/

CalTech的CS很小,只有大约5位教授,每年招很少的学生。虽然申请CalTech是免费的,但建议轻易不要尝试。(也别让我这话给吓趴下了)

由于系太小,CalTech 好象只是在计算机硬件,和科学计算的可视化方面很强。该系多年以来一直稳坐 NO.11,12几乎没动过窝, 类似的情况 还有斯坦福、MIT,稳居NO.1,2, Cornell稳居NO.5, UW-Madison, 稳居 No.9,10.CalTech的CS和其他系,比如数学,物理,生物等需要大量科学计算的部门联系很紧密。

CalTech 学校也很小,2000名学生中研究生占1100人。 Faculty人数也不多,但几乎个个是巨牛,按平均水平看,CalTech 可能是世界上最牛的学校了。偶好象就没见到来自大陆的学子在该系,可能是偶孤陋寡闻吧。

这是一个实力相当强劲的CS,软件(8),数据库(4),AI(9) 三个专业都挤进了前10


********************************
URL: http://www.ucla.edu/

历史上UCLA的CS曾经一度辉煌,上到过第6 (NRC'82),但近年来一直徘徊在13-15。而且CS的各个专业细目几乎没有一个能进前10。尽管如此,UCLA的CS还是十分强大的。

UCLA辉煌的历史可能在于它对Internet的发展,所作出的巨大贡献。六十年代美国的 ARPA在搞网络互连的开创性研究, ARPA网的四个节点是:UCLA,Stanford 的 SRI,UCSB 和 U. of Utah。 此时一位来自美国新英格兰地区的青年: Vinton Cerf不去离家咫尺的 Yale大学,远涉千里,来到了加州。他先在Stanford获得数学学士,然后到UCLA拿下了CS 的硕士和博士。

毕业后Cerf一直在SRI从事ARPA网的研究,特别是如何让它无法正常工作。几年后,Cerf与MIT的一位到业界闯荡的数学教授Kyhn合作研发,搞出了一套软件系统用于网络互连(1973)。这就是TCP/IP协议的诞生。

UCLA 作为 INTERNET 的先驱,地处阳光灿烂的南加州,应当成为CS学生的乐土。加州的学校的确难申请,但也是可以一试的。

UCLA有学生33000人,其中研究院的占 9900人。地处落杉矶的 UCLA,周围几乎有玩不尽的地方,DISNEY,HOLLYWOOD……由于位于大城市, 校园不是很大,但风景似乎非常美丽。UCLA的CS较大,规模应该和 U. of Washington 和 UW-Madison类似。


********************************
U. of Michigan

U. of Michigan URL: http://www.(eecs.)umich.edu

U. of Michigan是个非常了不起的学校。在BIG TEN里,从综合的角度上说它可算的上是领头羊了,当然UW-Madison,UIUC 也紧随其后。

这里的CS偏硬的更利害些,硬件排在第9,而计算机工程(7),EE(5) 都是前10中的巨牛。 MICHIGAN 的 CS 和EE合在一起称为 EECS系。是个相当大个的系,每年招的学生当不在少数。

MICHIGAN的CS估计在历史上也相当牛,UW-Madison CS里的两位来自umich的教授都是院士,在其他CS系里,比如UIUC的,也大有UMICH的牛人在。如前述,UIUC的CS在硬件上极强,而UMICH的CS中有许多UIUC的哥们在那里当老师。

********************************
GIT

GIT URL:http://www.git.edu/

GIT是个较大的学校,具体数字记不清了。GIT的工程院很利害,研发经费仅次于MIT,和UIUC, Umich差不多。CS系的数据库第7,GUI第4。其他没有列在前10,偶也没有去仔细了解过,就一概的不清楚了。

********************************
Brown

Brown URL:http://www.brown.edu/

Brown的规模不大,具体数字记不清了。这所 IVY LEAGUE 的私立学校可能拥有一些类似于CORNELL的优势。CS的GUI可以列在NO.6,好象还有许多关于语音识别等偏人工智能方面的研发项目。

********************************
Harvard

Harvard URL: http://www.harvard.edu

在CS的早期发展史上,Harvard曾经是泰斗级的人物,毕竟CS和数学,物理的渊源太深太长了。可惜Harvard并不重视工程化的东西,现在伊的CS已不能和圈里的巨牛,甚至伊的当初相提并论了。好象王安是这里出来的,Bill Gates也是这里出来的,Harvard毕竟是Harvard,总是名人辈出。毕竟Harvard总是可以招到最优秀的人,甚至是在它很瘪的领域里。但千万别以为哈佛人人牛。据说美国人的调侃中,专门有一条是说哈佛的某些学生是如何令人叹为观止的愚蠢……偶还没有身在美国,不知是真是假。

Harvard不喜欢带工程色彩的东西,CS 是挂在Arts & Science学院下面的Division of Engineering and Applied Science,连独立的一个系好象都不是。除了理论可以排进前10,其他项目怕也拿不出多少货色了。

但是,如果给我一次机会的话,我一定申请Harvard。因为这里是Harvard,你可以学到许多在别的地方难以学到的东西。专业知识并不是全部,况且哈佛的教育是不会差的,虽然它在CS 的科研上没什么好吹的。哈佛的研究生每年超过 20000$ 的FELLOWSHIP是你安心寒窗苦读的强大后盾。

哈佛大学学生18000人,其中研究生院的11000人。Harvard大学拥有世界上最多的诺贝尔奖得主,150多个美国国家科学院院士……哈佛是个巨牛云集的超级牛圈。哈佛的 CS 估计不会是个大个子, 招的学生可能也不会多,申请的难度应当很大。


********************************
Purdue

Purdue URL: http://www.purdue.edu/

可能许多人还不知道,Purdue 的计算机系是美国最早成立的计算机系。建系之初一直处于TOP10。在70年代由于本人不甚了解的原因,没落了。Purdue的排名也不太稳定从13到 30的排法偶似乎都见过。Purdue是个大个的学校,有35000学生。其工程院很出名。

********************************
Rice

Rice URL: http://www.rice.edu/

Rice是个位于休斯顿的小学校, 4000个学生,研究生有1600左右吧。CS也不大。优势在于软件,排在第9。别的情况偶不了解,但偶特别想告诉大家的是,该系的 KEN KENNEDY是个巨牛的人物。伊是美国 HPCC 常委的关键人物之一,好象还是总统在信息科学方面的特别顾问。KENNEDY是并行计算领域的大牛牛。前几年,伊义无反顾地承担起高性能 FORTRAN 语言(HPF)的编译器研制工作,项目之大,投入人力之巨,加上伊的权威地位,被人们普遍寄予厚望。可惜后来项目失败了。从此并行计算界陷入了一阵低潮。这几年 KENNEDY 好象转向去作针对特定处理器的后端优化技术了。Rice CS 学生的出路相当好。

********************************
YALE

YALE URL: http://www.yale.edu/

YALE 曾经也进过前 10,NRC'82 的排名上,是 YALE和 UCLA而不是 Princeton和UT-Austin 位于前 10 的榜上。YALE的 CS不大,十几个老师加上为数不多的学生,每年只招六个博士研究生。

和 Harvard这样很重文理的学校一样,YALE 的CS在理论上比较强。但不同于哈佛,YALE有独立的CS系,受到较高的重视。YALE-CS 在 AI,软件方面比较强。著名的 LINDA 并行编程模式是在这里提出并实现的。YALE 的毕业生中到学术界的比到业界的似乎要多,哈佛似乎也是这样。

这里只随便罗列了一些俺顺口拈来的东西,仅供参考。其实 CS其他很好的学校还有很多,比如: UCSD,USC,Columbia,UNC-CH,DUKE,U. of Penn等等。 Columbia在AI,语音识别,自然语言处理等方面颇有造诣,而北卡: U. of North Carolina at Chapel-Hill 和 U. of Utah方面则是顶级牛校。
 
 

小米的信

"Twenty years from now you will be more disappointed by the things you didn't do than by the ones you did do. So throw off the bowlines.
 
Sail away from the safe harbor. Catch the trade winds in your sails.
 
Explore. Dream. Discover." 
                                                  
                           -- Mark Twain

30 November 2008

Randy Pausch

 
In Randy Pausch's Last Lecture at Carnegie Mellon University in the Fall of 2007, facing pancreatic cancer and the likelihood that he would only live a month or two, Randy summed up his life's wisdom for his kids (then 1,2, and 5). He gave his lecture to several hundred in a CMU auditorium, but it has now been viewed on YouTube by millions of Americans.  It's enormously inspiring, tear-rendering and well worth your time if you haven't seen it.

His Last Lecture is now fleshed out in a book of the same name (co-written with Jeff Zaslow, the WSJ reporter that brought his lecture to widespread prominence) and he recently filmed an ABC News Special with Diane Sawyer. His comments are immensely wise for a 47 year old.

Randy Pausch alas died in his home last night (July 25, 2008) as reported by Diane Sawyer on GMA. Randy Pausch's home page is here.

He lived a vibrant life to the end, giving a charge to the graduating seniors at his beloved Carnegie Mellon University just in June 2008

and providing moving testimony to Congress on supporting pancreatic cancer research to help future innocent victims (3/13/08).

Notable quotes:

  • When there's an elephant in the room introduce him

  • Brick walls are there for a reason. The brick walls are not there to keep us out. The brick walls are there to show how badly we want something. Because the brick walls are there to stop the people who don't want something badly enough. They are there to keep out the other people.

  • If there's anything I want to do so badly, I should have already done it.

  • We can't change the cards we are dealt, just how we play the hand. If I'm not as depressed as you think I should be, I'm sorry to disappoint you.

  • Work and play well together.
    - Tell The Truth. All The Time. No one is pure evil.
    - Be willing to apologize. Proper apologies have three parts: 1) What I did was wrong. 2) I'm sorry that I hurt you. 3) How do I make it better? It's the third part that people tend to forget…. Apologize when you screw up and focus on other people, not on yourself.
    - Show gratitude. Gratitude is a simple but powerful thing.
    - Find the best in everybody…. Wait long enough, and people will surprise and impress you. It might even take years, but people will show you their good side. Just keep waiting.
    - If you want to achieve your dreams, you better learn to work and play well with others…[you have] to live with integrity.

  • Collaboration, treating others with respect.
    - Never found anger a way to make things better.
    - How do you get people to help you? You can't get there alone. People have to help you and I do believe in karma. I believe in paybacks. You get people to help you by telling the truth. Being earnest. I'll take an earnest person over a hip person any day, because hip is short term. Earnest is long term.
    - Loyalty is a two-way street.
    - Get a feedback loop and listen to it. Your feedback loop can be this dorky spreadsheet thing I did, or it can just be one great man who tells you what you need to hear. The hard part is the listening to it.

  • Persistence and hard work.
    - When you are doing something badly and no one's bothering to tell you anymore, that's a very bad place to be. Your critics are the ones still telling you they love you and care.
    - Don't bail: the best gold is at the bottom of barrels of crap
    - Don't complain, Just work harder. [showing picture on screen] That's a picture of Jackie Robinson. It was in his contract not to complain, even when the fans spit on him. You can spend it complaining or playing the game hard. The latter is likely to be more effective.
    - Experience is what you get when you didn't get what you wanted…. I probably got more from that dream [of playing professional football] and not accomplishing it than I got from any of the ones that I did accomplish.

  • Fun, wonder, living your dream.
    - Decide if you're a Tigger or an Eyeore. I'm a Tigger.
    - It is not about achieving your dreams but living your life. If you lead your life the right way, the karma will take care of itself, the dreams will come to you.
    - Never underestimate the importance of having fun. I'm dying and I'm having fun. And I'm going to keep having fun every day, because there's no other way to play it….Having fun for me is like a fish talking about the importance of water. I don't know how it is like not to have fun…
    - Never lose the child-like wonder. It's just too important. It's what drives us. Help others.

  • Risk-taking.
    - You can tell the pioneers by the arrows in their backs. But at the end of the day, a whole lot of people will have a whole lot of fun.
    - Better to fail spectacularly than do something mediocre. [Randy Pausch gave out a First Penguin award each year when he was teaching to the biggest failure in trying something big and new because he thought this should be celebrated. First Penguins are the ones that risk that the water might be too cold.]

  • Parenting and kids.
    - The best piece of parenting advice I've ever heard is from flight attendants. If things get really tough, grab your own oxygen mask first.
    - About his pancreatic cancer: It's unlucky, but it not unfair. We all stand on a dartboard and some of us randomly get hit by pancreatic cancer. But my children won't have me for them and that's not fair.
    - Someone's going to push my family off a cliff pretty soon and I won't be there to catch them and that breaks my heart. But I have some time to sew some nets to cushion the fall so that seems like the best and highest use of my time and I better get to work.
    - I'm sorry I won't be around to raise my kids. It makes me very sad but I can't change that fact, so I did everything I could with the time I have and the time I had to help other people.
    - Importance of people instead of things. Told story of buying new convertible that he was so proud of and taking niece and nephew for a ride. Randy's sister, the kid's mother was telling them how important it was to keep car pristine and kids were laughing because at the same time he was pouring a can of orange soda on the back seats. His sister asked what are you doing and he said "it's just a thing." And nephew Chris wound up being really grateful because he had flu and wound up throwing up on way home. "And I don't care how much joy you get out of owning a shiny new thing; it's not as good I felt from making sure that an 8 year old didn't have to feel guilty for having the flu."
    - [not a direct quote] but Randy implores parents to always indulge your children's wild ideas (he talks about how important it was that his parents let him decorate his walls with math formulas, despite the negative impact on their house's resale value) He says: "If you're going to have childhood dreams you should have great parents who let you pursue them and express your creativity."
    - It is Important to have specific childhood dreams. (For example, Randy wanted to play football in the NFL, write an article for the World Book Encyclopedia, experience the Weightlessness of Zero Gravity, be Captain Kirk from Star Trek, work for the Disney Company.)

  • Be good at something; it makes you valuable…. Have something to bring to the table, because that will make you more welcome.

  • I've never understood pity and self-pity as an emotion. We have a finite amount of time. Whether short or long, it doesn't matter. Life is to be lived.

  • To be cliché, death is a part of life and it's going to happen to all of us. I have the blessing of getting a little bit of advance notice and I am able to optimize my use of time down the home stretch.
 

24 November 2008

Other Tips

 
Questions and Answers

What is the function of the statement of purpose?
You must demonstrate to the committee how your goals coincide with what the program has to offer as well as how you will fit in and how your qualifications will benefit the program. It is the personal statement that communicates to the admissions committee what it is about you which makes you stand out from the other applicants. The more competitive the school, the larger the pool of applicants with strong GPAs and GRE scores, the more important the personal statement becomes in the selection process.  Therefore it is important to devote ample time to writing your statement.

How important is the statement of purpose in the application process?
In short, it is a very important piece of application materials. Start working on it at least three weeks before the deadline for you to sent your documents. Even if all the rest of your application is perfect the carelessly written statement can spoil all your efforts. Members of the admission committee will use it to determine what kind of person you are and whether you are capable to be successful in their PhD program, how well you are suited for that, how goal oriented you are and many other things. Well-written statement can greatly help you to get admitted even if you have average test scores.

What information should I include in the statement of purpose?
Discuss your career goals, and how an advanced degree and this program would help you get there. Include relevant experiences such as research you have done and skills you have demonstrated.
Relevance is key and doing your homework about graduate school programs will help you determine relevancy. Ask some of these questions... what degree programs does this school offer? What areas of emphasis does it offer within that major? What license and certificate preparation does the program provide? What original research is being done by which faculty at this school? The answers to these questions should help you decide to which schools and programs you'll apply. This information should also be incorporated into your statement of purpose. Only include your life story if it's relevant.

How exact should I be about the research field I would like to work in?
People in the admission committee are looking for applicants with determination, for those who know what they want to do in their life and know why this university and this program will enable them to reach their goals. If you have broad interests and experiences you can state that you are still choosing the exact field for your research, usually though it is better to state the area you are especially interested in (it can be quite a broad area such as experimental condensed matter physics or modeling of cellular processes). Don't narrow you field too much though. Make sure that at least 2-3 faculty members are working in the field you have emphasized. And remember you can always change your mind after you have been admitted into the program; nobody will force you to stick to the area of research you emphasized in your application materials.

Should I mention the faculty members who I want to work with?
It is highly advisable to mention faculty members who you might be interested to work with. It is especially important if you have already done some work similar to the research some of these professors are now doing. If the professor you have mentioned is in the admission committee this can also help. Also, do not hesitate to contact these (and other) professors personally (via email). Ask questions about their current and prospective research projects, about the possibility to become members of they group if you get admitted, about the department, you might want to attach your statement of purpose and resume to the first letter you send them.

How long should the statement of purpose be?
Your statement of purpose should be about 1 to 2 pages. Use normal margins and font 11 or 12, refrain from using small fonts since they are hard to read. Generally, a shorter statement of purpose that is clearly written is better than a longer one.

Can I use the same statement of purpose for all universities which I apply to?
Mostly you will see advices that you need to write a separate statement for each program. Ideally this might be the best, but realistically you will not have time to do all the work it requires well. So it is better to spend time writing one really good statement and then for each university changing particular part of the statement which emphasizes some aspects of particular programs and mentions faculty members (usually it is one or two last paragraphs of the statement). Do not send completely identical statements to all universities, mention the name of the university in the text, it is fine to use "Your University", but you also need to use the name of the university. Finally, make sure you send right statement to the right university.

Who will read my statement of purpose?
Your audience is made up of faculty members who are experts in their field. They want to know that you can think as much as what you think.

 http://www.students.uidaho.edu/default.aspx?pid=77258

Statement of Objectives: Sample from Golan Levin

 

Statement of Objectives, MIT Graduate School Application

Written in support of an Application for Admission to Masters' Studies in the Aesthetics and Computation Group, MIT Media Laboratory, Cambridge MA.
Golan Levin, 15 December 1997.


It was quite clear to me that painting was capable of developing powers of exactly the same order as those music possessed.
— Wassily Kandinsky, 1922

[The new medium is:] Dynamic, manipulable graphics with complex behavior.
— Bill Verplank, 1981


Systems for Abstract Creation and Communication

I have had, for as long as I can remember, a deep interest in abstract visual communication. My mother, who is an Abstract Expressionist painter, and my father, who is an engraver, exposed me continually and from the youngest age to imagery whose content was form itself. Oddly enough, however, my earliest recollection of experiencing the power of abstract form is a memory of an event that occurred in my family's synagogue when I was very small: I had just learned to read English, but it hadn't yet dawned on me that there could be other writing systems apart from the one I knew. One evening during services, I asked my father what the funny black squiggles were in the prayer books we were holding. "Sh!" he said: " — that is how we talk to God." I became riveted by the black squiggles, which no longer seemed quite so funny, and stared at them intently until they danced before my eyes; only later did I learn that these marks were Hebrew. Since that time, I have been preoccupied by the idea that abstract forms can connect us to a reality beyond language. Having much to communicate which is neither linear, segmented, nor divisible into minimally distinctive semantic units, I have come to regard with suspicion the wholesale reduction of human existence into verbal language, and have striven instead to create meaningful expressions that could only be conveyed through non-verbal media.

For the past year I have attempted to explore abstraction by creating prototype "visual instruments" that afford continuous, expressive handles into the real-time performance of dynamic, abstract animation. Much of this work has been inspired by, and performed in close collaboration with my colleague Scott Snibbe, to whom I am indebted for introducing me to the domain of performative abstraction, and with whom I presently share many of the motivations expressed in this statement. The intent behind our work in interactive visual instruments has been to deliver similar experiences of joy, surprise, whimsy, creation, and non-verbal communication as are afforded, for example, by traditional musical instruments. In fact, the systems we have built are highly analogous to musical instruments, but in the visual domain — allowing interactants to gesturally perform visual patterns whose formal language consists of geometry and color, instead of sound, over time.

Musical instruments provide an especially rewarding basis for analogies because they have offered, for thousands of years, what may be the best example of humans deriving gratifying interactions from machines. Although the systems I have recently developed do not produce "music" as such, the idea that these works could nevertheless be considered "instruments" for the performance of animated graphics also serves to distinguish them from other software systems which might, on the surface, appear similar. "Visual instruments" are distinct from, for example, screen savers (which depend on a passive interaction model), games (which are generally not concerned with the user's creative expression), visual interfaces to musical instruments (in which the creative expression is made in audio), or music visualization systems (in which, again, graphic expression is an accessory to music).

The broad goal of the work I propose here is to promote creativity and communication via computational visual media. In the remainder of this statement, I put forth one possible theoretical context within which this pursuit may be framed; some criteria by which I have come to evaluate the success of systems of this kind; and a list of some of the new questions and directions to which I'd like to open this endeavor in graduate study.


Hot and Cool

In my attempt to understand the design of great media for creative personal expression, I've been tremendously influenced by Marshall McLuhan's distinction between what he termed "hot" and "cool" media. To McLuhan, "hot" media are high-definition, high-resolution experiences that are "well-filled with data," while "cool" media are low-definition experiences that leave a great deal of information to be filled in by the mind of the viewer or listener. Photography and film are hot media, for example, while cartoons and telephony are cool. McLuhan's definitions establish a strongly inverse link between the "temperature" of a medium and the degree to which it invites or requires audience participation: hot media demand little completion by their audience, while cool media, "with their promise of depth involvement and integral expression," are highly participatory.

A quick glance at the tradeshow floor at SIGGRAPH is all that is necessary to observe that the trend in the computer graphics industry to date has been the development of high-resolution, high-bandwidth, mega-polygon experiences. The products of this focus — typically photorealistic three-dimensional virtual realities — have been dazzling and hypnotizing. But our relations to these spaces are rarely ever more than as spectators, and almost never as creators. The industry's rush to develop these hot experiences has left in its wake numerous fertile and untrammeled technologies for cooler, more participatory media. Scott Snibbe has pointed out that one such territory is the domain of synthetic two-dimensional computer graphics, which, largely neglected after the early Macintosh era, has only recently begun to be revisited in the roughly two years since consumer PC's became capable of real-time, full-screen dynamic interaction.

I seek to build sophisticated cool media for interactive communication and personal expression. In doing so, I interpret McLuhan's specification for cool media — that they demand "completion by a participant" — quite literally. The notable property of cool media, I believe, is that they blur the distinctions we make between subject and object, enabling the completion of each by the other. An example of such a subject/object distinction is that between author and authored, the blurring of which, according to psychologist Mihalyi Csikszentmihalyi, is critical to the Zen-like experience of creative flow. Another such distinction is that between sender and recipient, to whose dissolution, wrote philosopher Georges Bataille, we owe the delight of communication itself. My aspiration for graduate study is to build — and understand the mechanisms of — systems that successfully blur these boundaries, enabling the joyful flow and authentic communication that are possible people engage, through a medium, in a transparent, continuous and transformative dialogue with themselves and others. My foremost measure of success for any medium I design begins, therefore, not with the question "for how long can I suspend my disbelief in it?" but with the questions: "for how long can I feel it to be a seamless extension of myself?" and "to what depth can I feel connected to another person through it?"


Instantly Knowable, Infinitely Masterable

The design of seamless extensions to ourselves is "non-trivial", as is the design of structures that can afford deep intercommunications. In attempting to surmount these difficulties, nevertheless, I have become convinced of a somewhat more tractable design implication which follows from them: that, ideally, such systems should be instantly knowable, yet infinitely masterable and expressible.

By "instantly knowable," I mean that no instructions or explanations ought to be necessary for novice use: the mechanisms of control are laid bare to the intuition, and thus the operation of such a system is self-revealing. By "infinitely masterable and expressible," on the other hand, I mean that the system has an inexhaustible expressive range, which, like the finest instruments, requires a lifetime to master — and furthermore, that this expressive range is wide enough that different users can develop unique styles or creative "voices" in that medium. This remarkable combination of attributes is commonly found in real-world expressive instruments but rarely — if ever — in computational ones. Consider, for example, how a three-year-old child can sit before a piano or a pencil and almost immediately intuit its basic principles of operation. Yet we take for granted that pianos and pencils are also rich enough media that the same child could spend the remainder of her life mastering them.

I know of no software tool which matches a piano or a pencil by these criteria. Instead, instant knowability and infinite expressibilityare all too often traded for one another: we slog through thick software manuals written "For Dummies," only to reach the limits of our tools' capabilities in homogenized outputs that, processed by the same filters and plug-ins, look and sound like everybody else's. At best, computers have only inverted the cultural logic of tool use, making our most general software tools difficult to learn and our specialized tools easy. I believe that the remedy for this, in the case of expressive instruments for visual communication, is a double-pronged research effort focused not only on the development of more "intuitive" interfaces, but also on the development of "intelligent" graphics models which know as much as possible about both themselves and the user. In the section that follows, I detail some of the questions and approaches I intend to pursue on the path towards knowable and expressive, intuitive and intelligent graphical experiences.


New Directions

  • Whole-body interactions. Many artists and designers have traded the direct control afforded by physical media for the flexibility, precision, transmissability and undo-ability furnished by computational tools. But this trade has not been without a cost: for the most part, computer interfaces have physically disconnected us from direct expression, and haven't taken advantage of the many physical heuristics we use to understand the world. We have gone from using our whole bodies directly to using a single index finger abstractly — and what use to feel like play has come to feel more and more like labor. In short, we now spend far too much time hunched over clumsy keyboards, poking at cryptic symbols with inarticulate mice, when we ought to be playing in a spacious and malleable world that conforms to our intuitive physical understanding and all manner of direct manipulations.

    I strongly feel that creative expression should be something that we do with our whole bodies — just as it was for millenia in the pre-computational era. It is my hope that, by designing and developing interfaces which create more fluid connections between our computational and physical environments, I can work to dissolve the modern boundaries between artists, tools and artifacts which gave rise to the term "interface" in the first place. Although the introduction of devices like pen-based tablets has been a good, if small beginning, I anticipate that the next great advances in direct-manipulation interfaces will inherit from the development of unique physical bridges to computation, using technologies like force-sensitive resistors, accelerometers, electric field sensors, inclinometers, and so forth. I've had some experience connecting software to physical sensors at Interval Research, but I would like to do more, and I haven't yet had the opportunity to meld these technologies with expressive, synthetic graphical environments.

  • Alternative vehicles for software delivery. I love two-dimensional graphic displays, but I dislike fifty-pound monitors — especially since even the tiniest two-bit LCD is a microworld bursting with interesting opportunities for expressive interactive display. I want to bring dynamic graphics off of the desktop and into my own body-space, towards engaging software for such small-screen devices as portable hand-held game machines, Tamagotchi-like keychain computers, and palmtop computers like the U.S. Robotics Palm Pilot. I came to feel at home in a low-resolution universe after I spend years, as an undergraduate research assistant, developing icons on a 32-by-32 pixel grid; now I wish to make these small spaces breathe with expressive interactivity.

  • Design for multiple users. Most image-making activities, for practical and historical reasons, have been solitary ventures. Even the most up-to-date commercial software tools assume and perpetuate this lonely mode of artistic endeavor — but this need not be so. The computer has made it possible for people to share and experience simultaneous visual communication, and evidence from recent networked improvisation systems such as Scott Snibbe's MotionPhone suggests that people truly enjoy creating in this way. The challenge is that the idioms and mechanics of collaborative image-making remain poorly understood. What are the formalisms of image and animation which, like the Blues in music, can provide strangers with idiomatic structures in which to improvise together? What are the mechanisms by which participants can engage in a visual dialogue with each other, learning and responding to each other's unique signatures? I seek to design systems for collaborative visual improvisation that permit multiple users — however abstractly their expressions are communicated — to develop sophisticated understandings of, and relationships to, each other.

  • Instruments as cybernetic systems. When sophisticated instruments are performed expertly, the boundary between human and machine dissolves, and we perceive only a single expressive system. How can the instrument level itself to the user naturally and gracefully, continuously but unobtrusively suggesting what can be done next? Can the parts of the interaction language the users do know intrinsically suggest the parts of the language they don't? As users engage in a dialogue with a medium, how can both user and software grow and change together as a coupled system?

Conclusion

It's still an open question as to whether black squiggles, properly deployed, could allow us to communicate directly with supernatural forces. In the meantime, it's my hope that by developing systems for creative visual communication, we may at least have a means for connecting to each other in the reality beyond verbal language. The questions and issues I describe above are only some of the many interesting hurdles that lie in the path of creating such a connection.

The design space of interactive abstract visual communication remains fundamentally unexplored. My goal is to derive an understanding of this space as well as create systems which embody the design principles I discover. The lessons learned from this pursuit may be generalizable to traditional software applications and potentially to all areas of human-computer interaction, transforming the design of our already-prevalent dynamic information graphics in ways that have not yet been brought to bear.

The research I have conducted thus far, and which I propose to continue, cannot be understood as located wholly within the domain of Human-Computer Interaction (HCI) research, or the domain of Computer Graphics (CG) research. Instead, the work I propose resides in the connection between these two areas of endeavor — an interdisciplinary niche which must necessarily assume a hyphenated acronym at best. It is my hope that, as a graduate student at the MIT Media Laboratory, I will be able to delve deeply into this niche, toward the design of intuitive, articulate, whole-body instruments for multimedia play and communication.

Golan Levin, 15 December 1997
 
 

23 November 2008

Tips from Berkley

[Original Text : http://career.berkeley.edu/Grad/GradStatement.stm ]

Graduate School - Statement

Graduate and professional schools often require some sort of written statement as a part of the application. The terminology differs, but may include "statement of purpose," "personal statement," "letter of intent," "personal narrative," etc. Some statements require rather specific information--for example, the applicant's intended area of study within a graduate field. Others suggest subjects which should be addressed specifically. Still others are quite unstructured, leaving the applicant free to address a wide range of matters. Some applications call for one statement, while others require responses to a series of six or more questions, ranging from 250 to 750 words each. The importance of the statement varies from school to school and from field to field.

 

Determine your purpose in writing the statement

Usually the purpose is to persuade the admissions committee that you are an applicant who should be chosen. You may wish to show that you have the ability and motivation to succeed in your field, or you may wish to show the committee that, on the basis of your experience, you are the kind of candidate who will do well in the field. Whatever its purpose, the content must be presented in a manner that will give coherence to the whole statement.

  • Pay attention to the purpose throughout the statement so that extraneous material is left out.
  • Pay attention to the audience (committee) throughout the statement. Remember that your audience is made up of professionals in their field, and you are not going to tell them how they should act or what they should be. You are the amateur.

Determine the content of your statement

Be sure to answer any questions fully. Analyze the questions or guidance statements for the essay completely and answer all parts. Usually graduate and professional schools are interested in the following matters, although the form of the question(s) and the responses may vary:

  • Your purpose in graduate study. This means you must have thought this through before you try to answer the question.
  • The area of study in which you wish to specialize. This requires that you know the field well enough to make a decision and are able to state your preferences using the language of the field.
  • Your intended future use of your graduate study. This will include your career goals and plans for the future.
  • Your special preparation and fitness for study in the field. This is the opportunity to join and correlate your academic background with your extracurricular experience to show how they unite to make you a special candidate.
  • Any problems or inconsistencies in your records or scores, such as a bad semester. Be sure to explain in a positive manner and justify the explanation. Since this is a rebuttal argument, it should be followed by a positive statement of your abilities. In some instances, it may be more appropriate to provide this information outside of the personal statement.
  • Any special conditions that are not revealed elsewhere in the application, such as a significant (35 hour per week) workload outside of school. This, too, should be followed with a positive statement about yourself and your future.
  • You may be asked, "Why do you wish to attend this school?" This requires that you have done your research about the school, and know what its special appeal is to you.
  • Above all, this statement should contain information about you as a person. They know nothing about you unless you tell them. You are the subject of the statement.

Determine your approach and style of the statement

There is no such thing as "the perfect way to write a statement." There is only the one that is best for and fitting for you.

There are some things the statement should not be:

  • Avoid the "what I did with my life" approach.
  • Avoid the "I've always wanted to be a " approach.
  • Avoid a catalog of achievements. This is only a list of what you have done, and tells nothing about you as a person. Normally, the statement is far more than a resume.
  • Avoid lecturing the reader. For example, you should not write a statement such as "Communication skills are important in this field." Any graduate admissions committee member knows that and is not trying to learn about the field from the applicant. Some statements do ask applicants about their understanding of the field.

These are some things the statement should do:

  • It should be objective, yet self-revelatory. Write directly and in a straightforward manner that tells about your experience and what it means to you. Do not use "academese." This is not a research paper for a professor.
  • It should form conclusions that explain the value and meaning of your experience, such as what you learned about yourself and your field, your future goals, and your career plans. Draw your conclusions from the evidence your life provides.
  • It should be specific. Document your conclusions with specific instances, or draw your conclusions as the result of individual experience. See below a list of general words and phrases to avoid using without explanation.
  • It should be an example of careful persuasive writing. Career Center Counselors can help you determine if this is so by reviewing your draft statement.
  • It should get to the point early on and catch the attention of the reader.
  • It often should be limited in length, no more than two pages or less. In some instances it may be longer, depending on the school's instructions.

If you want a career counselor to read your personal statement, you must submit it through our online statement review service. Before you do that, we recommend that you attend a "Writing the Statement for Graduate School" workshop.

Words and phrases to avoid without explanation

significant
interesting
challenging
satisfying/satisfaction
appreciate
invaluable
exciting/excited
enjoyable/enjoy
feel good
appealing to me
appealing aspect
I like it
it's important
I can contribute
meant a lot to me
stimulating
incredible
gratifying
fascinating
meaningful
helping people
I like helping people
remarkable
rewarding
useful
valuable
helpful
 

22 November 2008

Quotes from Randy Pausch

Notable quotes:

  • When there's an elephant in the room introduce him

  • Brick walls are there for a reason. The brick walls are not there to keep us out. The brick walls are there to show how badly we want something. Because the brick walls are there to stop the people who don't want something badly enough. They are there to keep out the other people.

  • If there's anything I want to do so badly, I should have already done it.

  • We can't change the cards we are dealt, just how we play the hand. If I'm not as depressed as you think I should be, I'm sorry to disappoint you.

  • Work and play well together.
    - Tell The Truth. All The Time. No one is pure evil.
    - Be willing to apologize. Proper apologies have three parts: 1) What I did was wrong. 2) I'm sorry that I hurt you. 3) How do I make it better? It's the third part that people tend to forget…. Apologize when you screw up and focus on other people, not on yourself.
    - Show gratitude. Gratitude is a simple but powerful thing.
    - Find the best in everybody…. Wait long enough, and people will surprise and impress you. It might even take years, but people will show you their good side. Just keep waiting.
    - If you want to achieve your dreams, you better learn to work and play well with others…[you have] to live with integrity.

  • Collaboration, treating others with respect.
    - Never found anger a way to make things better.
    - How do you get people to help you? You can't get there alone. People have to help you and I do believe in karma. I believe in paybacks. You get people to help you by telling the truth. Being earnest. I'll take an earnest person over a hip person any day, because hip is short term. Earnest is long term.
    - Loyalty is a two-way street.
    - Get a feedback loop and listen to it. Your feedback loop can be this dorky spreadsheet thing I did, or it can just be one great man who tells you what you need to hear. The hard part is the listening to it.

  • Persistence and hard work.
    - When you are doing something badly and no one's bothering to tell you anymore, that's a very bad place to be. Your critics are the ones still telling you they love you and care.
    - Don't bail: the best gold is at the bottom of barrels of crap
    - Don't complain, Just work harder. [showing picture on screen] That's a picture of Jackie Robinson. It was in his contract not to complain, even when the fans spit on him. You can spend it complaining or playing the game hard. The latter is likely to be more effective.
    - Experience is what you get when you didn't get what you wanted…. I probably got more from that dream [of playing professional football] and not accomplishing it than I got from any of the ones that I did accomplish.

  • Fun, wonder, living your dream.
    - Decide if you're a Tigger or an Eyeore. I'm a Tigger.
    - It is not about achieving your dreams but living your life. If you lead your life the right way, the karma will take care of itself, the dreams will come to you.
    - Never underestimate the importance of having fun. I'm dying and I'm having fun. And I'm going to keep having fun every day, because there's no other way to play it….Having fun for me is like a fish talking about the importance of water. I don't know how it is like not to have fun…
    - Never lose the child-like wonder. It's just too important. It's what drives us. Help others.

  • Risk-taking.
    - You can tell the pioneers by the arrows in their backs. But at the end of the day, a whole lot of people will have a whole lot of fun.
    - Better to fail spectacularly than do something mediocre. [Randy Pausch gave out a First Penguin award each year when he was teaching to the biggest failure in trying something big and new because he thought this should be celebrated. First Penguins are the ones that risk that the water might be too cold.]

  • Parenting and kids.
    - The best piece of parenting advice I've ever heard is from flight attendants. If things get really tough, grab your own oxygen mask first.
    - About his pancreatic cancer: It's unlucky, but it not unfair. We all stand on a dartboard and some of us randomly get hit by pancreatic cancer. But my children won't have me for them and that's not fair.
    - Someone's going to push my family off a cliff pretty soon and I won't be there to catch them and that breaks my heart. But I have some time to sew some nets to cushion the fall so that seems like the best and highest use of my time and I better get to work.
    - I'm sorry I won't be around to raise my kids. It makes me very sad but I can't change that fact, so I did everything I could with the time I have and the time I had to help other people.
    - Importance of people instead of things. Told story of buying new convertible that he was so proud of and taking niece and nephew for a ride. Randy's sister, the kid's mother was telling them how important it was to keep car pristine and kids were laughing because at the same time he was pouring a can of orange soda on the back seats. His sister asked what are you doing and he said "it's just a thing." And nephew Chris wound up being really grateful because he had flu and wound up throwing up on way home. "And I don't care how much joy you get out of owning a shiny new thing; it's not as good I felt from making sure that an 8 year old didn't have to feel guilty for having the flu."
    - [not a direct quote] but Randy implores parents to always indulge your children's wild ideas (he talks about how important it was that his parents let him decorate his walls with math formulas, despite the negative impact on their house's resale value) He says: "If you're going to have childhood dreams you should have great parents who let you pursue them and express your creativity."
    - It is Important to have specific childhood dreams. (For example, Randy wanted to play football in the NFL, write an article for the World Book Encyclopedia, experience the Weightlessness of Zero Gravity, be Captain Kirk from Star Trek, work for the Disney Company.)

  • Be good at something; it makes you valuable…. Have something to bring to the table, because that will make you more welcome.

  • I've never understood pity and self-pity as an emotion. We have a finite amount of time. Whether short or long, it doesn't matter. Life is to be lived.

  • To be cliché, death is a part of life and it's going to happen to all of us. I have the blessing of getting a little bit of advance notice and I am able to optimize my use of time down the home stretch.

14 November 2008

Single mouse/keyboard set over multiple computer systems (单套键盘鼠标控制多台主机)

Share Your Keyboard and Mouse Across Computers with Input Director

Posted by Adam Pash at 8:00 AM on January 24, 2008

Windows only: Share a single keyboard, mouse, and clipboard between multiple Windows computers with freeware application Input Director. Similar to the cross-platform keyboard sharing app, Synergy, Input Manager offers an easier setup and a handful of really useful features―including the ability to copy and paste files and folders between systems (a feature that never seems to work correctly in Synergy). While Synergy is the best available solution for a multi-platform setup, if you're only running multiple Windows machines, Input Director looks like the best solution. If you happen to have an all-Mac setup, check out previously mentioned Teleport. Input Director is freeware, Windows only.

12 November 2008

What is Marshalling, and Unmanaged Code?

Guest - n/a Posts
#5: Re: What is Marshaling?

Sam,

From the perspective of a .NET developer, managed code does in fact equal
..NET code, and unmanaged code is all code that does not run under the CLR.

However, Java bytecode is often referred to as "managed code" as well. By
this more generic definition, managed code is any code that is run in a
managed environment that controls security access and access to resources.
That managed environment might be .NET's Common Language Runtime, Java's
bytecode interpreter, or something else. It is not enough for the code to
require a supporting runtime; VB6 or FoxPro executables, for example, are
not "managed" in this sense. A support library full of routines is
passively called by such code; but unlike a suport library, a manged
environment may refuse application an request if it violates security
protection levels or accesses forbidden resources. In order to be able to
determine whether or not to honor requests, the application code must be
self-describing; hence the other requirement to call an execution
environment "managed."

So, generically, managed code (1) contains some kind of meta-data to
describe itself to its runtime environment with (2) actively grants or
denies application requests based on the defined security configurations for
the application, and the machine and network the application is interacting
with.

--Bob
 
Sam Gentile [MVP - C#/.NET] November 15th, 2005 11:13 PM
Guest - n/a Posts
#4: Re: What is Marshaling?

> Thanks. So is recreating the structs into C#-readable structs (class or[color=blue]
> struct) marshalling?[/color]

Yes, it's one form of marshaling. As people said, marshaling is serializing
or transforming types over the wire or some boundary.
COM had marshaling
when you went out of one apartment into a non-compatible apartment or across
the wire to another machine. When dealing with COM Interop, .NET uses
Interop Marshaling between COM data types and .NET CLR types.
 
>> And what's unmanaged code? I've heard that code with pointers is
>> unmanaged
> code, or C code is unmanaged code. But why is a class managed code (if
> that statement is true) hile other code is unmanaged?

Unmanaged code is simply all code pre .NET. It is all code NOT compiled to
operate under .NET's runtime, the CLR. Unmanaged code is code compiled and
linked natively and has no knowledge of the CLR. Unmanaged code can be
native C++ with pointers, or C, or VB 6, or Delphi, etc. It is everything
not managed by the CLR. In the CLR, code is compiled into IL + metadata into
assemblies and then those assemblies are JITed into assembly language
instructions while called. It is the metadata throughout that allows managed
code to be managed, managed by the CLR. The CLR can control the type
definitions and boundaries (enforce CTS type definitions), control memory
through automatic management of data via the garbage collector, and provide
CAS security among other benefits. So a class is managed code IF compiled
with a .NET compiler and controlled by the CLR whereas "other code is
unmanaged" because it is compiled without a .NET compiler and uses the
unmanaged heap for memory and knows nothing of the CLR.

This is the answer to your question but I can go deeper if you want.
Essentially, both systems produce a Windows PE format file in the form of a
DLL or EXE. The huge difference is that in .NET, that PE file is called an
assembly and has different header. It also contains IL + metadata. All .NET
compilers are REQUIRED to emit IL + metadata. The metadata fully describes
all types in terms of CTS types. The metadata allows managed code to be
called "self-describing." When that assembly is loaded, and the types used,
the CLR JIT's the IL for the called method and replaces that section of IL
with the native assembly language. The IL is *never* interpreted but
provides a common platform-independent, language-independent standard form.
Because of all this, the CLR can manage the types and provide it's services.

-----
Sam Gentile
Microsoft MVP - C#/.NET
..NET Blog http://samgentile.com/blog/

 
Nicholas Paldino [.NET/C# MVP] November 15th, 2005 11:07 PM
Guest - n/a Posts
#2: Re: What is Marshaling?

Marshaling is the act of taking data from the environment you are in and
exporting it to another environment.
In the context of .NET, marhsaling
refers to moving data outside of the app-domain you are in, somewhere else.

When you work with unmanaged code, you are marshaling data from your
managed app-domain to the unmanaged realm. Also, when transferring data
between app-domains (to another application, on the same or another
machine), you are also marshaling data from your app-domain, to another
app-domain.
 
 

11 November 2008

Re: VB、C++、C#、JS 变量类型对照表 [转载]

C++            C#
=====================================
WORD            ushort
DWORD            uint
UCHAR            int/byte  大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte
UCHAR*            string/IntPtr
unsigned char*        Intptr
char*            string
LPCTSTR            string
LPTSTR            [MarshalAs(UnmanagedType.LPTStr)] string
long            int
ulong              uint
Handle            IntPtr
HWND            IntPtr
void*            IntPtr
int            int
int*            ref int
*int            IntPtr
unsigned int        uint
COLORREF                uint
 

VB、C++、C#、JS 变量类型对照表 [转载]

Category Class name Description Visual Basic data type C# data type Managed Extensions for C++ data type JScript data type
Integer Byte An 8-bit unsigned integer. Byte byte char Byte
    SByte An 8-bit signed integer.

Not CLS-compliant.

SByte

No built-in type.

sbyte signed char SByte
    Int16 A 16-bit signed integer. Short short short short
    Int32 A 32-bit signed integer. Integer int int

-or-

long

int
    Int64 A 64-bit signed integer. Long long __int64 long
    UInt16 A 16-bit unsigned integer.

Not CLS-compliant.

UInt16

No built-in type.

ushort unsigned short UInt16
    UInt32 A 32-bit unsigned integer.

Not CLS-compliant.

UInt32

No built-in type.

uint unsigned int

-or-

unsigned long

UInt32
    UInt64 A 64-bit unsigned integer.

Not CLS-compliant.

UInt64

No built-in type.

ulong unsigned __int64 UInt64
Floating point Single A single-precision (32-bit) floating-point number. Single float float float
    Double A double-precision (64-bit) floating-point number. Double double double double
Logical Boolean A Boolean value (true or false). Boolean bool bool bool
Other Char A Unicode (16-bit) character. Char char wchar_t char
    Decimal A 96-bit decimal value. Decimal decimal Decimal Decimal
    IntPtr A signed integer whose size depends on the underlying platform (a 32-bit value on a 32-bit platform and a 64-bit value on a 64-bit platform). IntPtr

No built-in type.

IntPtr

No built-in type.

IntPtr

No built-in type.

IntPtr
    UIntPtr An unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).

Not CLS-compliant.

UIntPtr

No built-in type.

UIntPtr

No built-in type.

UIntPtr

No built-in type.

UIntPtr
Class objects Object The root of the object hierarchy. Object object Object* Object
    String An immutable, fixed-length string of Unicode characters. String string String* String

 

貌似这列是VB.NET,我补充一下VC++到VB6的:

BOOL就是Byte (BOOL是CHAR=BYTE)

DWORD是LONG

Handle是Long型

BOOLEAN是Byte

Google