查看: 7380|回复: 6

国外著名大学计算机教学考察随笔

[复制链接]
发表于 2009-9-5 13:32:09 | 显示全部楼层 |阅读模式
关键词: 大学 , 国外 , 计算机教学 , 随笔 , 著名
国外著名大学计算机教学考察随笔                                                                                        收藏                                                                                                                                                                                                                                                                       
王行言/文
为了解国外大学计算机教学情况,2002年春季,清华大学组团到美国进行了一次考察。考察组先后到斯坦福、伯克利、加州理工等著名学府进行了调研,旁听了一些计算机方面的课程,与有关教授、教务管理人员和中国留学生进行了座谈,并参观了学校的图书馆和计算机机房。下文就是我们约请清华大学计算机与信息管理中心副主任王行言教授撰写的考察随笔。
4月9日 斯坦福大学
上午,我们分头听了“数据库”和“编译原理”的课程。数据库为大班课程,本节课主要讲ER图和ER模型。授课方式是“黑板+粉笔”,6块黑板来回切换。教室有电视和录像设备,电视跟踪和放大黑板内容,所以无论坐在哪个角落,都能看到黑板的内容。教室后有制作室,可以对课堂教学当场录制。课上同学提问题很踊跃,老师也不时地提出问题,回答最好的几乎都是中国留学生。
中午饭后,我们参观计算中心和图书馆,两处都有学生上机的环境。学生来去匆匆,多半都是上网看一下课程通知或下载、打印几页文档资料。
我们在浏览网页时,看到上午的数据库课程已制作成视频课件(不到半天时间)。学生可以自主选择听老师的某段讲解,或看某页的板书。在斯坦福,有专门制作人员(并有学生参与)对部分课程进行录制加工,并及时放到网上,供学生下课复习。这些课件还有一个重要的目的,就是用于继续教育,为学校周围的在职人员学习提供方便。
在计算中心入口处的通知栏上,我们看到了白板上公布的一些课外讲座,如UNIX操作系统使用、Office工具软件的使用等,此外还有一些编程语言的入门课程。
下午我们又听了一门“程序设计”课程,估计教室可容纳四、五百人。学生进教室时,每人在门口拿一份本节课的讲义。很多老师在上课时都习惯准备随堂使用的讲义,内容包括补充的素材和本节课布置的习题。本课程由斯坦福大学计算机系副主任Eric S. Roberts教授主讲,他就是IEEE和ACM推出的“Computing Curricula 2001”的主要执笔人。这节课他主要是讲解算法设计(树搜索,迷宫等)和程序调试。Roberts教授使用笔记本电脑及大屏幕投影授课,屏幕上显示的是讲课用到的代码及程序调试环境,但他大部分时间是坐在讲台上,面向学生滔滔不绝地讲解。程序设计课程使用的教材是Roberts教授写的两本书:“The Art and Science ofC”和“Programming Abstractions in C”。这两本教材在美国被多所大学所采用。
4月10日 斯坦福大学
上午,我们与计算机系副系主任Eric S. Roberts教授座谈,请他谈一下斯坦福大学的计算机教育(包括非计算机专业的计算机教育)。他饶有兴趣地谈到了斯坦福大学计算机系的发展和计算机课程的设置情况。
他说,与大多数专业相比,计算机科学是一个非同寻常的领域。当100年前斯坦福大学成立之际,大多数学科就已经有了一定的历史。50年后,才发明了世界第一台计算机。又过了25年,计算机科学才成为一个独立的学科。斯坦福计算机科学系成立于1965年,并一直保持世界前4名的位置。
在最近25年中,计算机科学飞速发展,并极大地推动了社会的进步。计算机科学将继续成为一个令人兴奋的领域。
在斯坦福,大多数学生愿意学习计算机科学的主修课程。在CS主修课程中,学生可以追踪很多不同的领域:程序语言、图形学、数据库、计算理论、人机交互、机器人学、人工智能、数值分析等。随着近年来需求的变化,CS主修课更加灵活并满足大多数学生的需求。
在斯坦福大学,新生入校时不分专业,学生的专业要根据个人选修课程的情况到高年级才逐步明朗。当然,在入校时,学生还是有自己的意向。学校为每位想学计算机的同学都提供一份指导性文件,说明在斯坦福学习计算机的几种途径。除CS之外,还有五种其他选择供学生考虑:
1.C omputer Science Minor(CS辅修专业)
该辅修专业提供 CS主修课中本科的核心课程(见图1),由6-8门课组成,安排在两年中学完。
完成辅修课后,学生将获得很强的编程基础,并进入计算机科学的某个理论分支。进而,学生可以在自己感兴趣的领域学习更多更深入的课程。
图1是辅修专业的课程设置。
2. Computer Systems Engineering (CSE)
CSE是跨计算机科学和电子工程两个系的交叉学科。
CSE的主修课类似于计算机科学系,但一些偏理论的计算机课程被电子工程方面的课程所代替(如数字设计与电路分析)。
3. Electrical Engineering (EE)
适合于对计算机科学、特别是对硬件更感兴趣的同学选修。除了侧重硬件外,EE学位和其他学位的主要不同是侧重于工程。
4. Mathematical and Computational Sciences (Math/CS)
计算机科学和纯数学的结合。学位课包括计算机科学基础核心课以及各种数学课。除这些核心课程外,学生还侧重计算机或数学选一些课。
5. Symbolic System
是交叉学科,结合了计算机科学、心理学、社会学、以及语言学,研究人-机的认知。将人和计算机视为符号处理系统。
Roberts教授还讲到,由于计算机技术的发展,可以用计算机解决更复杂的问题,并且可以不需要编程,起码不是传统意义上的编程。所以计算机系和计算中心还面向全校开设了一些更侧重于应用的课程(包括各种语言与工具类课程),主要是满足全校非计算机专业学生自己学习计算机和应用计算机的需求。其中一些课程的内容就类似于我们计算机文化基础课的内容。这些课程包括:
CS1I—Using the Internet
CS193D—C++ and Object-Oriented Programming
CS193I—Internet Programming
CS193J—Programming in Java
CS193U—Software Engineering in C
CS193W—Microsoft Windows Programming
如何开始学习计算机课程呢?Roberts教授给我们画了一张图(见图2)。
Roberts教授指出,如果要从技术的角度(而不是从文化的角度)学习计算机,CS106A(即程序设计)是第一门必修的基础课。学完CS106A后,如果想继续深入学习编程的知识,可选修CS106B。对那些在中学就已具有一定编程能力的学生,如果想学习C语言或想进一步提高编程水平,可选修一学期的CS106X(浓缩两门课的快班)。学完CS106B后,学生就有了比较明确的意向,如果想进计算机专业,就可开始系统学习计算机专业的课程。而不想选择计算机专业的同学,可以选修计算机系等单位为非计算机专业开设的其他 课程。


