美国留学计算机专业名校有哪些
1、美国斯坦福大学计算机专业斯坦福大学拥有独立的计算机科学系。浏览该校的教学手册,最具特色的恐怕要算多门科普性计算机知识讲座了,一般有两到三个单元,涉及面非常之广,从量子计算到数字演员,从计算科学的伟大思想到网络安全,从网上拍卖到使用元编译发现大型开放源代码软件中的大量错误,其中还不乏对技术乌托邦、斯诺“两种文化”、计算机面临的困境以及迅速发展所带来的诸多问题的思考。开课的老师阵容强大,基本上都是响当当的名教授,甚至包括图灵奖得主John McCarthy。用这种讲座代替计算机科学导论性质的专门课程,可以充分展示计算机科学的丰富内涵,使学生较早地了解学科的轮廓和脉络,对于开阔学生视野,启发学生的学习兴趣也大有好处。由于美国大学中专业的选择非常灵活,而近年来计算机学科招生受行业影响流失严重(这种情况甚至惊动了比尔?盖茨,2004年微软到各大高校招兵买马时,他每站必到,利用自己的明星效应,大讲计算机学科的美妙前景),可以想象,这种讲座同样也肩负着吸引学生选择计算机专业的重大使命。2、美国加州大学伯克利分校计算机专业伯克利的课程设置也有很多独树一帜的地方,尤其是在专业基础课方面,除了有专业导引课程“计算机科学专题”之外,对于没有编程经验的学生,第一门编程课是符号编程入门,采用LISP语言。有一定编程经验或者有自学能力的学生,可以选择多种语言和环境的自主学习(Self-paced)课程,包括C、Fortran、C++、Java,以及UNIX的使用等,这种多元化与伯克利计算机科学与电子电气工程同系有关。但是所有学生在第二学期都要学习一组独特的基础课:61A“计算机程序的结构与解释”,采用MIT Abelson等编著的同名教材;61B“数据结构”(教材采用自编讲义);61C“计算机结构”(Machine Structures),采用Hennessy的《计算机组织与设计》。这项规定就是转校生也不例外,可见其中蕴涵了伯克利多年的教学经验结晶。伯克利其他比较有特点的课程还有:将离散数学和概率论结合讲授的CS70,主讲是名教授Christos PApadimitriou;CS98-1 编程练习课,以主要大学生编程竞赛中的赛题为授课素材;CS 169 软件工程直接用Kent Beck的《极限编程》作为教材,非常超前,但是既然连Pressman的《软件工程:实践者方法》新版中敏捷方法都已经成为重头戏,既然IEEE都已经开始制定敏捷方法相关标准,这种课程选材也就不显得那么骇世惊俗了。除了软件工程课程常见内容外,教学侧重实际,贯穿了极限编程的思想,涵盖UML、JUnit单元测试、软件架构、设计模式和反模式、重构、CVS版本控制、系统和集成测试,最后要求完成一个实际产品,并进行演示。3、美国UIUC(伊利诺依大学厄班纳-香槟分校)计算机专业UIUC的计算机科学专业创建于1972年,到1986年基本定型,十多年来几乎没有什么变化。其中,数值分析方向课程中,Math225为矩阵论,CS257为数值方法,CS35x代表数值分析导论、常微分数值方法、偏微分与数值逼近和数值线性代数;理论方向课程中,CS173为离散结构,CS273为计算理论,CS37x包括算法、形式方法、程序验证;人工智能方向课程中,CS348为人工智能导论,CS34x包括机器人、机器学习与模式识别;软件方向,CS125为计算机科学导论,CS225为数据结构与软件工程原理,CS31x包括数据库、图形学、多媒体,CS32x包括软件工程、操作系统设计、分布式系统、编程语言与编译器、并行计算、实时系统、编译器构造、编程语言设计;硬件方向课程中,CS231为计算机体系结构I,CS232为计算机体系结构II,CS33x包括计算机组成、VLSI系统与逻辑设计、VLSI系统设计、通信网络、嵌入式体系架构与软件。4、美国CMU(卡内基梅隆大学)计算机专业与MIT、伯克利等学校计算机科学仍然和电子与电气工程同处一系不同,CMU的计算机科学系成立于1965年,是全美最早的,如今它已经升格为计算机科学学院。其研究生项目中除了机器人方向与硬件关系较多之外,其他基本上都是纯软的。从这个意义上来说,CMU的教学体系对于偏软的计算机科学系应该有较大的借鉴意义。CMU的教学手册上没有从传统意义上针对计算机科学专业学生的导论课,虽然有名为“计算机科学伟大思想”的两学期课程,但是从内容上看应该是离散数学的替代,因为此外CMU并没有其他离散数学方面的课程。此课程没有教材,内容比传统离散数学要灵活得多,涉及概率、代数、算法、加密理论、复杂性理论、博弈论等,非常注重学习的趣味性和实用性。与其他名校相同,CMU对程序设计的重视也给人留下很深印象:本土新生的第一堂课就是“初中级程序设计”,直接讲授Java。然后是中高级程序设计(Java)、C语言编程技巧、高级编程实践(Java)、程序设计原理(用SML语言讲授)。目前计算机科学专业教学计划中的一个难点,是硬件课程的设置问题。硬件知识体系本身非常丰富,但是硬件课程多了,又削弱了计算机科学专业的特色。CMU在这一问题上是怎样处理的呢?计算机科学学院的现任院长Randal E. Bryant 亲自给出了回答,他用15~213“计算机系统导论”一门课(12个单元)完成了硬件知识的教学。这项教学改革的成果就是一本厚达900多页的书:《Computer Systems: A Programmers Perspective》。他在该书的序言中说:“本课程的宗旨是用一种不同的方式向学生介绍计算机。因为,我们的学生中几乎没有人有机会构造计算机系统。而大多数学生,甚至是计算机工程师,也要求能日常使用计算机和编写计算机程序。所以我们决定从程序员的角度来讲解系统,并采用这样的过滤方法:我们只讨论那些影响用户级C程序的性能、正确性或实用性的主题。比如,我们排除了诸如硬件加法器和总线设计这样的主题。虽然我们谈及了机器语言,但是不关注如何编写汇编语言,而是关心编译器怎样翻译C的各种构造,比如指针、循环、过程调用和返回,以及switch语句。更进一步,我们将更广泛和现实地看待系统,包括硬件和系统软件,讨论链接、加载、进程、信号、性能优化、评估、I/O以及网络与并发编程。这种做法使得我们讲授本课程的方式对学生来讲既实用、具体,又能实践,同时也非常利于调动学生的积极性。”5、美国MIT(麻省理工学院)计算机专业MIT的课程设置,只能用其学生起点高来解释。该校没有典型意义上的计算机科学专业,偏软的只有理论计算机科学和人工智能及其应用两个专业。因此没有类似于其他学校的导论课程。在MIT的电子电气工程与计算机科学系中,所有学生都要参加如下四门课程:6.001“计算机程序的结构与解释”,当然与伯克利相同,采用的是Abelson等编著的同名教材;6.002“电路与电子学”;6.003“信号与系统”(自编讲义);6.004 “计算结构”(Computation Structures),与伯克利的61C“计算机结构”对等。此外有两门专业基础数学课:“概率系统分析”和“计算机科学数学”,后者的教材是国外院校普遍采用的Rosen所著《离散数学及其应用》。
CMU-ECE-SDE中Introduction to Machine Learning课程如何?
CMU-ECE-SDE中IntroductiontoMachineLearning课程,这三门课不是一样的课,但是都有着差不多的名字和作用。ECE有很多课都和CS专业的课披着一样的外衣,内里质量却很堪忧。我就直说吧,凡是相似的课程名字和内容,CS的课程质量都甩ECE几条街,因为ECE的课程很可能是看着CS的课火才在近几年开设的。
之所以把这几门课列在第一学期必修,是因为他们是CMUMachineLearning系列课程的门槛。如果你还不确定自己要不要走MachineLearning路线,上完这些课你就能基本确定。比如我,上完之后光荣拿B,认清了自己的数学实在太差,不适合MachineLearning这一事实,破碎了我对于MachineLearning的一切幻想,从此专心找工作呢当SDE去了。
这三门课的共同特点是老师给分都很慷慨,拿A真的不难。这门课能拿A,意味着你MachineLearning的基础已经合格,可以尝试更多ML方面的课程。
对于已经在MachineLearning方向有基础甚至做过研究的同学,就权当复习巩固基础,顺便修个核心课,也不是坏事。这三门课的区别:10-601更基础,有的老师会有project可以写进简历,但不算核心;10-701是phd课很理论,大段大段的推公式,算核心但是是非ECE课程;18-661是ECE核心,课程内容我没上过,听说偏理论。
另外,这三门课每学期老师都不同,上课内容和质量完全取决于任课教授,上课前要打听清楚。