1 计算机课程体系改革的背景
2006年北大全面开展四年一度的教学改革讨论和实践,本次教学改革校方总体思路是“树立学生为本的观念,增加学生对于课程、专业的选择空间。尊重学生的个性特点,因材施教。”许智宏校长提出:“大学是培养人的,大学是要培养特殊的产品——人才。但是大学不是工厂。在计划经济时代,我们培养的人才都是一个模子出来的。现在的社会需求是多方面的,同学们的兴趣也是多方面的。作为一名植物学家,我更希望看到校园是多元化的,希望大学是个花园。”
作为北大最大的一个学院,信息学院培养了全校近六分之一的本科生,其中计算机专业又占了信息学院三分之一的大比重,另有三分之二为电子学、微电子学、智能科学的学生。北大关于教学改革的需求促使我们认真审视并重新设置北大信息学院本科计算机专业的课程体系。另一个方面,随着计算机和通信技术近十年来的蓬勃发展,中国逐步步入信息化社会,国家“十一五”规划关于创新型人才培养的需求,也要求我们设置更适应国家信息化建设和发展需求的先进学科体系。
在此背景下,我们研究了国际上关于计算机课程体系的IEEE/ACM CC2005系列规范,研究了排名最靠前的MIT等美国大学的计算机相关专业本科课程设置,重点研究了以多元化培养ThreadsTM方案而走在教学改革前沿的佐治亚理工大学(GeorgiaTech),实地考察了香港最好的3所大学,在这些调查和研究的基础上提出了我们“重视理论基础、加强工程实践、细化专业引导”的教学改革方案,本教改方案在2007年初全院教学研讨会议上进行了广泛深入的讨论。
2 国际知名学校计算机专业课程体系设置情况
从著名的Computing Curricula 1991到现在尚未完成的Computing Curricula 2001(目前称为CC2005),中间经过了十多年。万维网Web的出现以及在全世界的迅速普及,计算机在各行各业的深入和广泛的应用,使得计算的概念在过去的十年里发生了巨大的变化。CC1991将计算机科学、计算机工程和软件工程融合在一起,而CC2005包含五个相对独立的部分:CCCS(计算机科学)、CCCE(计算机工程)、CCSE(软件工程)、CCIS(信息系统)和CCIT(信息技术)。其中CCIS与我们国内的“信息管理系”(原图书馆系)比较接近。教育部计算机专业教育指导委员会2001-2005年进行了广泛深入的调查研究,于2006年也正式推出了计算机科学方向、软件工程方向、计算机工程方向、信息技术方向这四个计算机科学与技术本科专业规范,以有效地指导不同办学单位的定位,鼓励按照多规格发展思路办学。
我们研究了MIT、CMU、UC Berkeley、Stanford、Harvard、Princeton、GeorgiaTech等大学的计算机相关专业本科课程设置,发现各大学在保持其各自办学特色的基础上,也逐渐吸纳了CC2005的一些课程改革理念,例如Berkeley在计算机理论、计算机工程方面都开设出系列的课程;Princeton在计算机工程、信息技术等方面有明显的方向分流;MIT明显地强调EE和CS的融合,其硬件课程非常重,而硬件和软件实验课程都很扎实;Stanford的选修课程非常丰富,可以分出算法理论、数据库和信息系统、图形和人机交互、网络与分布式系统、人工智能、软件系统设计等方向。
2.1 GeorgiaTech的线程设置
在着力于培养优秀工程师的教学改革方面,佐治亚理工学院校长韦恩·克劳福(G. Wayne Cloush)走在了前列,从20世纪90年代开始,他在招生政策、交叉学科、人际沟通、高屋建瓴的工程素质训练等方面作出了很多成功的改革,并得到了学生和社会的认可,他的观点就是应该“提供更恰当的教育,而不仅仅是更多的教育”(《世界是平的》——Thomas L. Friedman)。
2004年,佐治亚理工大学计算机学院提出了计算机专业人才的8个专业线程(Threads):计算建模(computational Modeling)、嵌入式系统(embodiment)、计算机基础(Foundations)、网络和信息技术(Info Internetworks)、人工智能(intelligence)、媒体技术、计算机与人(people)、计算机平台(platforms)。每条线程代表的不是垂直方向,不以传授给学生一套固定技术和知识为目标。线程代表的是水平方向,其目标是让学生广泛积累各种技能和学习经历。
自2006年秋季开始,佐治亚理工大学计算机学院开始采用全新的ThreadsTM培养方案。ThreadsTM包含线程和角色两个构件。线程是学生的计算身份,由两个交织的线程决定。一个线程就是课程的一个子集,它提供了一组直觉的、灵活的和交互强化的课程,以帮助学生构建某一计算领域的独特技能。获得计算机专业的学位必须通过两条线程的课程,学生在第二学年才开始选择方向,而且允许他们灵活地调整。角色则代表学生的学习计算机技术和技能的轨道。
如果说线程是学习内容,那么角色就是学位与现实世界的桥梁。目前,佐治亚理工大学计算机学院定义了实践者、企业家、发明家和交流者四种角色,学生可选择一个或多个角色获得学分,这些角色帮助学生进行课程选择并指导他们选择学院提供的课外活动。
例如,一个想成为实践者的学生就会选择实验室课程或新架构工作室课程,因为该类课程提供了密集的实践技术。而一个想成为企业家的学生则可在管理学院修一个或多个学分并通过参与新的计算项目,实现计算机与管理方面的跨学科学习。
由此可见,佐治亚理工学院的ThreadsTM培养方案提出了一种新的组织课程的方法,解决了长期困扰计算机课程设置的僵化、缺乏灵活性与透明性等问题,代表了一种远离垂直方向的课程设置趋势,即多元化、多方向的培养模式,并废除了单一核心课程加一堆选修课程的模式,构建了一种长期的动态的课程体系。该培养方案的基本目标是培养学生终身学习及自我调整适应未来社会需求的能力,并给予了学生在广泛的领域中选择专业方向,以及将个人学习计划纳入市场大环境中的机会。
2.2 对三所香港名校课程体系的考察
2006年12月,我们在对香港大学、香港中文大学、香港科技大学这三所大学实地考察的过程中,仔细研究了各个大学的计算机相关专业本科课程设置,并与负责课程设置的教授讨论了他们关于课程改革的设想。香港的同行也十分重视CC2005的课程体系,在他们的课程改革中也参照了该体系的思想,而且大家都非常重视数学基础和编程基础。港大和中大具有比较浓厚的人文基础,在人文和通识教育方面的课程很有特色,例如“Professional and technical communication for computer science”、“Engineering organization and management”、“Engineering and Society”、“Engineering economics and finance”、“Professionalism and ethics”。
香港大学率先完成了新课程体系的设置,除了把IT的内容融合到SE中以外,他们的课程方向基本上体现了CS、CE、SE、IS这4方面的内容。尤其是他们关于信息系统集成方面的课程很有特色,这门课程实用性很强,而过去国内外大学都很少开设。学生毕业后很多都从事系统集成工作,即使将来作研究,具有系统集成经验也是非常重要的。
中文大学的CS、CE两个方向的设置非常明显。而且他们正在进行新的课程设置,准备提供更多的选修课程,使得学生在高年级能够进行专业分流,例如数据库、图形图像处理、网络与信息系统等。中大有一个非常成功的work-study项目,学生保留学籍到公司工作半年到一年(相应地延长学籍),然后回来作毕业设计,每届学生有50%以上选择参与该项目。
香港科大的选修课程比较丰富,也有CS、CE两个方向。明显地提供了数据库、网络、图形图像、模式识别等系列专业课程,有些课程实际上是与研究生合上。科大非常重视程序设计能力训练,有5门编程课程。另外,科大对于程序设计原理、数据结构、面向对象程序设计、算法分析与设计、软件工程、研究性学习、毕业论文等课程,设置了“honor track”(优秀学生班),进入优秀班的学生大约为全体CS、CE学生的1/8,共30名左右。学生并不固定,需要通过任课教员的考试或认可,并没有强制的成绩限制。优秀班授课广度深度和教学进度都高于普通班。优秀班的成绩评定不受正态分布的限制,完全是教员说了算。
3 关于北大信息学院计算机专业课程的建议
近年来,学生希望学校在课程和专业选择方面提供更广阔的空间,例如北大信息学院计算机系有一半以上的学生选修经济双学位,还有一些学生选修数学双学位,2006年秋季学期末一位大四的学生总共参加了11门课程的考试“5门专业+2门通选+马政经+3门双学位”。一方面,说明有些学生希望加强数学训练、为将来科学研究打好理论基础;另一些学生有扩展经济学和管理学知识领域的需求,以适应将来的软件项目管理角色。另一方面,这样大范围的学生选修双学位,势必多数学生处于应付作业、疲于奔命的状态,而且这种盲目从众、缺乏指导的选课,不利于我们有计划地培养计算机专门人才、提高毕业生专业素质和社会适应性。
我们必须进一步解放思想,落实科学发展观,以人为本,以学生为本,尊重学生的个性差异,增加学生对于课程、专业的选择机会。我们要有时代责任感,根据学科建设需要和社会人才需求,依托北大信息学院现有的科研力量,创出具有北大特色的新课程体系。
从学科建设和人才培养来看,IEEE/ACM的CC2005课程体系规划了5类人才:计算机科学(CS)方面的专家主要关注计算的理论和算法,重点在于计算的理论基础;软件工程师(SE)主要关注大规模软件在它的生命周期内的开发与维护;计算机工程(SE)专家致力于开发和维护基于计算机的产品;信息系统(IS)专家关注信息资源获取、部署、管理以及在组织内的使用;信息技术专家(IT)则在一个组织或社会环境中通过计算技术的选择、创建、运用、集成和管理来满足用户的需求。
考虑到北大的研究型综合性大学的特点,不适合建设IT方向,而北大的信息管理系(原图书馆系)比较符合IS的培养方向,表1主要比较CC2005对CE、CS、SE三个方向在各知识领域的不同强度要求。
北大是一所研究型的综合性大学,具有浓厚的人文背景。北大信息学院在计算的理论和算法、计算机软件系统和软件工程、电子工程等方面有雄厚的科研基础和教师力量,我们可以在CS、CE、SE这三个领域开设出很强的系列课程。讲得通俗一点就是北大计算机专业毕业生可以做三件事情:计算机软件、计算机硬件及计算机信息管理、处理和应用。
课程改革的总体思路是保持基础扎实的传统(数学、程序设计、体系及系统软件基础课),打通本科生选修研究生课程的通路,增加与最新计算机技术接轨的新技术课,在计算机软件(对应于CS)、计算机硬件与体系结构(对应于CE)和信息技术及应用(对应于SE)这三个专业方向上进行课程建设。增加学生的选择意味着学院要开设更多更好的课程,我们将采取对于基础课因岗聘人、对于新技术课采取因人设课和因岗聘人相结合的建设方式。
北大计算机软件(计算机科学)方向目前课程已比较完备,可以与智能系共建一些理论课,例如随机过程、信息论基础、机器学习导论等。
计算机硬件(计算机工程)方向可以与电子学系共建,在软件的基础上开设一些硬件相关课程。
信息处理及应用(软件工程)方向可以采用本院教授和公司共建的方式开设一些实用性较强的课程。
北大毕业生要求总学分为140分,其中英语政治等公共必修课占了24学分、通识教育类选修课占16学分、毕业论文6学分,只有94学分可以用于专业课程。
在这些专业课程中,有一些是共同的专业基础课程:数学物理基础课程26学分,程序设计基础课程12学分,专业数学基础12学分,软件基础10学分,硬件基础12学分。对于不同的专业方向,其基础课程要求也不一样。例如,对于数学物理基础课程,学生可以选择偏数学类(CS方向),或者偏物理类(CE方向),或者数学物理基础都比较均衡(SE方向)。
还有22学分的计算机专业选修课程,分为计算机相关理论、计算机技术、计算机应用及新技术三个大类。
下面是各基础课程和专业选修课程的学时学分要求。
1.数学物理基础 26学分
学生可以根据情况自由组合,可能的组合:(1)偏数学类(CS方向,或智能方向),1+2+(5,6,7)中的一门;(2)偏物理类(CE方向,或者电子、微电子学方向),3+4+5+6+7;(3)数学物理基础都比较均衡(SE方向),2+3+(5,6,7)中的任意两门。对偏物理类的CE方向学生建议将(5,6,7)改为普通物理(上、下)。
学生可以根据情况自由选择专业方向,组合自己感兴趣的课程。学生的选择需要班主任、导师等教师肩负更多的指导责任。需要解决的问题是:很多基础课程都是大一就开设的,此时有很多学生对于计算机专业的整体面貌、对专业方向(大方向为计算机、智能、电子、微电子,小方向为CS、CE、SE)的选择都不太确定。因此需要班主任和导师引导学生进行正确选择,而且对于那些将来兴趣改变了的学生,应该允许他们转换方向并补修相关基础课程。
2.程序设计基础(12学分)
强化动手能力,每学期开始考试,合格者可以免修该课,同时选修一门相应的课程难度更深的课(相当于香港科大的honor course),对于大班课,增加习题课辅导的环节。
6.计算机专业课程(22学分,8-10门课)
以下1-3是目前已经开设的课程系列,对三个专业方向的学生都是开放的。4-5是准备建设的“计算机体系结构”和“信息系统及应用”两个专业方向的相关课程系列,其他方向的学生也可以选修。
(1)计算机相关理论课程
建议:打通本科生选修研究生课程的通道,对于将来进入本院读研的高年级本科学生,其学分可以记入研究生课程;对于毕业出国留学或直接工作的学生,其学分可以转入本科成绩册。
下面,对三个专业方向的办学定位和课程设置分别予以介绍。
3.1 计算机软件专业方向(计算机科学,CS)
本专业方向“计算机软件”的名称借用北大计算机系传统的叫法,比较接近于CC2005的“计算机科学”CS方向。“计算机科学”是一门研究计算机和可计算系统的学科,包括它们的理论、设计、开发和应用技术。主要的领域包括算法与复杂性、程序设计语言、软件设计与理论、数据库系统、人工智能、计算机系统、网络、人机交互、计算科学等。涉及数学、概率、逻辑、心理学等方面。注重理论知识的教学,培养学生系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备实践技能。CS方向毕业的学生适合于进入计算机专业相关研究领域攻读硕士、博士学位。
CS方向建议课程体系如下:
3.2 计算机体系结构专业方向(计算机工程,CE)
“计算机体系结构”的名称比较能体现北大在计算机体系结构方面的研究和人才培养,专业方向比较接近于CC2005的“计算机工程”CE方向。计算机工程学是现代计算系统、计算机控制设备的软硬件设计、制造、实施和维护的科学与技术。计算机工程学牢固建立在计算、数学、科学和工程学的基础上,并应用这些理论和原理解决在软硬件和网络的设计过程中面临的技术问题。计算机工程学是计算机科学和电子工程的交叉学科。为了设计小规模电子系统、微处理器和计算机系统,计算机工程学特别加强了对数字逻辑设计部分的要求。
设计是所有工程的根本。对计算机工程师而言就是应用科学和数学理论、原理设计硬件、软件、网络和工艺解决技术问题。从根本上来说,这是考虑到组织结构、技术、工艺、方法、接口和部件选择等因素,并经过深思熟虑之后的选择过程。毕业生必须熟悉计算机系统原理、系统硬件和软件的设计、系统构造和分析过程。他们必须拥有系统级视点,深刻理解系统如何运行,而不是仅仅知道系统能做什么和使用方法等外部特性。一个计算机工程师应具备设计、建立和调试软件与硬件系统的亲身经历。
基础知识包括基础科学、离散和连续数学以及概率与统计的应用。计算机相关的课程都来自于计算机体系结构、算法、程序设计、数据库、网络、软件工程以及通信。电子工程相关的课程一般来自于电路、数字逻辑、微电子、信号处理、电磁学以及集成电路设计。
CE方向的建议课程体系如下:
3.3 信息系统与应用(软件工程)专业方向要求课程
“信息系统与应用”的名称比较通俗,专业方向比较接近于CC2005的“软件工程”SE方向。“软件工程”是一门用系统的、规范的、可度量的方法开发、运行和维护软件的学科。主要的知识领域包括:计算基础、数学和工程基础、职业实践、软件建模与分析、软件设计、软件验证与确认、软件演化、软件过程、软件质量和软件管理。软件工程教学既重视理论知识和较高层次分析问题、解决问题的方法,也重视软件设计和工程实践。培养掌握科学思维方法、工程设计方法和良好工程素养,具有软件开发能力,具有软件开发实践和项目组织的初步经验,能适应技术进步和社会需求变化的高素质软件工程专门人才。
工程活动以设计为中心,设计在软件工程活动中占有十分重要的地位。为了满足项目需求,工程设计过程必须对潜在的冲突和约束进行折衷。工程设计涉及技术、经济、法律和社会等方面的问题。因为软件的特殊性,软件工程与传统的工程学不同。软件工程更关注抽象、建模、信息组织和表示、变更管理等。软件工程在产品的设计阶段必须考虑实现和质量控制。持续的演化是软件产品的重要特征。软件工程设计的关键是工程设计决策,它将用于软件抽象的各个层次。软件工程的相关学科有计算机科学与技术、数学、计算机工程、管理学、系统工程和人类工程学等。
SE方向的建议课程体系如下:
4 结束语
上述课程设置建议可能会在课程改革过程中进一步修改和完善,以推进北大信息学院计算机专业本科教育,更好的适应社会发展的需求、适应计算机科学技术发展的需求。在实施过程中还要注意以下几个方面。
(1) 重视基础。对于计算机专业来说,最主要的是数学和编程基础,注重培养数学思维能力。除数理逻辑、集合论与图论、代数结构与组合数学等离散数学外,开设概率统计、计算方法、理论计算机基础、信息论、随机过程、人工智能、机器学习等理论课程。
(2) 在北大信息学院计算机系进行专业引导,可以设置计算机软件CS、计算机体系结构CE、信息系统与应用SE三个方向。其中CS的数学基础更强、算法理论、人工智能等方面的课程更多。CE的数学和物理基础并重,更多开设计算机系统工程、数字电路、VLSI设计、硬件测试与维护等方向的课程。SE方向在项目管理、软件模型与需求分析、软件验证与测评、信息系统集成等方面开设相关课程。要注意各个专业方向知识体系的建设,注重学生专业能力的培养,而不是流于若干课程的堆积。
(3) 打通本科生选修研究生课程的通道,让本科生选修感兴趣的专业课程,例如数据库、网络、图形图像、人工智能、软件工程等,以达到类似于GeorgiaTech那样专业细化的效果,培养更适应于社会需求的专业人才。
(4) 开设“优秀班”(honor track)课程,这样更有利于因材施教,培养领袖人才。
(5) 加强关于团队合作、人际沟通与交流、金融管理、伦理和社会等方面的训练,有些内容可以安排在传统的政治课中完成。
总体说来,我们的课程设置理念是“重视理论基础、加强工程实践、细化专业引导”,欢迎从事计算机教育的同行专家进一步关注北大计算机专业教学改革方案、实施情况和培养效果。
参考文献:
[1] CC2005, The Overview Report of Computing Curricula 2005. http://www.computer.org/portal/cms_docs_ieeecs/ieeecs/education/cc2001/CC2005-March06Final.pdf
[2] 计算机科学与技术专业教学指导分委员会.计算机本科专业发展战略研究报告(讨论稿).《高等学校理工科教学指导委员会通讯》, 2004,(11).
[3] 2006-2007 Computer Science Threads General Catalog, Georgia Tech. http://www.catalog.gatech.edu/colleges/coc/ugrad/comsci/threads.php
推荐访问: 课程改革 计算机专业 北大 信息学院 建议