评分

参与人数 1积分 +2 收起 理由
sdwenyliu + 2 很给力!

查看全部评分

 楼主| 发表于 2009-9-5 13:32:23 | 显示全部楼层
CS106课程采用的教学语言是C语言,Roberts教授解释说:C语言广泛应用于工业界,而且是学习更先进语言的基础(C++ 和Java)。
我们向Roberts教授提出一个问题:如果学生自己选专业,会不会有很多学生都选计算机专业?计算机系如何接纳这么多学生?Roberts教授说,的确新生中有很多人想学计算机,但学过1、2门计算机课程之后,不少同学就感到计算机专业不适合自己。经过多年操作,选择计算机系的人数已经趋于稳定。另外,美国的学生不见得都喜欢计算机,觉得整天坐在计算机前没有意思,而对于考古、地质等野外作业觉得更富有挑战性。
4月11日斯坦福大学
今天与计算机系教务座谈。系教务对我们讲,每个教授每年都要开一门核心课(研究生课程也算核心课)。教师的教学工作量要够一定点数,大课点数多,小课点数少。系里有一套评价体系,学生给系主任和教师本人打分,这些对教师的评级有影响。新生提前一周到校,招生办公室根据学生兴趣分派导师指导学生选课。每个学生都有一个导师帮助选课(一名导师负责若干名学生)。学校设有注册办公室,管理各种教学资源。
随后我们参观了硬件实验室。硬件实验普遍采用模拟软件,控制盒里有关键芯片。
下午我们听了一节毕业设计课,该节课的安排是请IBM公司的工程师讲解正在研究的一些新技术。根据我们的感觉,学校和公司的联系很密切。
下午我们和一位在斯坦福半导体研究所长期任教的清华老师进行了座谈。针对我们提的一些问题,这位老师说了一些自己的观点:对于硬件实验,电的教学、电路课做一些实验,单板机也有,但不是重点(有些爱动手的学生选修)。斯坦福大学还是偏软的多,同学出去主要是搞设计,搞算法。例如利用 spice软件,10个星期设计一个芯片。硅谷对半导体人才需求很明确,学会三门电路设计课就要。斯坦福实验室很少,偏专门化的课就外聘教师。而基础的物理、化学都是大牌教授。美国毕业生专门化很突出,工作中就做自己专业的事,不管别的杂七杂八的事,否则是浪费人才、时间。计算机各行各业都在用,但要懂多少,并不见得很多,硬件结构、软件OS、C语言、数值分析、专业用软件等。计算机能力强,表现在把计算机作为工具,会算法、数据分析,自己专业算法强。光会计算机编程是中等人才,最有价值是专业的东西。
之后,我们又与部分中国留学生举行了座谈。在座谈过程中,不时有人进进出出,有的刚下课,有的要去上辅导课(助教),大家显得都很忙碌。很多同学是在网上看到要和国内来的大学老师座谈,就主动赶来参加,即使只能参加一会儿也要来。同学们见到我们都非常兴奋,也谈了很多在这里学习、生活的情况。他们说,这里的房东最喜欢租房子给中国学生,因为他们早出晚归。在美国念书,作业负担很重,每学期课的门数不多,但课程的强度非常大,例如程序设计,一周就有两到三次大课。斯坦福不太重视文章,没有文章要求。但学校中的研究气氛很浓,很多低年级的学生就自动组织起来,找一些具有挑战性的课题来做。
4月13日加州理工
今天主要是与留学生座谈,我们谈的范围很广,以下是我们聊的一些感兴趣的内容。
同学们说,这里系的差别不是很大,天文、物理、数学,无论是什么系,都要上一大堆公共课,本科是通才教育。教师与学生的比例是1∶3 ,TA与学生的比例是1∶20。编程的课主要是上TA的课。学校每学期为10周,课程强度高,难度大,每学期学5门课已经很吃力了。同学们异口同声地说,作业又多又难,交作业时间卡的很死,作业有时做到第二天天亮。作业绝对不能抄,在成绩中所占比例也很大。
我们问了一些有关计算机教育的问题,他们说,计算机系主要是讲理论。非计算机系的学生选一些计算机理论课,可以扩展知识面。他们感到计算机的哪门课都是数学课。各系并没有强迫学生选什么计算机的课,但聪明的学生会选一些计算机课。根据他们接触的情况,专业老师用计算机,学生就会学计算机。各系教师交流很密切,教授用计算机,会带动计算机教学。各领域的权威、教授应该知道学生在计算机方面需要用到什么。计算机教学不要与其他教学分开,用的时候就会学。他们认为,计算机的基础是程序设计。计算机教学分理论(计算机系开)和应用(与各专业结合,各系可开)。
同学们还告诉我们,期末考试时,监考老师一般站在教室外面,有问题再进到教室解决,以此表示对同学的信任。有的考试干脆让同学把卷子拿回去做,规定1到2天内交卷。我们问,那如果互相抄袭怎么办?同学说基本没有抄袭,因为学生自我约束很严,非常看重诚信二字。他们讲了正在发生的一件事情:一个同学将公共场所的一把椅子私自搬到了自己的宿舍里,学生委员会正在对此事进行处理(据说是要开除),学生委员会做出的决定,学校也不得不认真考虑。
4月18日 伯克利分校
今天安排和一个留学生座谈,因为他在美国念了多年的书,拿了一个硕士学位,两个博士学位,至今还没有离开学校之意。他向我们讲述了自己的一些感受和建议。
他说,国内有些大学把理论和市场对立起来是不对的。我们可以培训出非常好的程序员(写一个软件),但没有独到见解,没有算法。计算机理论,图论、线性代数等都是非常有用的。美国学校很重视数学怎么用到实际问题。学到一点数学,就知道用到哪,就有成就感,而不重视技巧。美国学生做东西比较深入,想得深。最出色的是美国学生。
美国研究生主动性很强,自发组织在一起,找题目研究(如人工智能、机器学习等)。新生进校后,学生会就组织学生参观专业,引发他们对专业的兴趣。国内的学生要脱俗,胆子要大一些。
在考察的过程中,我们也浏览了各校的一些主页,其中印象最深的是各校在使用网络教学环境时比较讲究实效,花样不多但内容丰富、规范。例如,几乎每门课程都有自己的主页,老师的一些讲稿也放在网上。课程主页一般包括以下栏目:
l 课程内容概要
l 授课人员(列出讲师、TA的名单及他们的电话和email地址)
l 上课时间/地点(一门课周学时一般为150分钟,75*2 或50*3)
l 答疑安排(时间、地点、答疑老师姓名)
l 课程先修要求(不是必须)
l 教材,参考书(一些参考书就是公司的产品文档,如Oracle documents)
l 考核方式(书面作业、上机实验、Project、期中、期末考试等安排和所占分数)
l 纪律规定(抄袭作业的处罚、如何保护知识产权,网上资源引用的规定和限制等)
以上是我们出国考察了解到的一些情况,写出来与大家分享与借鉴。
附:几个学校的课程网址:
http://www.stanford.edu/class/cs106斯坦福课程主页(以cs106课程为例)
http://www.cs.Berkeley.edu伯克利
http://www.schedule.berkeley.edu伯克利
http://www.cs.Caltech.edu/courses.html加州理工
 楼主| 发表于 2009-9-5 13:34:14 | 显示全部楼层
