在线咨询
免费评估
费用计算
微信扫码体验
电话咨询
分公司电话
400-010-8000
免费咨询电话
400-010-8000
到店咨询
金吉列留学北京总部2
北京市朝阳区建国门外大街8号楼IFC国际财源中心B座15层
010-56836688
斯坦福大学拥有独立的计算机科学系。浏览该校的教学手册,最具特色的恐怕要算多门科普性计算机知识讲座了,一般有两到三个单元,涉及面非常之广,从量子计算到数字演员,从计算科学的伟大思想到网络安全,从网上拍卖到使用元编译发现大型开放源代码软件中的大量错误,其中还不乏对技术乌托邦、斯诺 “ 两种文化 ” 、计算机面临的困境以及迅速发展所带来的诸多问题的思考。开课的老师阵容强大,基本上都是响当当的名教授,甚至包括图灵奖得主 John McCarthy 。用这种讲座代替计算机科学导论性质的专门课程,可以充分展示计算机科学的丰富内涵,使学生较早地了解学科的轮廓和脉络,对于开阔学生视野,启发学生的学习兴趣也大有好处。由于美国大学中专业的选择非常灵活,而近年来计算机学科招生受行业影响流失严重 ( 这种情况甚至惊动了比尔 · 盖茨, 2004 年微软到各大高校招兵买马时,他每站必到,利用自己的明星效应,大讲计算机学科的美妙前景 ) ,可以想象,这种讲座同样也肩负着吸引学生选择计算机专业的重大使命。
斯坦福大学典型的低年级课程设置如下所示。
斯坦福大学低年级主要课程设置
数学 ( 至少 23 个单元 ) 数学 41( 课程号,下同 ) 微积分 I 5 数学 42 微积分 II 5 统计 116 概率论 3 ~ 5 计算机 103 离散结构 4 或 6
以下任选两门:
数学 51 微积分 5 数学 103/113 线性代数 3 数学 109 应用群论 3 计算机 157 逻辑和自动推理 4 计算机 205 机器人、视觉和图形学数学方法 3
科学 ( 至少 11 个单元 )
物理 53 力学 4 物理 55 电磁学 4
其他
工程基础 ( 至少 13 个单元 ) | 计算机 106 程序设计抽象 / 方法学 5 工程 40 电子学基础 5
选修课
技术与社会 (3~5 个单元 ) 进一步的课程设置如下所示。
斯坦福大学高年级主要课程设置
程序设计 (2 门课 )
计算机 107( 课程号,下同 ) 程序设计范型 5 计算机 108 面向对象系统设计 4 理论 (2 门课 ) 计算机 154 自动机与复杂性理论 4 计算机 161 算法的设计与分析 4
系统 (3 门课 )
电子电气 108B 或 282 数字系统或计算机体系结构 4 计算机 编译原理 3 计算机 计算机网络 3 计算机 操作系统 3
应用 ( 选 2 门课 )
计算机 人工智能 3 ~ 4 计算机 数据库 3 计算机 图形学 3 项目 (1 门课 ) 计算机 至少 3 个单元 限选课 ( 多门 )
加州大学伯克利分校
伯克利的课程设置也有很多独树一帜的地方,尤其是在专业基础课方面,除了有专业导引课程 “ 计算机科学专题 ” 之外,对于没有编程经验的学生,第一门编程课是符号编程入门,采用 LISP 语言。有一定编程经验或者有自学能力的学生,可以选择多种语言和环境的自主学习 (Self-pace) 课程,包括 C 、 Fortran 、 C++ 、 Java ,以及 UNIX 的使用等,这种多元化与伯克利计算机科学与电子电气工程同系有关。但是所有学生在第二学期都要学习一组独特的基础课: 61A“ 计算机程序的结构与解释 ” ,采用 MIT Abelson 等编著的同名教材 ( 中译本机械工业出版社出版,清华大学出版社出版了影印版 ) ; 61B“ 数据结构 ”( 教材采用自编讲义 ) ; 61C“ 计算机结构 ”(Machine Structures) ,采用 Hennessy 的《计算机组织与设计》 ( 中译本清华大学出版社出版,机械工业出版社出版了影印版 ) 。这项规定就是转校生也不例外,可见其中蕴涵了伯克利多年的教学经验结晶。
伯克利其他比较有特点的课程还有:将离散数学和概率论结合讲授的 CS70 ,主讲是名教授 Christos Papaimitriou ; CS98-1 编程练习课,以主要大学生编程竞赛中的赛题为授课素材; CS 169 软件工程直接用 Kent Beck 的《极限编程》 ( 人民邮电出版社出版了中译本 ) 作为教材,非常超前,但是既然连 Pressman 的《软件工程:实践者方法》新版中敏捷方法都已经成为重头戏,既然 IEEE 都已经开始制定敏捷方法相关标准,这种课程选材也就不显得那么骇世惊俗了。除了软件工程课程常见内容外,教学侧重实际,贯穿了极限编程的思想,涵盖 UML 、 JUnit 单元测试、软件架构、设计模式和反模式、重构、 CVS 版本控制、系统和集成测试,最后要求完成一个实际产品,并进行演示。
UIUC( 伊利诺依大学厄班纳 - 香槟分校 ) UIUC 的计算机科学专业创建于 1972 年,到 1986 年基本定型,十多年来几乎没有什么变化。
其中,数值分析方向课程中, Math225 为矩阵论, CS257 为数值方法, CS35x 代表数值分析导论、常微分数值方法、偏微分与数值逼近和数值线性代数;
理论方向课程中, CS173 为离散结构, CS273 为计算理论, CS37x 包括算法、形式方法、程序验证;
人工智能方向课程中, CS348 为人工智能导论, CS34x 包括机器人、机器学习与模式识别;
软件方向, CS125 为计算机科学导论, CS225 为数据结构与软件工程原理, CS31x 包括数据库、图形学、多媒体, CS32x 包括软件工程、操作系统设计、分布式系统、编程语言与编译器、并行计算、实时系统、编译器构造、编程语言设计 ;
硬件方向课程中, CS231 为计算机体系结构 I , CS232 为计算机体系结构 II , CS33x 包括计算机组成、 VLSI 系统与逻辑设计、 VLSI 系统设计、通信网络、嵌入式体系架构与软件。
可以看到,中最下面的课程基本上都是在多门中选择一至三门,整个体系脉络清晰,具有很高的灵活性。与斯坦福不同的是, UIUC 的计算机科学导论课程比较简单,只有一门为新生开的计算机科学导向课 (CS100) ,而且并非必修。名为 “ 计算机科学导论 ” 的 CS125 实际上是以 Java 语言为主的编程入门课,涵盖了一些算法的内容。此外还有与之配套的实验课。当然,系里所开的面向高年级和研究生层次的讲座是对低年级开放的。
2003 年,在工程院院长 Davi Daniel 的倡导下,计算机系对教学计划进行了改革,以反映目前社会、行业和技术的发展趋势。主要的变化有:
* 在必修要求中增加了两门编程课: CS241 系统编程,采用 Gary Nutt 的《操作系统》作为主教材, Stevens 的《 Unix 环境高级编程》作为编程教材 ;CS242 程序设计实验 (Programming Stuio) ,教学大纲基本上以 Kernighan 的《程序设计实践》为蓝本 ( 以上教材机械工业出版社均出版了中译本和影印版 ) 。
* 必修要求中增加了一年的高级项目,强调团队合作和软件工程实践,包括文档写作、口头表达、项目规划与管理等,实际上是在实践中学习软件工程。这门课也可以用两学期的软件工程或者一年的高级论文代替。仍然充分保留了灵活性,有利于因材施教。
* 增加了 CS173 离散结构的学时,部分原 CS273 的内容移到这里,同时 CS273 又新增了原 CS375 的内容。这实际上是提高了对计算机理论的要求。
* 在专业课程中增加了数据挖掘、信息检索和高级图形学。
CMU( 卡内基梅隆大学 )
与麻省理工学院、伯克利等学校计算机科学仍然和电子与电气工程同处一系不同, CMU 的计算机科学系成立于 1965 年,是全美最早的,如今它已经升格为计算机科学学院。其研究生项目中除了机器人方向与硬件关系较多之外,其他基本上都是纯软的。从这个意义上来说, CMU 的教学体系对于偏软的计算机科学系应该有较大的借鉴意义。
CMU 的教学手册上没有从传统意义上针对计算机科学专业学生的导论课,虽然有名为 “ 计算机科学伟大思想 ” 的两学期课程,但是从内容上看应该是离散数学的替代,因为此外 CMU 并没有其他离散数学方面的课程。此课程没有教材,内容比传统离散数学要灵活得多,涉及概率、代数、算法、加密理论、复杂性理论、博弈论等,非常注重学习的趣味性和实用性。
与其他名校相同, CMU 对程序设计的重视也给人留下很深印象:本土新生的第一堂课就是 “ 初中级程序设计 ” ,直接讲授 Java 。然后是中高级程序设计 (Java) 、 C 语言编程技巧、高级编程实践 (Java) 、程序设计原理 ( 用 SML 语言讲授 ) 。
目前计算机科学专业教学计划中的一个难点,是硬件课程的设置问题。硬件知识体系本身非常丰富,但是硬件课程多了,又削弱了计算机科学专业的特色。 CMU 在这一问题上是怎样处理的呢 ? 计算机科学学院的现任院长 Ranal E. Bryant 亲自给出了回答,他用 15 ~ 213“ 计算机系统导论 ” 一门课 (12 个单元 ) 完成了硬件知识的教学。这项教学改革的成果就是一本厚达 900 多页的书:《 Computer Systems: A Programmer’s Perspective 》 ( 中译本《深入理解计算机系统》已经由中国电力出版社出版 ) 一书。他在该书的序言中说:
“ 本课程的宗旨是用一种不同的方式向学生介绍计算机。因为,我们的学生中几乎没有人有机会构造计算机系统。而大多数学生,甚至是计算机工程师,也要求能日常使用计算机和编写计算机程序。所以我们决定从程序员的角度来讲解系统,并采用这样的过滤方法:我们只讨论那些影响用户级 C 程序的性能、正确性或实用性的主题。
比如,我们排除了诸如硬件加法器和总线设计这样的主题。虽然我们谈及了机器语言,但是不关注如何编写汇编语言,而是关心编译器怎样翻译 C 的各种构造,比如指针、循环、过程调用和返回,以及 switch 语句。更进一步,我们将更广泛和现实地看待系统,包括硬件和系统软件,讨论链接、加载、进程、信号、性能优化、评估、 I/O 以及网络与并发编程。
这种做法使得我们讲授本课程的方式对学生来讲既实用、具体,又能实践,同时也非常利于调动学生的积极性。
网站上的一些随书配套实验,也独具匠心。因此此书的成功是水到渠成的。根据配套网站上的列表,它已经被全球 80 多所院校采用作为教材。
MIT( 麻省理工学院 )
MIT 的课程设置,只能用其学生起点高来解释。该校没有典型意义上的计算机科学专业,偏软的只有理论计算机科学和人工智能及其应用两个专业。因此没有类似于其他学校的导论课程。
在 MIT 的电子电气工程与计算机科学系中,所有学生都要参加如下四门课程: 6.001“ 计算机程序的结构与解释 ” ,当然与伯克利相同,采用的是 Abelson 等编著的同名教材 ;6.002“ 电路与电子学 ”;6.003“ 信号与系统 ”( 自编讲义 );6.004 “ 计算结构 ”(Computation Structures) ,与伯克利的 61C“ 计算机结构 ” 对等 ( 教材是自编课件 ) 。此外有两门专业基础数学课: “ 概率系统分析 ”( 教授自编教材 ) 和 “ 计算机科学数学 ” ,后者的教材是国外院校普遍采用的 Rosen 所著《离散数学及其应用》 ( 中文版由机械工业出版社出版 ) 。
对 MIT 的学生而言,实验课程有多种选择:电气工程和计算机科学实验,模拟电子实验,数字系统实验,微机项目实验,半导体设备项目实验。此外,无论何种专业,都有软件工程实验课。值得注意的是,本科生各专业的必修课程中并没有软件工程课程。也就是说,软件工程的内容都在实践中完成了。带软件工程实验课的是因为提出 Liskov 替换原则而知名的女教授 Barbara Liskov ,她刚刚获得了 2004 年度的冯 · 诺依曼奖。作为美国工程院和艺术科学院的双院士,她几十年在软件开发研究方面的经验,将有力地保证这门实验课程的质量。
北京站
客服专线: 400-010-8000
服务专线: 400-010-8000
北京分公司:北京市朝阳区 建国门外大街永安东里甲3号院B座
友情链接 · 加拿大留学 | 新西兰留学 | 日本留学 | 欧洲留学 | 澳大利亚留学 | 美国留学 | 英国留学 | 韩国留学
©2024金吉列出国留学咨询服务有限公司 版权所有 | 京ICP备05010035号 | 京公网安备11010502038474号 | 出版物经营许可:新出发京零字第朝190057号
信息提交成功!稍后将有专人与您联系。