原文转自一亩三分地论坛,原作者midway,转载只为分享给更多的人,感谢原作者的贡献。
美国大学软件工程专业的申请竞争是非常激烈的。IT行业的发展造就了无数的程序员,尽管大家开发的软件应用于不同的领域,但大家都是程序员,即软件工程师,所以申请美国大学软件工程专业的时候,写过程序的都可以说有这方面的实际经验,都可以往这条船上挤。因此,美国大学的软件工程专业受到在校学生和工作人员的青睐,申请人数增多,拿Offer就比较难了。下面是跟大家分享的美国大学软件工程专业出国方向选择和一些教授的情况,让大家在美国留学(甚至套磁)的过程中少走弯路,尽快地了解一个专业的近况。
文中可能会提到一些关于研究细节,有兴趣的同学可以google一下。另外,提到的所有professor都有个人主页,基本都是google上搜名字的第一条,因此再次也不一一列出。
下面所提到的professors中,大概30%有过personal contact,20%在会议中当面见过甚至讨论过问题。个人感觉绝大部分大牛小牛们还是非常非常nice的。 当然下面的东西都是一家之言,大家兼听则明!
进入正题。软件工程(下面简称SE)绝对不是想象中一个孤立的学科(或者是一个只能从实际项目中得以锻炼,或者是读书或者纯理论无用的学科)。软件工程往往与程序语言(Programming Language,下面简称PL)密不可分地结合在一起。无论在SE或者PL上,都有众多的根本性问题(fundamental problem)没有解决。而从研究上讲,很难在SE和PL之间找到完全的界限。而有时SE,PL又和Computer Architecture 或systems有关联,所以如果你在做一些和SE方向有关的东西,范围可能会很广一些。下面我着重分析一些美国做SE研究比较active的学校和教授,可以供大家选校或者套磁时候参考,避免盲目性(浪费自己和教授的时间)。
排名不分先后
MIT麻省理工大学:
1)Prof. Daniel Jackson:领导一个Software Design Group,偏Program analysis和language,formal method,其中最有名的是他发明的Alloy specification language,在学术界有着非常大的影响力。他是著名的Michael Jackson (不是唱歌那个,是提出Jackson方法的大牛)的儿子。Prof.Jackson有一个学生Sarfraz Khurshid目前在UT-Austin的ECE,也从事SE的研究。
2)Martin Rinard:Stanford的Monica Lam的学生(龙书第二版的作者之一),做的研究比较偏向与compilation和program analysis。 Prof.Rinard的学生包括:Darko Marinov目前在UIUC,Chandra Boyapati在UMich,Radu Rugina在Cornell,Brian Demsky在UCI等等。都在SE领域做着非常不错。
CMU卡内基梅陇大学:
1)著名的SEI所在地,有非常资深的教授Prof. Mary Shaw,Prof. David Garlan,此二人写的Soft Architecture的书也许大家都有的。在此不多说了。
2)Jonathan Aldrich,毕业于UW,偏重于PL中的Type System和Software Design。他的博士论文就是写如何在Java语言中加入一些express software architecture的元素。Prof.Aldrich在AOP领域也曾经比较活跃,他的Open Module具有一定的影响力.
3)Brad Myers,Prof.Myers其实属于CHI部门,但是目前的研究很大一部分与软件工程相关,当然侧重于使用人机交互的methodology来解决SE中的问题。他有个学生Andy Ko刚刚去年毕业,目前在UW教。
4) CMU有个Model checking组,turing奖得主在那,毕业的学生自然不用说。我不是特别清楚,大家可以去查查。 因为最近se里面model checking用得比较热,因此我把这个也归在SE里面了。
Berkeley加州伯克利分校:
1)Koushik Sen,毕业于UIUC,Concolic Testing的创始人之一。近期来在SE/PL领域非常活跃,目前主要focus在Random testing for concurrent program上。该教授目前如日中天,去他主页上看看一年多少篇paper就知道了。
2)Parallel Laboratory 中其它教授。涉及了从programming model,到system software,到software evolution的各种研究。不太好区分。大家有兴趣可以自己查查。
Stanford斯坦福大学:
和Berkeley一样好像搞专门软工的可能也不太好区分,但有的教授搞PL或者System,但同样在SE的top会议上比较活跃
1)Monica Lam,学过编译的应该都对Prof.Lam熟悉了。大牛级的人物,大家还是去她的homepage上查看吧。
2)Dawson Engler,毕业于大名鼎鼎的MIT的PDOS组,最近在从事automated bug finding的研究。所开发的coverity系统已经商业化,并且在商业和学术界都取得了巨大的成功。但Prof Engler的研究还是侧重于System,但提出的技术已被SE community所公认。
3)Alex Aiken,研究偏向理论,和Type System和theory方面比较多。有不少学生在SE领域做的相当不错,如UW-Madison的Ben Liblit,UC-Davis的Zhendong Su,和Maryland的Jeff Foster。