美国纽约市立大学 钟京馗
前言

前几天收到《CSDN开发高手》杂志社编辑的约稿邮件,主题是关于中外计算机教育对比。笔者因学习和工作的关系对美国大学计算机教育体系有较深刻的了解和认识。同时与国内计算机系的教授也有一定的联系,比较了解国内大学计算机教育的现状。国内计算机系的学生就经常拿自己调侃,调侃之一:“计算机专业最没前途了,因为计算机专业大体分三类,硬件、软件和网络。硬件方面不如电子系,软件方面不如数学系,网络方面不如通信系…”。以往对这类的调侃,多是付之一笑。但谈及目前国内大学的计算机教育,尤其是国内大学扩招以后的状况,令人感慨万分。因为这类调侃竟然在很多学生心里得到了一定的认可。调侃之二:“国外计算机科学系是Computer Science, 国内计算机科学系是Counter Striker(反恐精英)”。这说明,国内计算机专业的学生大多都沉溺于网络游戏而放松了对本专业的学习。这些听后令人心酸的调侃,反映了国内大学计算机教育的现状,以及国内大学计算机教育的滞后性和缺乏创造性。



作为一名计算机专业的学生,中美两国的计算机教育在本科和研究生阶段究竟有何不同?哪种方式更适合中国学生?如何提高国内众多大学计算机系学生的专业水平?课程该如何设置?师资该如何配备?教授的能力该如何评估?这些问题实在是到了该探讨如何改革的时候了。



笔者研究生阶段的学习是在美国完成的。毕业于纽约市立大学 (City University of New York) 计算机科学系。回顾留美期间的读书,选择课程、挑选教授、课堂演讲、以及团队合作等种种难忘的经历。现将这些经历整理成文,以笔者个人的视角来观察分析美国大学计算机教育的特点。


大学本科

大学本科阶段的教育是一切高等教育的基础。基础不坚实,何以建高楼?本科阶段学习的重要性是不言而喻的。任何计算机方面的学习都离不开硬件和软件两部分。美国大学在这方面为计算机本科学生都提供了什么样的设备呢?


硬件篇

笔者从1996年下半年开始接触BBS。那是当时全国都大名鼎鼎的重庆海阔天空BBS站。第一封电子邮件,第一次下载软件,第一次实时聊天,都是在BBS网上完成的。之后,电信局终于开通了拨号上网。那是一个连拨号设置都非常复杂的时代,操作系统是Windows 95。昂贵的网费以及慢得如同老牛爬坡的速度,至今回忆起来仍沥沥在目。



在那个年代,最快的网络是T1,是世界上最快的网络。到底有多快,就只能从杂志书籍上了解一些。知道这个最霸道的T1网络位于北美,是互联网的骨干网。1997年,来到了美国。最初的震撼就是见识了美国大学的计算机房,全天开放供学生使用,居然还有空位子。任何一间计算机房都配备了至少一到两台黑白激光打印机。估计那是工作最为繁忙的计算机设备,每天不知道要消耗多少A4标准打印纸。打印机是免费提供给学生使用的。因打印数量庞大,为方便学生使用,于是整箱的打印纸就堆放在打印机下面的机柜里,学生可以随时自行添加。最大的震撼是,全校的任何一台计算机都与互联网相联,速度很快。记得在国内的时候,如果要在网上显示一幅图片,等上几分钟是很正常的事情。可当时的情况几乎是即点即现。这可是在1997年啊!惊喜之下,询问机房管理员,答曰:”本校的局域网隶属于北美大学骨干网,自身就是这个信息高速公路的一部分”。终于见识了T1网络的威力了。下载速度最快的时候可以达到5兆每秒,平时基本上是100-400K的下载速度。



如果是大学的教职工或者全日制学生,学校将会分配每人一个以@大学名称.edu结尾的电子邮箱。其实这不仅培养了学生对母校的认同感和自豪感,同时也是展现一个学校在网络技术实力方面的一种手段。不难想象,要维护一个复杂而庞大,运行稳定可靠的电子邮件系统不是件容易的事情。即使学生毕业离校多年,学校也不会注销学生的账号。学生仍然可以经常使用这个账号登录到母校的主机,查询自己感兴趣的信息。



对于居住在校内的学生,大学还为每个宿舍提供了10/100兆免费的宽带接入,只要填张申请表即可办理。对于不住校的学生,学校另外提供电话号码,键入这个号码就可以登录互联网了。有些类似国内目前的16300方式,只不过需要提供正确的用户名和密码。以上服务是每个已经正式注册的学生都可以享用的。计算机以及电子工程专业的学生还有额外的一些服务,诸如:



l         5兆个人主页空间。支持CGI,PERL(之后考虑到网络安全,停止了对CGI的支持);

l         Oracle数据库的使用权限。可以使用学校主机上的Oracle, 便于课程的学习,例如,数据库程序设计以及数据库管理。



基本上每台计算机都安装了一些开发工具。例如,微软的Visual Studio系列,如,VB,VC,另外还有TC,JAVA等等。如果是商业或者是有版权的开发工具,大部分安装的是免费版,个人版,学习版,或者是共享版。在公共计算机房的计算机上,几乎看不到国内大学计算机房里面令人眼花缭乱的专业版,企业版。从这个角度来说,国内大学生所使用的开发工具要比美国大学提供的好。



总的来讲,大多数的美国大学在计算机方面的配置是差不多的。但是,如果是名校,不论是公立的还是私立的,计算机的配置要比普通大学好得多。例如,纽约市立大学(CUNY)就是其中之一。得益于纽约市政府的大力支持。学校在教学质量,规模,硬件配备等方面在全美几个巨无霸型的公立大学中占据重要位置。其它两个巨无霸型的公立大学是纽约州大和加州州大。看来教育不下大本钱还是不行的。由于政府的支持,这些大学普遍收取较低的学费 (本州学生最低,外州学生其次,外国留学生最昂贵),因此吸引了大量本国学生及外国留学生报考,竞争非常激烈。批准入学后,更不同于国内大学的严进宽出,而是要认真对待所有的课程,否则无法保证顺利毕业。


软件篇

前面谈了美国大学的基本硬件配备情况。接下来,谈谈软件方面。下面分别从课程设置,教学方式及教材的选用、成绩评估、和毕业要求等几方面加以阐述。


课程设置

目前国内高校的教学内容都是由国家教学大纲来制定,应该说还是带有很强的计划经济的色彩。笔者认为大学或学院要创办出自己的特色,就应当由学校制定自己的教学大纲,由教授制定授课的内容。教学大纲定死了,就不容易创办出自己的特色来。在课程设置上,必须紧密结合市场的经济需求,克服脱离实际的现象,同时还要避免因迎合市场而盲目追求最新的理论。从另一方面来说,国内的大学希望紧跟国际计算机科学发展的最新理念和技术,并将最新的信息传授给学生。但就目前来看,国内大学还是有力不从心之感。因为任何新的理论技术,要想掌握得比较好,没有一定的技术储备是很难办到的。一方面教授的素质和能力要跟上,另一方面,学生要有强烈的学习欲望和钻研精神才行。两者缺一不可。



这里以纽约市立大学(CUNY)计算机科学系本科与Bridgeport大学计算机科学系本科学生2004年度课程设置为例。(课程名称笔者就不翻译了,相信国内大学生应该是相当熟悉的)。
 楼主| 发表于 2009-9-5 13:34:44 | 显示全部楼层
纽约市立大学(CUNY)计算机科学系本科课程设置,见表一



表一 美国纽约市立大学(CUNY)计算机科学系本科课程设置表



课程代码
       

课程名称
       

学分时

CSCI 012
       

Understanding and Using Personal Computers
       

3

CSCI 018
       

Computers with Business Applications
       

3

CSCI 080
       

Problem Solving with Computers
       

3

CSCI 081
       

HTML and WWW Programming
       

3

CSCI 082
       

Multimedia Fundamentals and Applications
       

3

CSCI 084
       

Models of Computation
       

3

CSCI 085
       

Database Application Programming
       

3

CSCI 086
       

Science Computing Tools and Instrumentation
       

3

CSCI 090
       

Topics in Computing
       

1-3

CSCI 111
       

Algorithmic Problem Solving I
       

3

CSCI 211
       

Algorithmic Problem Solving II
       

4

CSCI 220
       

Discrete Structures
       

3

CSCI 240
       

Computer Organization and Assembly Language
       

3

CSCI 280
       

Self-Study Programming
       

1

CSCI 307
       

Compilers
       

3

CSCI 310
       

WWW Programming
       

1

CSCI 313
       

Data Structures
       

4

CSCI 316
       

Principles of Programming Languages
       

3

CSCI 315
       

Artificial Intelligence
       

3

CSCI 320
       

Theory of Computation
       

3

CSCI 323
       

Design and Analysis of Algorithms
       

3

CSCI 331
       

Database Systems
       

3

CSCI 332
       

Object-Oriented Databases
       

3

CSCI 335
       

Information Organization & Retrieval
       

3

CSCI 340
       

Operating Systems Principles
       

3

CSCI 341
       

Computer Organization
       

3

CSCI 342
       

Operating System Programming
       

3

CSCI 343
       

Computer Architecture
       

3

CSCI 344
       

Distributed Systems
       

3

CSCI 345
       

Logic Design Lab
       

3

CSCI 348
       

Data Communications
       

3

CSCI 361
       

Numerical Methods
       

3

CSCI 368
       

Computer Graphics
       

3

CSCI 370
       

Software Engineering
       

3

CSCI 381
       

Special Topics in Computer Science
       

1-4

CSCI 391
       

Honors Problems in Computer Science
       

1-3

CSCI 393
       

Honors Thesis
       

3

CSCI 395
       

Research Projects
       

1-3

CSCI 398
       

Internship
       

1-3

CSCI 399
       

Honors Readings in Computer Science
       

3



总计40门课程,不包含毕业论文。(注:附录一列出了上述课程内容的简要说明)。



美国大学的课程可以从其课程的编码就能了解到这门课的适用范围。所有课程都以某个系或某个专业为单位由浅入深地从100-999编号。100-499为本科生课程,500-699为高年级本科生选修课和低年级研究生课程。编号为700-799隶属于研究生的学习范围。800及其以后的课程则属于博士生及其以上学生的学习范围。而某些大学规定计算机专业的研究生,在攻读700以上的研究生课程前,必须先完成特定的一些500-699之间的课程。



下面看看Bridgeport大学计算机科学系本科课程设置,见表二



表二 美国Bridgeport大学计算机科学系本科课程设置以及学校建议各门课程学习计划表



课程代码
       

        课程名称
       

学分时


       


       



第1学期(FIRST SEMESTER)

Eng C101
       

Composition & Rhetoric
       

3

Math 110
       

Calculus I
       

4

CS 101/101a
       

Introduction to Computing I / Lab.
       

4

Hum C201
       

Humanities
       

3

Phys 111
       

Principles of Physics I
       

4

第2学期(SECOND SEMESTER)

Math 112
       

Calculus II
       

4

Phys 112
       

Principles of Physics II
       

4

CS 102/102a
       

Intro. to Computing II / Lab. (Data Structures & Algorithms)
       

4

IntSt C101
       

Computer Ethics
       

3

Hum
       

Humanities Core
       

3

第3学期(THIRD SEMESTER)

CS 227
       

Discrete Structures
       

3

Math 215
       

Calculus III
       

4

CS 201
       

Advanced Data & File Structures
       

3

SoSc C201
       

Social Sciences
       

3

第4学期(FOURTH SEMESTER)

Math 214 or 314 or 340
       

Linear Algebra or Numerical Methods or Queuing Theory
       

3

CS 203
       

Second Programming Language
       

3

SoSc
       

Social Sciences Core
       

3

Engl 204
       

Technical Writing for CS
       

1

FA C101
       

Fine Arts
       

3

CpE 210
       

Digital System Design I
       

3

第5学期(FIFTH SEMESTER)

CS 300
       

Economics & Management of Computer Projects
       

3

Math 323
       

Probability and Statistics
       

3

CS 301
       

Programming Languages
       

3

CS 329
       

Fundamentals of Algorithms
       

3

CpE 286
       

Microprocessor System Design
       

3

CS 300
       

Economics & Management of Computer Projects
       

3

第6学期(SIXTH SEMESTER)

CpE 408
       

Operating Systems
       

3


       

Humanities Elective I
       

3


       

CS Elective I
       

3

CS 311
       

Computer Architecture
       

3


       

Tech Elective
       

1

第7学期(SEVENTH SEMESTER)

CS 450
       

Database Design
       

3

CpE 489
       

Software Engineering
       

3

CpE 471
       

Data and Computer Communications
       

3


       

CS Elective II
       

3


       

Technical Elective II
       

3

CS 449a
       

Senior Design Project
       

1

第8学期(EIGHTH SEMESTER)

Caps C390
       

Capstone Seminar
       

3


       

Free Elective
       

3


       

CS Elective III
       

3


       

Humanities Elective II
       

4

CS 449b
       

Senior Design Project
       

3

总计学分时
       

130



总计42门课,含毕业论文(Capstone)。



现在让我们对比研究这两所大学课程设置的特点:



纽约市立大学(CUNY)计算机科学系本科课程的设置很专业。全部都是与计算机直接相联系的科目。例如,数学和大量程序设计的课程,基本上不包含其它学科的课程。Bridgeport大学却与之相反。含盖了数学、物理、化学、工程、电子工程、计算机科学、计算机工程、社会科学、人文科学、英语、艺术等各个专业的课程。课程内容为Elective表示该门课程为选修课,Free Elective表示该门课程不受任何限制,可任意选择。两所大学除数学类的课程以及核心的计算机课程相同外,例如,数据结构,算法等,其它的课程设置可以说是差别很大。这充分体现了美国大学教育体制的一个特点,即自主性,多样性和灵活性。



同样的专业,却因为不同的教育传统和思路,则在课程设置上各有特点。CUNY是在美国享有很高声誉的公立大学。在课程设置上尽其所能地满足纽约的需求,纽约对计算机人才的要求是非常专业的。所以如此的课程设置也就不足为奇了。



Bridgeport大学是所私立大学。在师资和生源上都远不及CNUY。虽然Bridgeport离纽约市很近,但却隶属于美国新英格兰地区的康奈提克州。该校比较注重本科生的综合能力,所以在课程上设置了一些看似与计算机毫不相关的课程。美国的高中毕业生在选择大学的时候,就可以在网上查询到不同大学的课程设置。因而可以非常容易地挑选到最适合自己的大学。如果对计算机的课程感兴趣,而对其它的,褚如:人文,社会和艺术类的课程没有兴趣,那么CUNY就是很好的选择。如果兴趣比较广泛,不仅仅是局限于计算机类,那么Bridgeport大学就是很好的选择。
 楼主| 发表于 2009-9-5 13:35:05 | 显示全部楼层
教学方式及教材的选用

美国大学在新学期开始前,各系都会在其主页上刊登出详尽的列表。例如:本学期开始及结束的日期,本学期开设的课程,授课教授的信息,授课教授的接待时间,授课教室,期中期末考试的日期及考试地点等等,都可以轻松查阅。



一旦注册某门课程的学生比较多,将同时会有几个教授讲授同一门课。学生可以选择上哪一个教授的课。如果该教授招收的学生已经满员,则只能选择到其他教授门下。不同的教授,授课风格也迥然不同,有严厉死板型的,也好好先生型的。总之,如果以前没有听过该教授的课,可以询问其他学生对该教授的评价就可以了。但并不是说,某个教授招收的学生少,就说明该教授的水平差。



美国私立大学学费之昂贵,想必大家也有所耳闻。以Bridgeport大学为例,本科学生的学费是475美元(研究生550美元)每一学分时。每门课程通常是3或4个学分时,算下来,一门课程折合人民币12000—16000元的学费。而前面提到的公立大学,例如:市立纽约大学和私立大学相比,学费明显偏低。市立纽约大学本科学生的学费是360美元(研究生425美元)每一学分时。而且在美国大学没有补考的概念。如果某门课程,教授判定Failed -- 不及格,不仅成绩单上该门课程的成绩栏里会有一个难看的F,而且唯一的补救方法就是下学期重读这门课。当然,学费也要再缴一遍。即便重读过关,那个难看的F成绩同样会保留在学生成绩单上,那是永远也抹不到的记录。正是这种学分的管理制度,也起到了督促学生努力学习,完成学业的作用。



尽管学费昂贵,美国大学在学费管理上也有很人性化的一面。允许学生在一定的期限内注销(withdraw)所注册的课程。一般在该门课程开课的一个月之内。在此期限内,还有更详细的划分。比如,在开课一个星期之内注销课程,学校会退还此课程的全部学费给学生本人,而且在成绩单上不作任何记录。如果在两个星期后,最后期限之前做出注销决定,则退还此课程学费的50%给学生本人,或将这笔款转入学生名下,学生只能将这笔款用于支付学费。这个体制在美国大学中很普通,只是不同学校的具体政策不尽相同罢了。



一般来说,当学生确定了选修的课程及缴付所有的费用后,就会立即在大学的注册办公室(Register Office) 得到一张Timetable。上面明确列出了本学期课程的详细信息。例如:授课时间,授课教室等等。每门课程的第一节,教授会发给每个学生一份课程提纲 (Syllabus/Guideline),上面列出了该门课程所要求的教材及其它参考书目,必须完成的课后作业,多少次测验(Quiz)及课堂演讲(Presentation),有没有团队(Group)作业,期中和期末考试的安排,出勤率的考核,以及上述这些考核项目各占总成绩的比例,通过这门课程的最低标准等信息。通常,出勤率占总成绩的5%-10%,期中考试占总成绩的20%—25%,期末考试占30%-35%,其余部分就由平时作业(独立作业和团队作业),测验以及课堂演讲组成。美国大学的评分标准跟国内不一样。不采用100分制,而是采用A、B、C、D、F的等级制度。F就是前面提到过的Failed -- 不及格,A+,大致相当于国内的97-100分,A,93-96分。A-,90-92分。B、C、D的评分标准与此相似。



有些教授不指定教材,而是采用自己的讲义。有些教授虽然指定了教材,却很少使用。笔者在读《计算机分布计算与并行计算》课程时,Syllabus上注明:教材一本,辅助教材三本。正在思考如何去读这些书的时候,教授轻轻说了句,“我相信你们的能力。教材嘛,自己看就可以了,我将着重讲解书上的重点和难点,以及最新的发展趋势”。碰到这类教授,是一大幸事,因为可以学到很多这方面的知识。但要获得理想的成绩确实不易。



某些计算机课程,例如,《数据结构》、《高级数据结构》、《算法》、《高级算法》及《软件工程》等涉及到程序设计方面的课程,采用哪种计算机语言进行讲解,并没有明确的规定。基本上是由授课教授指定。目前上述核心课程采用的计算机语言最广泛的是Java其次是C++,也有一些大学采用C#。



这里简单说说教材的问题。因计算机语言频繁升级的缘故,美国大学计算机的教材更新速度很快,可能每年都会有新的版本出版。最典型的例子就是Java。教材的选定由授课教授决定,故此不同的教授即使教同一门课,教材也很难有统一的标准。但很多教授对以下两部教材的选择却是相当的认可。笔者也认同不论是初学者还是高手,仔细阅读这两部书,应该会有些斩获。这两部书都是由Deitel & Associates公司出版,分别是:



1.        Java How to program

2.        C++ How to program



在教学方面,大部分教授都不建议学生使用可视化的开发工具。认为在学习基础理论的时候,不应过分借助于这些可视化的开发工具。不过,学生如果坚持使用,教授也不反对。但是当教授拿着源程序提问时,学生要清晰理解源代码的设计思路,实现方式以及程序流程。否则即便源代码没有任何问题,成绩却会令人很失望。



关于团队作业(通常3人一组),一般在商定后,每个人各自负责相应的部分,并规定好完成各自部分的最后期限。在团队作业的进行中,每个成员都会尽力完成自己的任务,都不希望因为自己的工作而影响团队的最终成绩。但毕竟水平有差异,有时候不一定能顺利完成。在这个时候,所有的成员就会聚集在一起讨论解决的方案。此类的团队作业,一般都要求在课堂上做演讲。每个人负责讲述自己所完成的那一部分。在演讲期间,教授及其他学生可以随时打断话题,提出他们的问题或观点。只要是与演讲内容有关联的问题,都可以发问。所以,课堂演讲实际上是较难的学习内容。需要作出充分的准备。结构清晰,言简意明,口语流畅,制作精美(一般采用MS的PowerPoint制作,也有学生采用Flash制作)的演讲通常是可以获得高分的。在国内大学,类似这样的作业是比较少见的。其实国内大学在这方面应当大力加强,因为这不但可以锻炼学生的表达与组织能力,同时也是培养学生分工协作,增强团队精神的有效方法。


成绩评估

对于课后作业,教授通常规定了明确的最后期限 (Deadline/Due day),一旦超过这个期限,那么该次作业的成绩无效。一般同时以两种形式上交作业:



1.        标准的A4打印件

2.        电子邮件



教授会很快给予评定。并占用一定的时间来讲评作业。如果发现学生存在普通的问题,教授会再次讲解。作业的成绩不会当众公布。例如,分发试卷的时候,是由教授点名。被点名的学生走上讲台,由教授亲自分发试卷,标有分数的那一面试卷是朝下的。当然,教授也会向学生讲评考试结果。比如,分数的分布情况、最高分和最低分等等。还有常见的方法是,将学生的分数打印或者在网上发布出来。但是不列出学生的姓名,取而代之的是学生的ID。



学生每门功课的最终成绩,是依据一学期的总体表现,由授课教授评定。一旦学生认为教授评定的分数过低,可以同教授商谈。但在没有误判的情况下话,是很难更改分数的。如果商谈后对教授的最终评定结果仍不满意,可以继续向系主任投诉。不过,大部分是维持原判,因为系主任也没有更改学生最终成绩的权力。
毕业要求

       前面我们从表一及表二得知,要获得纽约市立大学计算机科学系学士学位,就必须得完成120个学分时,而要获得Bridgeport大学计算机科学系学士学位,则必须完成130个学分时。本科学生获得学位的要求不是很高,每科成绩不低于D即可。但如果希望本科毕业后继续进入研究生院学习,那么平均成绩不得低于C是最低要求。如果希望申请著名大学的研究生院,则平均成绩不应低于B+。当然,除了学习成绩外,学生的其它素质也是录取与否的因素,例如,是否具备独立思考,善于发现问题的能力?是否具有该学科的专业研究能力?等诸如此类的个人因素在录取中也占一定的比重。
 楼主| 发表于 2009-9-5 13:35:33 | 显示全部楼层
其它

       众所周知,美国计算机的硬件软件水平执全球之牛耳。计算机最重要的三大部分,微处理器、操作系统和数据库几乎被美国产品所垄断。美国大学生在计算机的应用水平上也普遍高一些。国内大学生绝大部分熟悉的OS就是微软的系列产品。而美国大学生是普遍使用两种操作系统,Windows + Unix/Linux。

       以笔者为例,以前只熟悉Windows,会用Novell。但在美国留学期间,意识到必须学习UNIX的操作,原因是:



1.         学校服务器是SUN OS 5.0,可以利用服务器强大的计算能力;

2.         服务器上安装了C、C++、Java、Perl、Python等编译环境;

3.         服务器运行非常稳定,可以被当作一个稳定的网络硬盘使用;

4.         因为是计算机专业的学生,开放了个人网页,可以实战HTML编程;

5.         除Oracle外,还可以学习MySQL、PostgreSQL等数据库;

6.         UNIX的安全性是不用质疑的。源代码存放在上面,非常安全;

7.         避免有时把源代码或作业忘记在家里,通常可以复制一个备份存放在服务器上;

8.         服务器上可以快速的传输文件。



美国大学的主机基本上都是UNIX系统。要使用学校的资源就必须学会使用UNIX。在这种情况下,笔者先从Windows 最基本的telnet 登录开始学习,由于telnet是以明文的方式和服务器通讯,安全方面有很大的隐患,所以很快就放弃了telnet,改用ssh登录学校的UNIX主机。接着,学习如何使用PINE(UNIX上的邮件收发程序)、VI(文本编辑器)、如何管理文件及设置权限、如何编写脚本、如何运行脚本程序、如何在UNIX下实时交谈, 以及如何安装自己的应用程序。随着使用UNIX的日益频繁,笔者对UNIX的理解也越来越深,也越来越喜欢UNIX了。



总之,正是由于学习UNIX的这个经历,令笔者在以后接触Linux的时候,很快就上手了,并且能够顺利系统的学习并掌握了DNS、WWW、SENDMAIL、POP3/IMAP、IPCHAINS、ROUTE、IPCHAINS、DHCP等服务器的安装和配置。


研究生

目前国内大学计算机系的传统教学模式确实存在不少弊端。所幸的是已有越来越多的有识之士开始意识到这些问题,并积极探索改革的方向和出路。特别是针对计算机教育,国家已着手大力扶持,除强化计算机系的教学质量外,还批准开办了多所不同层次的示范性软件学院,一些高校也开始了改革教学的实际行动。



在学位制度方面,国内高校基本上没有严格的淘汰制。特别是对于研究生,能考进去基本上就可以获得学位。而美国大学对学位的评定则是层层筛选,而且学位越高,淘汰的比例越大。这种对人才质量严格把关的机制,尤其值得我们仿效。



研究生的适应能力以及创新能力在很大程度上取决于坚实的理论基础和专业基础知识,这是高质量研究生教育的重要特征之一。在当今科学技术突飞猛进,专业知识日新月异的时代,只有扎实掌握专业的理论基础和系统的专业知识,才有可能从事这个专业所进行的科研、教学和其他专业技术工作,才能打好进行创造性研究的基础。因此课程的学习就显得尤为重要。如果没有合理的、科学的课程设置,没有切实可行的教学计划,课程教学就没有可靠的科学依据。如果课程教学不是立足于本学科的前沿,不立足于提高研究生的学术水平和科研能力,那么课程的教学质量就得不到保证。由于课程学习是实现研究生的培养目标、保证研究生质量的重要环节。课程设置将直接影响到研究生知识面的宽度和研究能力的高低,因此,研究生课程的设置是否合理、科学是非常重要的。



国内大学的研究生教育,专业课设置过于专业,例如,过去的物理化学专业是一个博士点,博士生上的课程全是物理化学。四大力学全是物理化学的内容;有机化学,学生修的全是有机化学,学术面过窄。而国外已经打破了二级学科的限制,甚至打破了一级学科。例如,国外化学系的博士生,有些课程是属于生物学,有生物仪器分析、生物物理学等课程。这样培养出来的学生适应能力和研究能力就相对较强。可以在学科的发展中间迅速调整自己的学科方向,跟上学科发展的潮流。我们过去培养的学生就非常专业,跳出自己的专业就一筹莫展。所以我们必须改变在很窄的专业学科范围内培养研究生的这种局面,要打破二级学科的限制,甚至要在一级学科上做些交叉。



美国大学的研究生院、研究生教授协会和科系对研究生课程的设置极为重视。一般而言,本科生与研究生的根本区别在于研究生的“后劲”比本科生足。而后劲来源于宽厚、坚实的理论基础。基于这种认识,国外大学科系在硕士研究生新生入校后,要进行摸底考试。若考试成绩不理想,则建议新生补课,并且只能在课程编号为600-699的范围内确定相关的补课科目。倘若核心课程的成绩达不到“B”,则失去获得研究生学位的资格。目前在美国大学的研究生培养方案中,理工科研究生的数学和有关基础理论学科的总学时仍呈上升趋势。一些著名的学府,研究生新生在第一学年不学习本专业课程,而是学习数学、物理、化学或统计学等课程。在此基础之上,从事本专业课程的学习。

    这里再顺便谈谈美国大学的博士生制度。美国大学博士生的培养尤其重视课程学习。其课程设置的范围较广,一般要求修16-20门课程,30-40个学分(文科要求修满45个学分以上的课程,理工科侧重实验,一般要求修满30个学分以上的课程)。基础课程的学习时间为1-2年。课程设置通常分为5个专业领域,其中一个领域还要跨一级学科。要求写大量的书评和课程论文。学习期间有多次考试,最后还要通过所修课程的全面性考核。各大学对博士生考试成绩的要求不尽相同。有的大学要求在B级以上;有的大学规定要有2门课程的成绩为A级,否则取消获得博士学位资格。例如,柏克莱加州大学工学院,要求博士生主修领域的课程成绩必须达到3.5,辅修领域的课程成绩也必须达到3.0。



现在看看美国大学计算机系研究生的课程设置及毕业要求。仍以纽约市立大学(CUNY) 为例:



    被录取的研究生新生必须完成以下三门课程(不算学分)之后,才能真正开始攻读研究生的课程:



1.        数据结构(603. Data Structures) ;

2.        汇编语言与计算机结构(642. Assembly Language and Computer Organization);

3.        信息技术概览(615. Survey of Information Technology);



在完成上述三门课的前提下,必须完成30个学分时,编号不低于700的课程,这些课程包括:

1.        算法1 (700. Algorithms I);

2.        分布计算(715 Distributed Computing);

3.        可计算性与复杂性(722 Computability and Complexity),主要讲述计算模型,如图灵机,随机存取机器,时序电路等等;

4.        计算机体系结构与网络(744. Computer Architecture and Networks);

5.        软件类,必须完成以下课程中的一门:

l         软件设计 (701. Software Design );

l         编译器结构(707. Compiler Construction);

l         计算机图形(718. Computer Graphics)

6.        硬件类,必须完成以下课程中的一门:

l         开关理论 (745. Switching Theory):这部分主要同电子电路有关;

l         计算机系统(746. Computer Systems):主要是指并行计算机结构、RISC及CISC处理器,并行计算的程序设计等;

l         计算机网络(748. Computer Networks)

7.        应用数学及算法类;

l         算法2 (762 Algorithms II );

l         系统模拟(764. Topics in Systems Simulation);

l         计算机系统概率模型(766. Probabilistic Models in Computer Systems)

8.        在获得21个学分时后,每个学生还必须满足或完成以下几个毕业条件(Capstone Requirement)中的一种;

l         软件开发项目实习(731 Software Development Practicum);

l         研究项目实习(732 Research Practicum);

l         硕士论文(733 Master's Thesis)



(注:附录二列出了上述课程内容的简要介绍)。





前面提到美国大学研究生教育的一个明显特点就是多学科交叉。这里就以笔者研究生的课程为例,对此作进一步的阐述并以此结束本文。课程是关于手写数字字符的识别问题。这门课程应该属于电子工程、人工智能、智能识别、信号处理、自动化处理等学科的交叉学科。首先,这门课程没有教材。全部阅读材料由教授Dr.Ihsin Phillips提供。这些阅读材料大部分是发表在IEEE刊物上的论文。这些论文都是讲述如何进行手写数字字符的识别。每篇论文采用的识别算法都不一样,而且作者来自不同的国家。



教学和考核的方法是,学生分成若干小组,每个小组负责自己的材料。小组成员将在课堂上讲述自己对数字识别算法的理解以及自己的观点。然后依据演讲的情况来评定成绩。但期末考试则不同,阅读资料在期末演讲前一个月分发下来,并且要求每个学生必须独立完成所有的工作,例如:阅读、理解、算法分析、算法扩展,幻灯片的制作、演讲内容的准备,以及对可能被提及的相关问题的准备等等。



下面列出教授提供的部分学习资料。这些是来自不同国家不同大学的研究成果。有国内的清华大学,还有来自美国纽约州立大学布法罗分校、英国Essex大学,韩国以及巴西的一些大学。



1.         一种新的分割手写的非规范数字字符串的方法 (A New Method for Segmenting Unconstrained Handwritten Numeral String)

作者:Bin Zhao, Hui Su and Shaowei Xia

Department of Automation

Tsinghua University, Beijing, 100084, P.R. China



2.         分割与识别完全非规范手写数字字符的系统(A System for Segmentation and Recognition of Totally Unconstrained Handwritten Numeral Strings)

作者:Z. Shi: S. N. Srihari, Y-C. Shin and V. Ramanaprasad

Center of Excellence for Document Analysis and Recognition

State University of New York at Buffalo: Buffalo, NY 14260, U.S.A.

3.         分割与识别手写数字字符的新的范例(New Paradigm for Segmentation and Recognition of Handwritten Numeral String)

作者:Sungsoo Yoon, Gyeonghwan Kim, Yeongwoo Choi, Yillbyung Lee

Dept. of Computer Science, Yonsei University, Seoul, Korea

Dept of Electronic Engineering, Sogang University, Seoul, Korea

Dept of Computer Science, Sookmyung Women’s University, Seoul Korea



4.         面向对象的表单描述语言与表单手写字符的处理方法(An object-oriented form description language and approach to handwritten form processing)

作者:C. Cracknell, A.C.Downton, and L. Du

Department of Electronic Systems Engineering

University of Essex, Wivenhoe Park, Colchester CO4 3SQ, U.K.



5.         分离手写数字字符图像的识别( Disconnected Handwritten Numeral Image Recognition)

作者:Luan Ling Lee and Natanael Rodrigues Gomes

Decom-Feec-Unicamp

Universidade Estadual de Campinas



此外还有其它一些相关的学习材料,但笔者印象最深的就是这五篇论文。从阅读资料的来源就可以看出教授Dr.Ihsin Phillips渊博的知识。通过这门课程的学习,可以扩展学生的思维,同时学生也更加深刻体会到交叉学科对本专业知识起到的一种补充和促进作用。


总结

笔者以自身的经历从个人的视角来观察分析美国大学计算机教育在本科和研究生阶段的一些特点。如何尽快提高我国大学计算机的教育水平,以及如何提高大学计算机系学生的专业水平,需要你、我,大家的共同努力。




本文作者:钟京馗   美国纽约市立大学计算机科学系助教
发表于 2009-9-5 21:09:23 | 显示全部楼层
不错,比较详细,但太长了点~~~~~~~~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表