大学计算机学科评估范文

时间:2023-09-20 16:58:49

导语:如何才能写好一篇大学计算机学科评估,这就需要搜集整理更多的资料和文献,欢迎阅读由公文云整理的十篇范文,供你借鉴。

大学计算机学科评估

篇1

目前,学院设有计算机科学与技术一级学科博士点和博士后流动站,拥有计算机应用国家重点学科、计算机软件与理论国家重点(培育)学科和浙江大学CAD&CG国家重点实验室。截至2008年4月底,计算机学院现有教职工225名,其中中国工程院院士2人、“长江学者计划”特聘教授2人、浙江省特级专家1人、国家杰出青年获得者3人。学院在校生规模1854人,其中本科生为782人,硕士研究生653人,博士研究生419人,另还有软件学院本科生774人,第二学士学位30人,软件工程硕士研究生861人。计算机学院以及软件学院在校生的总规模已达全校的9%以上。

从20世纪90年代中期以来,浙江大学计算机系(学院)进入了快速发展的轨道。在科学研究上,注重基础理论研究、高技术研究和关系到国计民生的重大科技攻关,在人工智能与应用、计算机图形学、计算机辅助设计与集成制造等主要研究领域基础上,进一步凝炼学科方向,大力发展网络与多媒体、产品创新设计、数据库、嵌入式系统、网络分布计算等具有特色的新型学科方向。科研经费大幅度增长,2006、2007连续两年学院科研经费突破1亿,名列全校前列。2004年潘云鹤院士负责的“面向区域经济发展的高技术产品开发系统”成果获国家科技进步二等奖;2007年,陈纯教授负责的“纺织品数码喷印系统及其应用”成果获国家技术发明二等奖。

在人才培养上,学院目前设有计算机科学与技术、工业设计、数字媒体技术专业,软件学院还设有软件工程专业。目前,学院(包括软件学院)已获得国家精品课程4门,国家双语示范课程1门,国家第二类特色专业4项,国家第一类特色专业2项,国家人才培养模式创新实验区1项,另外还获得大学生创新性实验11项。学院学生注重工程创新实践能力培养,近年来学生在各类国际重要竞赛中频频获奖。学院培养的学生以其扎实的专业基础、良好的动手能力,在就业市场中广受好评。每年都为Intel、Microsoft、IBM、Google、Autodesk、Nokia、State Street、华为、百度、网易、腾讯、网新等国内外著名IT企业提供一大批优秀毕业生,涌现了许多耀眼的“新星”,如浙江省十大“创业之星”、“手机备备”的发明人方毅,北京奥运会“祥云火炬”的核心设计师章俊,被美国商业周刊称为TopCoder程序设计竞赛“大赢家”并据此要重新评估中国软件工业水平的吴嘉之等。

篇2

美国麻省大学(University of Massachusetts Amherst)阿默斯特校区(以下简称麻省大学)是马萨诸塞州立大学系统五个校园中的主校园,是美国知名的研究型大学。该校创办于1863年,坐落在美国东部美丽的新英格兰地区。

麻省大学计算机系成立于1964年,其研究生教育也有超过40年的发展历史。由最初的3名教授发展到现在拥有43名教授,其中包括9名ACM计算机学会(Association for Computing Machinery)院士(Fellow)、4名电子和电气工程师协会(IEEE)院士、5名人工智能学会(AAAI)院士和2名美国科学促进协会(AAAS)院士。麻省大学计算机系在人工智能、网络与分布式系统、计算理论等多个领域的研究处于世界领先水平。作为美国知名的计算机系,麻省大学计算机系的教育理念是“培养下一代能以创新的方法解决真实世界问题的计算机科学家”(cs.umass.edu/grads/msphd-requirements)。在这个核心思想的指导下,该系非常注重对博士研究生的培养,为了达到培养学生具备进行原创性科学研究(Original Research)的能力的教育宗旨,该系制定了一套非常严格的课程计划,以培养学生坚实而广博的基础知识、良好的科学研究方法和思维习惯。麻省大学计算机系每年大约会收到1000份左右来自世界各国的优秀学生的申请,攻读其博士学位,而录取的人数一般保持在30名左右。完善和严格的博士研究生培养体系、开放而先进的教育理念,使麻省大学计算机系成为全美最具有竞争力的计算机院系之一。

麻省大学计算机系招收两种形式的博士研究生:硕士/博士连读研究生和直博研究生。只有在美国其他大学获得相应计算机硕士学位,并修完麻省大学计算机系认可的相关课程的学生,才有资格申请直接攻读博士学位;否则,学生在录取后必须经过硕士/博士的连续培养才能获得博士学位。

无论哪种形式,麻省大学计算机系博士生培养大体分为两个阶段:博士生资格学习阶段和博士生研究阶段。博士生资格学习阶段主要是对学生进行基础知识培养和基本研究能力训练。学生只有在通过博士资格考试论证,成为正式博士候选(PhD Candidate)人后,才能进入下一步的博士论文研究阶段学习。以下是麻省大学计算机系对硕士/博士研究生的培养要求:

(1)Actively participate in research under the guidance of an advisor(在导师的指导下,积极参与研究)

(2)Satisfy 6 Core Requirements (完成6门核心课程的要求)

(3)Complete 42 course credits (core courses taken to satisfy core requirements are included)(完成42个课程学分,其中包括核心课程的学分)

(4)Complete a 6-credit MS Project (完成6个学分的硕士研究项目)

(5)Graduate with an M.S. Degree(申请获得硕士学位)

(6)Pass the Department Qualifying Exam- Portfolio(通过博士资格考试)

(7)Form a Committee(成立答辩委员会)

(8)Propose a Thesis(提交博士开题报告)

(9)Complete 18 Dissertation Credits (完成18个学分博士论文)

(10)Pass the Teaching Assistant Requirement(完成助教的工作要求)

(11)Pass the Residency Requirement (at least 9 credits in back-to-back semesters) (完成连续两个学期修9个学分的要求)

(12)Defend and Submit a Thesis (博士答辩和提交博士论文)

本文将以麻省大学计算机系为例,探讨美国计算机专业博士研究生培养的一个重要环节――博士研究生课程教育体系的特点,以期为提高我国的计算机专业博士生教育提供借鉴。

2掌握牢固的理论知识是培养优秀博士生的基础

美国的计算机博士教育非常注重对学生基础理论知识的培养,为了使学生掌握牢固而广博的基础知识,麻省大学计算机系要求每个硕士/博士研究生必须修完6门博士核心课程,而且成绩必须达到B+以上。这些核心课程分别属于计算机科学的三大领域:理论(Theory)、系统(Systems)和人工智能(Artificial Intelligence),课程设置具体如下:

(1) 理论核心课:计算理论(Computation Theory)、高级算法(Advanced Algorithms)

(2) 系统核心课:有三组课程,分别是:

编译技术(Compiler Techniques)、现代计算机体系结构(Modern Computer Architecture)

数据库设计和实现(Database Design and Implementation)、高级计算机网络(Advanced Computer Networking)、操作系统(Operating Systems)

高级软件工程I(Advanced Software Engineering: Synthesis and Development)、高级软件工程II(Advanced Software Engineering: Analysis and Evaluation)、程序设计语言(Programming Languages)

(3) 人工智能核心课程:高级人工智能(Artificial Intelligence)、机器人学(Robotics)、信息检索(Information Retrieval)、不确定环境下的推理(Reasoning and Acting under Uncertainty)、增强型学习(Reinforcement Learning)、机器学习(Machine Learning: Pattern Classification)

根据不同的研究方向,学生可以在六门核心课程的选择上有所不同,但为了加强理论基础和掌握知识的广度,无论哪个研究方向的学生,都必须修完两门理论核心课程和一门高级人工智能课程,同时,再根据自己的研究方向选修其他三门核心课程。例如,一个系统方向的博士研究生除了修完以上两门理论和一门人工智能课程以外,还必须修完来自于系统方向不同组的三门系统方向的课程;而一个人工智能方向的博士生则必须修完另外两门人工智能方向的核心课程和一门系统方向的核心课程。

每门核心课程由教师讲授一学期,其中每星期2次课,每次2小时,3个学分。根据内容不同,每门课程一般要安排5~8次书面作业、1次期中考试和1次期末考试。其中,对系统方向的课程来说,每个章节完成后一般还有一次课程项目设计(Course Project),主要要求学生实现相应的算法和进行性能评价。由于核心课程要求高,课程学习内容多,导师和系里会建议学生每学期选学不超过一门的核心课程,所有6门核心课程则在三年内完成。如果成绩没有达到B+,麻省大学计算机系允许学生重修该核心课;但是,如果学生在规定的博士资格考试申请时间前没有通过全部的6门核心课,则不再具备继续攻读博士的资格。

严格的核心课程作业、考试制度和淘汰制度,不但使学生牢固掌握了计算机科学各领域的基础知识,培养了学生勤奋刻苦的专研精神,而且极大地丰富了学生的视野,为学生进入实际科学研究打下了坚实的基础。

3灵活而完善的博士生选修课程体系是培养创新型人才的重要途径

美国一流研究型大学博士生教育的目标是培养世界一流的科学家和拔尖创新型人才,为了实现这个目标,美国的博士生教育除了注重培养学生扎实和精深的基础知识外,还非常注重培养学生的创新思维和发现新问题的探索精神及能力。

如果核心课程体系的设置是培养优秀博士生的基础,是向学生传授学科领域的重要基本知识和原理与技术,是学生全面掌握计算机基本理论与方法的重要途径,那么,选修课的设置则是对学科基本知识的补充,是培养学生学习新的知识和了解并探索前沿研究方向,从而成为创新型人才的重要手段。

麻省大学计算机系的做法是,在博士研究阶段,除了要求学生完成18个学分(6门)的核心课程学习以外,还要求完成24个学分(8门)的非核心课程(或称为选修课)学习。这些选修课大多是关于本学科及相关专业前沿领域近3~5年的新研究方向、研究方法或新技术的相关内容的介绍,一般由教师在每学期开学前提出新的课程计划,学生则根据自己的研究兴趣和职业目标自由选课。通过课程的学习,学生能在最短的时间内了解本学科相关领域的最新研究现状,更重要的是,在课程的学习过程中,教授会将许多新出现的问题在课堂上和学生讨论,同时,通过2~3个课程项目培养学生独立(或合作)解决新问题的能力,以及教会学生各种探索问题的研究方法。

在教学模式上,可以采用由教授主讲的传统方式,也可以采用以讨论为主的方式。以教授为主讲的教学模式在此就不再赘述,以下着重描述以讨论为主的选修课教学模式。

以讨论为主的Seminar是美国计算机院系的教授最常用的选修课教学模式。Seminar的课程设置没有固定模式,但通常有以下几方面的特点。

第一,课程的选题一般是近年新出现的有代表性的前沿研究课题。

第二,课程内容的选择一般来自近年来该领域顶级国际会议的专题论文。

第三,课程内容的组织由教师完成。教师在确定题目后,一般会根据论文的情况将讨论的内容分为多个子专题,每个子问题由3~4篇论文组成。课程的开始一般是综述性的论文或在该领域出现的最早的学术论文,其目的是探讨该研究方向出现的新的应用背景需求和所带来的新的挑战。其后的每个子专题则将对具体问题和方法进行深入探讨。

第四,选课的学生人数一般在20~30人左右,而且通常是由学完了核心课程以后的高年级博士生组成。学生人数太少,论文的覆盖面可能太小;学生太多,可能导致讨论的深度不够。同时,只有学完了基本理论后,学生才有可能具备较深入分析问题的能力。在Seminar的学习讨论中,找到新的研究问题也是该课程设置的重要目的之一。

第五,课堂教学的模式基本上是教师和学生互动的教学方式。教师在第一节课引导学生对该领域的基本问题有了初步认识后,学生将对每篇论文进行评估(Review)、宣讲(Presentation)和进行课堂讨论。每篇论文的宣讲时间是25~30分钟,课堂讨论时间是10~15分钟。其中教师将引导学生对论文中所研究的问题和关键技术进行深入讨论,学生参与讨论的情况将作为课程考核的重要依据。

选择合适的题目并对教学讨论的内容(论文)进行筛选和组织对开课教师的要求非常高。为了准备一门新的Seminar课,教师一般需要预先通读该研究方向所有重要国际会议的相关论文,然后根据不同的研究问题对论文分类,并将其中有代表性的论文提炼出来,作为课程学习的论文。在课程项目的设置上,教师会事先准备一些题目,如对某些算法的实现、评估和改进,实现原形系统等,同时也非常鼓励学生在论文讨论的过程中有针对性地提出自己的见解和新的解决问题的方法。

4合理的课程学习安排是培养高质量博士生的有效保证

美国的博士教育是以博士生的最终质量为评判标准,而不是以年限来规定学生的毕业时间。在美国计算机专业,培养一个硕士/博士生一般需要至少5年时间。由于强调博士生专业知识学习的深度和广度,在整个博士学习阶段,博士生都会积极参与课程的学习,并尽可能地将研究项目中的问题和课程学习联系起来,用所学到的方法或思路来解决新问题。

以麻省大学计算机系为例,虽然学生的背景不同,但为了在保证质量的前提下帮助学生用最短的时间顺利完成博士课程要求和博士论文要求,系里建议学生按如表1所示的时间表安排整个博士阶段的学习计划。

麻省大学计算机系不但在本系有完善的研究生课程体系,学生可以根据自己的研究兴趣和职业规划来自由选课,而且也鼓励学生在其他相关院系选修本系没有开设但对研究有用的课,如数学系或电子工程系的高级课程。总之,美国博士教育的一个重要特点是强调基础知识的学习,鼓励学生以积极的态度参与到课程的学习中,同时训练学生在课程学习的过程中逐步学会发现问题和研究问题的方法。

5启示和建议

美国的博士教育强调坚实的基础理论知识、完善的知识体系和用于探索与创新的研究能力,而这些恰恰是决定博士毕业生日后发展潜力的关键。长期以来,我国计算机博士教育主要是通过参与科研项目的形式来对学生进行培养,这种“研究项目驱动型教育”在我国恢复研究生教育的初期起到了很好的推动作用,培养了大批科研人才。但随着教育本质的回归和创新型人才培养的需要,从总体来看,我国的这种单纯强调研究项目的教育模式培养的博士生,质量与国际先进水平相比还有一定的差距。由于没有严格的博士课程要求和淘汰制度,学生在学习阶段往往会忽略对基础知识的学习和对知识结构的完善。长此以往,必然会影响博士生的研究水平和发展潜力,最终将会影响国家的整体创新能力。

笔者建议,为了使学生掌握牢固的专业基础知识,同时培养学生在某一学科领域的研究兴趣和基本的研究能力,应该首先强调核心课程体系的建设,不论哪个方向的学生都必须通过一定数量的核心课程的学习,如算法、分布式操作系统、人工智能等,这些核心课程应由教师来讲授;同时,应严格课程的考核制度和课程评价体系。对于选修课,由于其主要目的是扩展学生的视野,培养学生分析问题和研究问题的能力,所以应借鉴国内外Seminar课程的成功经验,积极有效地激励教师和学生共同上好Seminar课。

博士生教育是一项复杂而艰巨的系统工程,而其中的课程学习是研究生培养中非常重要的一个环节,如何通过严格的培养机制和灵活的培养方法,在给学生传授基础知识的同时培养学生分析问题和解决问题的能力;如何将合理的研究生课程体系和研究项目结合起来,严格博士生培养机制,完善博士生资格评估体系,从制度上保障博士研究生的质量;以及如何真正教会学生探索科学基本问题的方法,培养学生良好的科研习惯和勇于开拓创新的精神等,是我们在计算机学科建设中应该进一步思考的问题。

篇3

关键词:计算思维;表述体系;计算;层次结构;教育;思维习惯

一、问题的提出

2006年3月,周以真(Jeannette M. Wing)教授在国际著名计算机杂志Communications of the ACM上发表了《计算思维》一文[1],并用3种技能定义了“计算思维”,该定义被国际学术界广泛采用。然而人们仍然在问,计算思维是什么?计算思维的核心是什么?计算思维的组成元素是什么?计算思维会因学科的不同而不同吗[2]?

显然,要给出计算思维的一个内涵式的定义是困难的,周以真教授为此给出了一个外延式的定义,并请大家尽可能地补充。周以真教授希望人们不要将精力放在计算思维的定义上,而更多的是将精力放在计算思维的运用上,通过计算思维在各自学科领域创造性地进行科学发现与技术创新。周以真是成功的,她联合美国国家科学基金会的各个学科部门,推动了美国两个重大的国家科学基金研究计划CDI和CPATH,促进了美国以计算思维引领的各学科的发展。在她退出美国国家基金会后不久,她又得到了微软公司的邀请,担任了微软负责研发的副总裁职务。毫无疑问,周以真教授的建议是正确的,通过计算思维,可以在多学科的行动中,进行根本的、范式变化的研究与发现。

一般来说,一个好的研究“主题”在开始的时候,可以先用外延式的方式尽可能拓展开来,随着研究的深入,人们希望建立一个框架,让更多的人更容易理解这个“主题”,持续地发挥这个“主题”的作用,进一步拓展它的应用范围。教育部高等学校大学计算机课程教学指导委员会遵循这样的基本原则,鼓励学校、教师先实践[3-7]。在已有的大量实践基础上,教指委认为,目前很有必要尽快给出计算思维表述体系的一个基本框架,进一步推动这项改革。本文作者受教指委的委托,对此展开了研究工作。

二、计算思维教育的目的

在构建计算思维的表述体系之前,人们希望先明确计算思维的教育目的之所在。本文认为,计算思维教育的目的是培养一种思维习惯,一种像计算机科学家思考问题那样的习惯。

在研究层面,对于一个问题的解决,著名计算机科学家、1998年图灵奖获得者詹姆士・格雷(James Gray)的思路(习惯)是这样的:

(1)首先,对问题进行非常简单的陈述,即要说明解决一个什么样的问题。他认为,一个能够清楚表述的问题,能够得到周围人的支持。虽然不清楚具体该怎么做,但对问题解决之后能够带来的益处非常清楚。

(2)其次,解决问题的方案和所取得的进步要有可测试性。

(3)最后,是整个研究和解决问题的过程能够被划分为一些小的步骤,这样的话就可以看到中间每一个取得进步的过程。

在技术层面,美国华盛顿大学教授、美国国家研究立法委员会计算机文化协会主席史耐德(Snyder Lawrence)教授在其撰写的《新编信息技术导论:技能、概念和能力》一书中指出,人们可以从抽象的角度来思考信息技术。他写道,当你成为数字文人之后,你可以从抽象的角度来思考技术,而且更喜欢(习惯)提以下问题:

(1)对于这个软件,我必须学会用哪些功能,才能帮助我完成任务?

(2)该软件的设计者希望我知道些什么?

(3)该软件的设计者希望我做些什么?

(4)该软件向我展示了哪些隐喻?

(5)为完成指定任务,该软件还需要其他哪些信息?

(6)我是否在其他软件中见到过这个软件中的操作?

在专业层面,对于一个专业的计算问题,笔者认为:从计算的手段来看,我们应当使计算机械化(如算盘、手摇计算机、模拟计算机、电子数字计算机);从计算的过程来看,我们应当使计算形式化(如图灵机、计算理论);从计算的执行来看,我们应当使计算自动化(如冯・诺依曼机)。

在计算思维的研究中,教育部高等学校大学计算机课程教学指导委员会主任委员李廉教授认为,在传统的教学中,计算思维是隐藏在能力培养内容中的,要靠学生“悟”出来,现在要把这些明白地讲出来,让学生自觉地去学习,提高培养质量,缩短培养的时间。从软件开发的角度,他提出了抽象与绑定的研究思路,大致是,抽象是构建和理解复杂系统的工具,规范是现实世界到虚拟世界的抽象;而绑定是虚拟世界到现实世界的重现,所有的软件开发,无非都是抽象与绑定的结果。

美国计算机科学技术教师协会则认为,计算思维的教育应存在于每一所学校的每一堂课程的教学中。他们认为衡量是否采用了计算思维,取决于对于一个要解决的问题,教师能否有意识(习惯)地提出以下问题[8]:

(1)人与计算机的计算能力有多大,各自的局限性是什么?

(2)研究的问题复杂性有多大?

(3)问题解决的判定条件是什么?

(4)什么样的技术可以应用于当前的问题讨论中?

(5)什么样的计算策略更能有效地解决当前的问题?

以上是计算机科学家以及计算机教师协会关于问题解决的思维习惯。随着研究的深入,人们不仅需要总的一般性的认识,人们还希望建立在某种合理框架上的认识,以便系统地、有步骤地、鲜明地培养这种习惯,最终全面提高人们的计算思维能力。

三、计算思维表述体系的框架

计算思维表述体系的框架,涉及计算思维的组成元素以及这些组成元素之间的相互关系。在美国CPATH计划的支持下,经过几年的努力,已取得一些成果。如在CPATH计划的支持下,美国德保罗大学(DePaul University)的教授们就在ACM前主席Denning“伟大的计算原理”概念分类的基础上构建了一个教学框架,把通识教育中的核心技能――逻辑推理、写作和伦理联系了起来[9]。Denning设想,在向各学科介绍计算原理时要力争做到通俗易懂,通过大众化的解读来建立一种超越学科范畴的计算共识,由此构建不同学科之间的全新关系。他表示,计算原理可以被归为7个类别,每个类别都从一个独特的视角去看待计算本身。根据Denning的观点,7个伟大的计算原理分别是:计算、通信、协作、记忆、自动化、评估和设计[10]。

1.基于“伟大的计算原理”计算思维表述体系框架

Denning的7项“伟大原理”奠定了一个基础,这个基础可以帮助人们认识和组织计算思维的实例,并将它们进行有效的分类。同时,这个基础也可以认为是一个框架,这个框架可以帮助人们将计算思维运用到计算机科学以外的领域。在基于“伟大的计算原理”研究中,我们认为,“抽象”也是一个伟大的计算原理,应纳入框架之中。另外,Denning划分的概念之间没有层次和逻辑关系,还需进一步完善。下表给出基于“伟大的计算原理”构建的计算思维表述体系框架。

2.计算思维表述体系中的基本概念

在周以真的文章中,计算思维指的是一种能力,这种能力通过熟练地掌握计算机科学的基础概念而得到提高。周以真将这些基础概念用外延的形式给出:约简、嵌入、转化、仿真、递归、并行、抽象、分解、建模、预防、保护、恢复、冗余、容错、纠错、启发式推理、规划、学习、调度等。周以真希望人们对这些基础概念继续补充,本文认为,这些基础概念至少还应该包括CC1991 给出的12个核心概念:绑定、大问题的复杂性、概念模型和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安全性、折中与结论。显然,12个核心概念与周以真给出的基础概念有些是重合的,如“建模”与“概念模型和形式模型”。下面,对以上概念进行分类,力求减少它们的交集。另外,我们希望更多的学者对这些概念(包括扩展的基础概念)在研究的基础上进行更有效的分类,以使该框架更加完善。

在本文给出的计算思维表述体系框架中,“计算”是一个中心词,是第一层次的概念,其他7个概念以“计算”为中心并服务于“计算”;7个概念中的“抽象、自动化和设计”为第二层次的概念,是从不同方面对“计算”进行的描述;“通信、协作、记忆、评估”蕴含在“抽象、自动化和设计”三个概念之中,是计算机科学中仅次于“抽象、自动化和设计”的基础概念,属框架中第三层次的概念(如下图所示)。对这些概念的理解,有助于加深人们对“计算”的认知。下面,分别对这些概念进行定义。

计算思维基本概念的层次关系图

(1)计算(Computation)是执行一个算法的过程。从一个包含算法本身的初始状态开始,输入数据,然后经过一系列中间级状态,直到达到最终也即目标状态。计算不仅仅是数据分析的工具,它还是思想与发现的原动力。可以认为,计算学科及其所有相关学科的任务归根结底都是“计算”,甚至还可以进一步地认为,都是符号串的转换。效率是计算问题的核心,以计算思维为切入点的大学计算机教学改革最大的亮点在于充分地重视“计算复杂性”这个与“效率”有密切联系的核心概念。一般来说,掌握一个概念往往需要举出反映该概念本质的3个经典案例和3个反例。计算包含的核心概念有:大问题的复杂性、效率、演化、按空间排序、按时间排序;计算的表示、表示的转换、状态和状态转换;可计算性、计算复杂性理论等。

(2)抽象(Abstraction)是计算的“精神”工具。周以真认为,计算思维的本质是抽象化。至少在两个方面,计算学科中的抽象往往比数学和物理学更加丰富和复杂。第一,计算学科中的抽象并不一定具有整洁、优美或轻松的可定义的数学抽象的代数性质,如物理世界中的实数或集合。例如,两个元素堆栈就不能像物理世界中的两个整数那样进行相加,算法也是如此,不能将两个串行执行的算法“交织在一起”实现并行算法。第二,计算学科中的抽象最终需要在物理世界的限制下进行工作,因此,必须考虑各种的边缘情况和可能的失败情况。抽象包含的核心概念有:概念模型与形式模型、抽象层次;约简、嵌入、转化、分解、数据结构(如队列、栈、表和图等)、虚拟机等。

(3)自动化(Automation)是计算在物理系统自身运作过程中的表现形式(镜像)。什么能被(有效地)自动化是计算学科的根本问题。这里的“什么”通常是指人工任务,尤其是认知任务,可以用计算来执行的任务。我们能够使用计算机来下棋吗?能够解决数学问题吗?给出关键字能够在因特网上搜索到我们头脑中想要的东西吗?能够实时地将汉语和英语互译吗?能够指引我们开车穿过偏僻地形的地区吗?能够准确地标记图像吗?能够看到我们眼睛看到的东西吗?在周以真的论文中,她认为,计算是抽象的自动化。自动化意味着需要某种计算机来解释抽象。这种计算机是一个具有处理、存贮和通信能力的设备。计算机可以被认为是一台机器,也可以是一个人,还可以是人类和机器的组合。自动化包含的核心概念有:算法到物理计算系统的映射,人的认识到人工智能算法的映射;形式化(定义、定理和证明)、程序、算法、迭代、递归、搜索、推理;强人工智能、弱人工智能等。

(4)设计(Design)是利用学科中的抽象、模块化、聚合和分解等方法对一个系统、程序或者对象等进行组织。在软件开发中,设计这个词意味着两件事:体系结构和处理过程。一个系统的体系结构可以划分为组件以及组件之间的交互活动和它们的布局。处理过程意味着根据一系列步骤来构件一个体系结构。好的设计有正确性、速度、容错性、适应性等4个标准。正确性意味着软件能符合精确的规格。软件的正确性是一项挑战,因为对一个复杂系统来说精确的规格是很难达到的,而证明本身就是一个棘手的问题。速度意味着我们能够预测系统在我们所期望的时间内完成任务。容错性意味着尽管有一些小错误但软件和它的主系统仍然能够正确地运行。适应性意味着一个系统的动态行为符合其环境的使用。设计包含的核心概念有:一致性和完备性、重用、安全性、折中与结论;模块化、信息隐藏、类、结构、聚合等。

(5)通信(Communication)是指信息从一个过程或者对象传输到另一个过程或者对象。通信包含的核心概念有:信息及其表示、香农定理、信息压缩、信息加密、校验与纠错、编码与解码等。

(6)协作(Coordination)是为确保多方参与的计算过程(如多人会话)最终能够得到确切的结论而对整个过程中各步骤序列先后顺序进行的时序控制。协作包含的核心概念有:同步、并发、死锁、仲裁;事件以及处理、流和共享依赖,协同策略与机制;网络协议、人机交互、群体智能。

(7)记忆(Recollection)是指通过实现有效搜索数据的方法或者执行其他操作对数据进行编码和组织。计算思维表述体系中的记忆是人们讨论大数据背后的原理之所在,没有“记忆”这个伟大原理,大数据就是空谈。记忆包含的核心概念有:绑定;存储体系、动态绑定(names、Handles、addresses、locations)、命名(层次、树状)、检索(名字和内容检索、倒排索引);局部性与缓存、trashing抖动、数据挖掘、推荐系统等。

(8)评估(Evaluation)是对数据进行统计分析、数值分析或者实验分析。评估包含的核心概念有:可视化建模与仿真、数据分析、统计、计算实验;模型方法、模拟方法、benchmark;预测与评价、服务网络模型;负载、吞吐率、反应时间、瓶颈、容量规划等。

四、计算思维的作用

计算思维表述体系的建立,有助于计算领域以外的人了解和运用计算思维,伴随经典实例的计算概念讲授,可以让计算领域以外的人了解计算的美丽与愉悦,拓展计算思维的应用范围。虽说计算作为一门学科存在的时间不长,但人们已经认识到计算在科学界的影响力。1982年,诺贝尔物理学奖得主Ken Wilson在他的获奖演讲中就提到计算在他的工作中扮演的重要角色。2013年的诺贝尔物理学奖、生理学或医学奖都与“计算”有关,化学奖的主要成果“复杂化学系统多尺度模型的创立”,这更是一个典型的用计算思维的方式――结构和算法的过程得到科学新发现的实例。

在分子生物学领域取得的研究进展中,计算和计算思维已经成为其核心内容。如今在研究许多复杂的物理过程(如群鸟行为)时,最佳方式也是将其理解为一个计算过程,然后运用算法和复杂的计算工具对其进行分析。从计算金融学到电子贸易,计算思维已经渗透到整个经济学领域。随着越来越多的档案文件归入各种数据库中,计算思维正在改变社会科学的研究方式。甚至音乐家和其他艺术家也纷纷将计算视为提升创造力和生产力的有效途径。

总的来说,计算思维为人们提供了理解自然、社会以及其他现象的一个新视角,给出了解决问题的一种新途径,强调了创造知识而非使用信息,提高了人们的创造和创新能力。

1.理解自然、社会等现象的新视角

在许多不同的科学领域,无论是自然科学还是社会科学,底层的基本过程都是可计算的,可以从计算思维的新视角进行分析。其中,“人类基因组计划”就是一个典型案例。

用数字编码技术来解析DNA串结构的研究是计算思维的一个经典实例,其为分子生物学带来了一场革命。将有机化学的复杂结构抽象成4个字符组合而成的序列后,研究人员就可以将DNA看作一长串信息编码。DNA串结构实际就是控制有机体发育过程的指令集,而编码是这一指令集的数据结构,基因突变就类似于随机计算,细胞发育和细胞间的相互作用可视为协同通信的一种形式。沿着这一思路,研究人员已经在分子生物学领域取得了长足的进展,最具代表性成绩就是“人类基因组计划”中包括的人体内全部DNA解码、基因测序并绘制人类基因图谱、开发基因信息分析工具等一系列任务的圆满完成。

2.解决问题的新方法

折纸又称“工艺折纸”,是一种以纸张折成各种不同形状的艺术活动。折纸发源于中国,在日本得到了很大的发展,历经若干世纪,现在的日本折纸已成为一项集艺术审美、数学和计算机科学于一身的新艺术,而且还催生了名为“计算折纸”的新领域。该领域通过与折纸算法有关的理论来解答折纸过程中遇到的问题。如在折出某个物品之前事先将这一物品的外形抽象成一张图,这就用到了图论。一旦将某个物体抽象为图的形式就可以得到描述整个折叠顺序的算法,这就意味着该物品对应的折纸过程完全可以实现自动化,运用计算思维的这种抽象和自动化方法还可以做出更多更为复杂的折纸。折纸艺术家可以在完成折纸工序自动化的过程中,从折纸创新的角度向人们更为具体地介绍折纸的基本概念。在美国德保罗大学基于计算思维的教学改革中,已成功地将这种解决问题的新方法及其案例融入课程,特别是人文类课程的教学中[9]。

3.创造知识

采用计算思维还可以创造大量的新知识,比如,亚马逊公司“网上购物推荐系统”创造的新知识。亚马逊公司成立时间并不长,但通过客户浏览网站的痕迹和购物的历史记录,该公司已经积累了大量的客户信息。传统的统计方法成为亚马逊公司手中的有力杠杆,借力这些信息,公司得以及时跟踪客户的喜好和兴趣以及公司的库存产品。但是这些累积信息中可能包含一些无法基于视觉或者手动检测的数据模式,而知识的创造过程就是发现并且明确地表述出那些藏而不露但意义深远的数据模式。亚马逊公司利用各种方法对这些数据进行深入挖掘并用于各项决策中,比如给某位顾客推荐某些书。亚马逊的推荐系统正是建立在这些客户留下的数据信息的基础上,比如该客户的历史购物记录以及购买了同一件商品的其他客户的购物记录。就是这些规则构成了亚马逊的推荐系统,而它正是该公司商业模式的核心部分,也是Netflix prize算法竞赛中列举的在线商务系统的核心。

4.提高创造力和创新力

计算思维可以极大地提高人们的创造力。比如在音乐制作领域,依靠计算机的软硬件可以产生大量的合成声音,创作音乐。从最简单到最复杂的任何声音都可以通过计算机的软件来合成。基于声音物理特性的理解以及对这种特性在计算机中存储的认识,人们可以采用计算思维了解声音的合成过程与音乐的制作过程。通过音乐合成软件的研制,人们可以很自然地将编程和作曲思维变成一种平行关系,并采用这些软件产生大量的高质量音乐作品。实际上,鉴于这个目的,人们已经开发出不少功能强大的音乐制作编程语言,如Nyquist、JFugue、DarkWave Studio等。

参考文献:

[1] Jeannette M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3).

[2] National Research Council. Report of a workshop on the scope and nature of computational thinking[M]. National Academies Press, 2010.

[3] 教育部高等学校大学计算机课程教学指导委员会. 计算思维教学改革宣言[J]. 中国大学教学,2013(7).

[4] 九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学,2010(9).

[5] 陈国良. 计算思维:大学计算教育的振兴,科学工程研究的创新[J]. 中国计算机学会通信,2012,8(1).

[6] 陈国良,董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学,2011(1).

[7] 李廉. 以计算思维培养为导向深化大学计算机课程改革[J]. 中国大学教学,2013(4).

[8] Pat Philips. Computational Thinking: A problem-solving tool for every classroom[EB/OL]. http:///Resources/sub/ ResourceFiles/ComputationalThinking.pdf.

篇4

关键词:计算机专业教育;教学改革;大类招生;地方普通大学

中图分类号:G642 文献标识码:A

1引言

近年来计算机专业在规模上蓬勃发展,给更多的学子创造了接受高等教育的机会,为社会输送了大批专业人才;但同时也存在着专业特色不明显以及教育质量需要提高等问题。

教育部高等学校计算机科学与技术教学指导委员会(以下简称教指委)编制的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(以下简称《报告》)已于2006年9月通过高等教育出版社出版发行,这是指导我国地方普通高校计算机专业办学的重要报告。

在目前的计算机专业发展形势和专业规范的指导下,地方普通大学计算机专业如何调整培养模式,突出特色,适应地方和社会经济发展,是一项具有重大意义的教学改革命题。

2目前形势与问题

2.1办学规模

从20世纪50年代末期哈尔滨工业大学等院校率先开办计算装置与仪器专业开始,早期计算机本科专业主要包括计算机软件、计算机系统结构、计算机及应用等专业。20世纪90年代提出“宽口径”人才培养思路,计算机本科专业合并为一个计算机科学与技术专业。20世纪末,由于计算机网络、多媒体技术、通信技术和计算机软件等迅速发展,国家又批准设置了一批新专业,在本科层次与计算机学科相关的专业有网络工程、软件工程、电子商务、信息安全等,还成立了35所示范性软件学院。

2004年初,本科学校679中的505所开设有计算机科学与技术专业,是全国专业点数之首,其中368个是1994年后开办的。仅仅经过短短的14年时间,2008年已有1180余所高校开设有计算机专业,在校生人数已超过80万,专业的设点数和在校生人数仍然位居全国各专业之首。目前,从清华、北大的一流大学到规模很小的一些地方院校,几乎都开设了计算机专业,计算机专业是全国规模最大的专业。

随着计算机本科专业的招生高校数量和在校总人数的增加,地方普通高校的计算机专业招生规模却呈现出波浪式发展态势:开办专业伊始,规模逐年扩大,学生人数剧增;至今,由于专业特色不明显、学生竞争力优势不强、就业状况达不到期望值等原因,各地又开始纷纷压缩招生规模。

2.2教学状况

地方普通高校计算机专业在培养人才定位上有明显偏差,教学内容设计存在明显的盲目性等问题。

对学生的专业定位和发展缺乏统筹规划,照搬其他学校的教学计划。学生在专业学习期间,对计算机专业的自豪感和兴趣丧失,选修外院系第二学位专业人数比例较大。

不遵守现有教学计划,随意更改教学内容和教学进程的情况较普遍,质量无监督控制。调整教学内容的现象严重,教学过程和质量处于失控状态,无法达到应用的教学内容和难度要求,教师对专业基础课把关不严,致使学生学习理解计算机课程的能力普遍不强,学生专业基础知识薄弱。从专业基础课程开始,后续课程的教学质量越来越差。

不重视计算机专业文化教育和专业基础课程。很多从事计算机专业教学的教师是从外专业转行过来,对计算机历史和发展过程缺乏足够的认识,对学生专业素质的培养和指导重视不够。很多学习计算机专业的学生,到大学毕业时,对计算机认识和了解还是模糊的,在就业方向选择和走向现代信息化社会时无所适从。

有的计算机专业学生急功近利,只重视眼前利益。普遍存在着忽视英语、数学等专业基础课程的学习,多数学 生只重视就业需要的专业课,甚至只愿意学习软件开发工具性的课程,其结果则表现为发展后劲不足现象。

专业课程特色不明显,选修课的方向引导性作用弱化。专业课设置趋同现象严重,学校没有自己的个性和专业特色。选修课的设置流于形式,几乎都成为必选课,学生失去选择权,方向引导作用不明显,反映了现有教师的教学和研究水平不高。

2.3就业考研情况

2000年前,每年的计算机专业毕业生仅有5~9万人,人才培养远远不能满足社会经济发展的需要,就业市场长期处于“卖方市场”。2000年以后,尤其是在高校扩大招生规模以后,各高校竞相开设计算机专业,招生规模扩大,毕业生人数剧增,就业市场步入“买方市场”。

进入21世纪以来,中国IT产业的年增长率已远低于20世纪90年代32%的年均增长速度,众多IT企业不断调整自身结构以适应行业发展和产业变革,对从业人员的素质要求不断提高。计算机与通信工程、自动化、电子技术等相近专业间挤占和竞争就业岗位现象更为突出,IT人才市场竞争日趋激烈,社会需求愈来愈向名牌大学集中,就业格局逐渐明朗。近几年重点大学计算机专业初次就业率在90%以上,地方大学就业率则为60%~90%。地方普通大学的计算机专业毕业生毕业后大多集中于学校当地与周边地区的非IT性质的私营企业,从事着计算机相关工作,或者完全与计算机学科无关的工作。高校计算机专业初次就业率连年下滑,起薪大幅下降,成为就业市场上一大焦点。

许多计算机专业毕业生为了逃避就业压力,使得报考研究生的人数大增,计算机学科报考硕士人数位于各学科之首。考虑到计算机专业考研学生人数巨大,生源和教学质量参差不一,从2009年研究生入学考试起,国家教育部把数据结构、操作系统、计算机组成原理和计算机网络合并成计算机学科专业基础综合科目,实行联合命题和统一考试,这将对地方普通大学计算机专业教学产生重大影响。

3教指委的专业方向建议

针对计算机专业的一些毕业生专业特色不明显、竞争优势不强的现状,《报告》明确提出以“培养规格分类”为核心思想的计算机专业发展的建议,把计算机科学与技术专业人才培养规格归纳为三种类型、四个专业方向:科学型(计算机科学专业方向)、工程型(计算机工程专业方向和软件工程专业方向)和应用型(信息技术专业方向)。对每个专业方向给出了专业规范,详细描述了人才培养的规格、教育内容和知识体系,建议开设的核心课程。在目前的计算机科学与技术专业名称下,鼓励不同的学校根据社会的需求和自身的实际情况,为学生提供不同类型且达到本科水平的教学计划和培养方案。一个学校在其中一种类型上通过评估合格,就被认为计算机科学与技术专业办得合格。

3.1计算机科学与计算机工程

计算机科学是一门研究计算机和可计算系统的学科,包括它们的理论、设计、开发和应用技术。培养目标是培养德、智、体、美全面发展,掌握自然科学基础知识,系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备实践技能,并具备良好外语运用能力的计算机专业高级专门人才。着重于理论知识的教学和分析问题、解决问题能力的培养。知识与课程体系包含14个知识领域和15门核心课程,见计算机工程是研究计算机的理论、设计、实现、开发和应用的专业。培养目标是培养德、智、体、美全面发展,掌握自然科学基础知识,系统地掌握计算机科学理论、计算机软硬件系统及应用知识,基本具备本领域分析问题解决问题的能力,具备一定的工程实践能力,并具备良好外语运用能力的计算机工程专业方向高级专门人才。着重于理论与工程知识的教学,使学生掌握较高层次的分析问题、解决问题的能力。知识与课程体系包含18个知识领域和16门核心课程,也见表1。

比较计算机科学与计算机工程两个专业方向设置的核心课程,有11门课程是相同名称,只是课程的执行学时和包含的知识单元略有不同。

计算机科学和计算机工程的实践教学体系都包括课程实验、综合设计、教学实习、社会实践、毕业设计等多种形式。

3.2软件工程

软件工程是一门用系统的、规范的、可度量的方法开发、运行和维护软件的学科。培养目标是培养德、智、体、美全面发展,掌握自然科学和人文社科基础知识、计算机科学基础理论、软件工程专业及应用知识,具有软件开发能力,具有软件开发实践和项目组织的初步经验,具有创新、创业意识,具有竞争和团队精神,具有良好的外语运用能力,能适应技术进步和社会需求变化的高素质软件工程专门人才。软件工程教学既重视理论知识和较高层次分析问题、解决问题的方法,也重视软件设计和工程实践。包含10个知识领域:SE-CMP计算基础,SE-FND数学和工程基础,SE-PRF职业实践,SE-MAA软件建模与分析,SE-DES软件设计,SE-VAV软件验证与确认,SE-EVO软件进化,SE-PRO软件过程,SE-QUA软件质量,SE-MGT软件管理。共设置了27门课程,如图1所示,并分成A、B、C、D、E共五个模块。

在模块基础上形成四个可选参考教学计划,分别为A+C+D、A+C+E、B+C+D和B+C+E,每种计划平均课程数目一样,包含19门课程。制定具体教学计划时可只选其中一组实施。实践教学的形式包括:课程实验、综合设计、项目实践、企业实践、毕业设计等。

3.3信息技术

信息技术是一门针对社会与各种企事业单位的信息化需求,提供与实施技术解决方案的学科,涉及对计算机软硬件、计算机网络等相关技术与产品的选择、评价、拓展、集成、应用与管理。培养具有如下特点的高级专门人才:德、智、体、美全面发展,掌握与信息技术相关的自然科学和数学知识,并具有创造性地将这些知识应用于信息系统构建和应用的潜力;掌握计算机学科的基本理论和信息系统的基本工作原理,熟练掌握计算机软硬件系统的应用知识,对信息技术的效用和发展趋势有深入理解和评估能力;有良好的组织管理和交流沟通能力,能根据不同组织和机构的需求,选择相应的信息技术,并能有效地实施;具备良好的国际交流能力,能适应技术进步和社会需求的变化。该方向有12个知识领域:IT-ITF信息技术基础,IT-HCI人机交互,IT-IAS信息保障和安全,IT-IM信息管理,IT-IPT集成程序设计及技术,IT-NET计算机网络,IT-PF程序设计基础,IT-PT平台技术,IT-SA系统管理和维护,IT-SIA系统集成和体系结构,IT-SP信息技术与社会环境,IT-WS系统和技术。15门必修课程:信息技术导论,信息技术应用数学入门,程序设计与问题求解,数据结构与算法,计算机系统平台,应用集成原理与工具,Web系统与技术,计算机网络与互连网,数据库与信息管理技术,人机交互,面向对象方法,信息保障和安全,社会信息学,信息系统工程与实践,系统管理与维护。实践教学包括实验课程、专业实习和毕业设计。本专业方向的绝大多数必修课程都含有实验环节,一部分知识与技能更适合通过实践教学(而不是课堂教学)传授给学生。

在计算机科学与技术专业名称下四个专业方向的培养各有侧重,计算机科学专业方向注重计算机的科学理论掌握,计算机工程偏向计算机的硬件实践,软件工程偏重计算机的软件开发,信息技术则适宜计算机的系统集成。

4普通高校教改措施

本科计算机教育中,目前单一的计算机科学与技术专业设置下的单一的培养规格,难以满足众多领域的社会需求。计算机学科综合交叉的发展态势日趋明显,高校计算机专业人才培养应体现宽口径、分层次的模式,培养研究型、复合型、应用型等符合市场需求的人才。不同类型、不同层次的高校,其计算机专业的人才培养目标和规格要有一定的差异。

按大类招生是高校采取的新的人才选拔培养模式。在这种招生方式下,高校按院系或学科大类招生,而不是按专业招生。学生在本科阶段前两年统一学习基础课,大三时根据自己的兴趣和双向选择的原则再进行专业分流。按大类招生能减少考生填报专业志愿的盲目性,学生通过一段时间的大学学习和生活,了解大学、学科、专业,发现自己的兴趣和特长,相对准确地预测和了解毕业时社会发展的趋势,选择符合自己实际情况和社会需求的专业方向。

地方普通科研教学型和教学型的大学计算机专业培养应瞄准IT人才市场变化,调整模式,突出特色,立足培养符合地方社会经济发展的工程型或应用型计算机技术人才。可结合教指委计算机专业规范和大类招生,建立以平台加模块的“2+2”为主要教学形式的教学培养模式,开展涉及培养方案、教学计划、课程大纲、教学管理、师资配备等一系列内容的计算机专业教学改革。

4.1培养目标与方案

在充分评估社会或地区对计算机人才目标需求的基础上,有针对性地确定本校学生未来就业方向及其所需要的知识、能力和素质,据此制定学生培养方案与专业建设方案。

由于历史原因,普通大学计算机院系一般设置有计算机科学与技术、软件工程、网络工程等计算机专业。依据教指委的计算机专业发展建议和专业规范,可有两种方式改革已有的计算机专业培养方案。

方案一,把几个专业进行合并形成一个大的计算机科学与技术专业,争取在新的计算机科学与技术专业里设置计算机科学、计算机工程、软件工程和信息技术等三到四个不同的专业方向。招生时在计算机科学与技术专业下统一招生,前两年是统一培养,但到后两年由学生根据自己兴趣选择不同的专业方向。

方案二,保留原来的专业名称,但在计算机科学与技术专业里设置计算机科学和计算机工程两个专业方向,软件工程和网络工程等专业修改为与专业规范大致相同。招生时,可按照各自专业招生,前两年仍是统一培养,到大二学年末则允许学生重新自由选择专业方向,在后两年按专业方向培养。

两种改革方式的核心就是要实现大类招生下的分类分层次培养,在高年级分流学生,使得每个人都有一个非常明确的求知思路和学习目标,充分发展学生的个性空间。

4.2教学计划与课程设置

教学计划与课程设置应实现两个目标:合理组织知识体形成一门门课程;合理安排课程数量与课程学时,使学生能够在规定的学制内完成所需知识的学习和能力、素质训练。

为了配合培养方式的改变,必须制定拓宽专业面和增强适应性的教学计划。把计算机专业学生所学课程分成公共基础课程、专业基础课程、专业方向课程,构建由基础教育平台课程、学科基础平台课程和专业方向模块课程组成的课程体系。

基础教育平台课程是由普通教育(通识教育)和综合教育类的课程组成,包括思想品德、政治法律、体育、外语、数学、物理、电工电子、经济管理、某些跨专业选修课等理工类学生必修的课程,这类基础教育平台课程由学校教务部门统一安排管理,课程由相应的院系派教师教学完成。

学科基础平台课程主要指计算机学科的专业基础课程,是由四个专业规范所建议设置的核心课程的基本和共有部分经过适当抽取和组合形成。根据本文第3部分分析,计算机科学和计算机工程的相同核心课程有11门,软件工程不仅有计算机科学优先课程模块A,在其他模块也有与计算机科学相同或相近的课程,而且计算机科学专业方向是其他专业方向的理论基础。因此,学科基础平台课程可由计算机科学专业方向的部分核心课程构成,具体的可在计算机导论、程序设计基础、离散结构、算法与数据结构、计算机组成基础、计算机体系结构、操作系统、数据库系统原理、软件工程、计算机网络、数字逻辑、社会与职业道德等课程中选择,并形成对应的实践性教学内容。

专业方向模块课程由代表各自专业方向的方向特色课程和高级课程组成,也包括专业的综合设计、教学实习、社会实践和毕业设计等。

采取“平台+模块”的教学模式,前两学年按大类实行基础平台教学,后两学年按方向实行模块教学。基础教育平台课程安排在前两学年,专业方向模块课程安排在后两学年。学科基础平台课程大部分安排在前两年,少部分作为共同开设课程可在大三上学期完成。可以看出,这种教学模式的重点是学科基础平台课程和专业方向模块课程的选择与教学。在基础平台课程教学中,可实行以外语和计算机编程为试点分类施教;在专业方向学习上,根据学生的实际,因材施教,循序渐进,给优秀本科生选配导师,培养各类不同的人才。

4.3课程大纲与建设

在院系和专业教研室的两级层面上,应组织教师认真研读专业规范,学习体会专业规范中对知识领域、知识体系和课程体系的教学要求。教学计划中所涉及的每门课程都要精心制定相应的课程大纲,并能根据专业发展进行适时调整。课程大纲应对每门课程的教学目标、教学内容、教学要求、教材选用、教学方法和考核方式作出明确规定,同时应对学习该课程所需的各种先决条件(比如先修课程)以及该课程和相关课程的知识衔接问题做出准确描述。

核心课程的大纲编写教师应消化吸收规范中的课程描述,结合自己学校计算机专业学生的实际情况,制定合乎规范的详细教学大纲。非核心专业方向课程的编写老师宜结合学校的行业背景,调查本地区需求和毕业生流向,制定有针对性和特色的课程教学大纲。

要强调教学大纲的严肃性。专业基础和专业方向课程的教学宜由相应的课程大纲编写教师完成,非编写大纲的其他授课教师也应严格按照课程大纲组织教学。

应有计划地开展课程建设活动。学科基础平台课程尽量选择国外典型教材和国内优秀教材,专业方向模块课程应努力编写适合本校特点的教材。能结合课程特点尽量采用先进的教学手段,如多媒体教学、网络教学、互动式教学等,适当组织力量开发和利用多种类型的教学资源,能根据计算机发展情况适时调整授课内容,并强化学生的实践动手能力培养。

4.4教学管理

计算机专业的大类招生与分类分层次培养对传统的计算机专业教学管理提出了更高要求。在传统的分管领导、教学秘书和专业教研室的教学行政管理基础上,对分离出来的学科基础平台课程需要增加独立的管理权限,从而形成相应的分类、分层次教学管理模式。建立执行严格的教学工作规范和完善的教学文档管理制度。结合实际制订切实可行的教学质量保障措施和考核办法,确保科学规范、严格高效的教学质量保证和监控体系畅通,这样将构成合理的教学管理架构――即为分管教学领导、教学秘书、教研室、课程组,再加上教学指导委员会和教学督导委员会。

分管教学的院系领导负责本科教学的宏观管理。

教学秘书的人数根据在校计算机专业本科学生总人数而定,为1~2人,其主要任务是完成教学管理中的事务性工作。

教研室分为两类,一是学科基础教研室,二是专业方向教研室。学科基础教研室由一批固定的经验丰富的教师组成,其主要精力偏重于教学和教学研究,学科基础教研室主任受院系委托全权负责学科基础平台课程的教学管理工作。专业方向教研室则由在这个方向有一点研究基础的教师组成,可结合科研方向从事相应的专业方向课程教学,专业方向教研室主任负责专业方向建设及专业方向模块课程的管理工作。专业方向教研室之间是一种合作与竞争的关系,既要共同支持学科基础教研室的工作,又要努力提高本专业方向的教学质量,彰显特色,吸引学生选择本专业方向。

课程组是讲授同一门课程的若干教师组成,一般隶属于学科基础教研室,共同完成全院系的专业基础课程的建设和教学工作。课程组中应确定主讲、辅讲和助教人员,形成比较完善的教学队伍。

教学指导委员会由分管教学领导、教学秘书、教研室主任组成,负责培养方案修订、课程规划与教学指导。教学督导委员会由教学经验丰富的老教师组成,负责教学质量检查、评估和评价。

4.5教师配备

教师配备得当将有利于发挥教师的潜能。适当分流教师,让他们到各自的岗位各司其职非常必要。在地方普通高校,青年教师大多数都有研究生学历,具有一定的科研要求和能力,多不安心于教学,在教学经验和专业素质方面有欠缺,因此可发挥青年教师的激情和积极性,多在结合科研和专业方向教学上发展。中老教师职称较高,比较缺乏科研的原动力,对计算机专业发展的敏感性略显不足,掌握新知识的积极性也不高,往往只满足于完成教学任务,但应该看到,他们具有很好的工作经验和良好的工作态度,教学过程中认真负责,适合学科基础平台课程的教学,也比较适合主持教研项目。

加强青年教师的业务培训与提高。青年教师已经成为一线教学的主力军,但教学水平亟待提高,应安排有针对性、有相当规模和时间跨度的青年教师业务培训计划。

建立制度化的助教队伍,安排专门的资金和相应的岗位。部分助教岗位应该安排计算机专业的研究生承担,新进教师应在助教岗位上锻炼半年到一年的时间。确定课程的主讲教师和助教,各自遵守明确的岗位责任和职业规范。主讲教师集中精力上课,助教讲习题课、带实验、改作业,共同配合完成课程的教学内容、教学方法和课程建设,从而能上好、上精一门课。

在学生专业方向的把握上,可以借鉴研究生培养的模式,由专业方向教研室给一部分学有余力的学生配备导师,从全方位指导学生的专业发展。

5结论

计算机专业是全国招生和培养规模最大的本科专业,从清华、北大的一流大学到规模很小的一些地方院校,几乎都开设了计算机专业,为国家培养了大批专业人才。随着IT人才市场竞争日趋激烈,地方普通大学计算机专业的毕业生存在着专业特色不明显、竞争优势不强的问题。结合教指委的研究报告和专业规范,地方普通大学计算机专业应调整教学模式,加强教学质量管理,突出培养特色。在大类招生基础上,建立以平台加模块的“2+2”为主要教学形式的分类分层次教学培养模式,是地方普通大学计算机专业教学改革的一条可行之路。

参考文献:

[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006.

[2] 蔡启先. CC2004计算学科教程体系分析与思考[J]. 高等工程教育研究,2006(5):77-81.

[3] 刘乃琦. 计算机专业(学科)面临的挑战与创新[J]. 计算机教育,2005(12):5-8.

[4] 李明江. CCC2002、CC2004与地方院校计算机专业教育的困惑[J]. 黔南民族师范学院学报,2006(6):43-47.

[5] 蒋宗礼,赵一夫. 试论我国计算机专业本科教育现状及发展[J]. 计算机教育,2005(8):22-26.

[6] 徐子珊. 以计算学科多样化应对IT 应用需求多样性[J]. 计算机教育,2005(12):45-47.

Research of Computer Specialty Teaching Reform Based on Subject Enrolment

in Primarily Undergraduate Ranking

CHEN Yong-qiang, LI Guo-yong, PENG Li-hua

(School of Computer Science, Wuhan University of Science and Engineering, Wuhan 430073,China)

篇5

[关键词]大学计算机基础 教学方法 研究 探讨

[中图分类号]G642 [文献标识码]A [文章编号]1006-5962(2012)03(a)-0007-01

计算机现已成为时展的一种工具,是否具备一定的计算机操作能力已成为一种技能。计算机技术日新月异,计算机教学也随之生机勃勃,同时给计算机一线教学的老师带来了很多挑战。大学计算机基础是高校的公共基础课,也是计算机专业的专业基础课,如何提高学生的计算机应用能力,如何提高计算机基础课程的教学质量,值得我们进行研究和探索。

1 大学计算机基础教学中面临的问题

1.1 学生计算机能力存在差异

目前,计算机基础是高校大学生的一门必修课,不管是计算机专业的学生还是非计算机专业的学生都要在第一学期或第二学期开设计算机基础课程。在实际教学中发现,刚入学的新生在计算机基础能力方面存在较大差异,其中一部分学生来自职高,已经具备基本的操作能力,能熟练使用windows操作系统和office办公软件;还有一部分学生来自普通高中,很少接触电脑,只会键盘、鼠标的使用,对系统一点也不熟悉,甚至有的连开机都不会。

讲授计算机基础相对其它计算机课程来说不算难事,但如何在教学中让那些基本具备计算机能力的学生不感觉在重复已学过的知识,又让没学过计算机的学生学起来不觉得困难,成了一件让教师们两难的事情。

1.2 教师授课中存在的问题

1.2.1 教学目标不同

院系不同,计算机基础的教学目标也有所不同。对于计算机专业和非计算机专业、本科和专科层次,高校人才培养方案中都设置了不同的教学目标和要求。一般来说计算机非专业学生需要掌握windows操作系统、office办公软件和计算机网络;而计算机专业本科层次的学生除需具备这些要求外,还必须了解数据库技术、多媒体技术,以及网页设计方面的知识。

1.2.2 学生需求不同

随着科技的发展,计算机技术已逐渐渗透到各个学科领域。这就要求学生不仅要学好本专业,还要具备计算机基础知识和较强的计算机应用能力,以便将来能够把计算机技术运用到自己的专业领域。

2 大学计算机基础教学方法的研究和探讨

2.1 注重“因材施教”,提高教学效果

由于新生计算机能力存在较大差异,因而教师在教学过程中应该注重“因材施教”。教师可以采取问卷调查,在学生第一堂课前对他们的计算机能力做一个初步评估,然后把学生分成几个小组,让不同小组的学生使用不同的授课方案。比如,对于计算机能力较弱的,教师应该着重对windows操作系统、office办公软件基础知识进行讲解;而对于计算机能力强的,基础知识可以少讲,主要放在应用上。

2.2 加强引导,培养学习兴趣

对于大多数新生,计算机在他们头脑中是个很模糊的概念,他们甚至感觉计算机很神秘。当真正接触计算机之后,他们心中又有点落差,感觉计算机学起来太枯燥,不像高中语文和数学那样接近生活,甚至怀疑计算机知识学了之后没有用。因此,我们应该加强引导,培养他们的学习兴趣。比如,在讲解计算机二进制时可以介绍八卦与二进制的关系,能够激发他们浓厚的学习兴趣;讲授计算机硬件结构时,可以带学生到开放的实验室观摩计算机的各个部件,让学生和计算机拉近距离,从而提高学习兴趣。

2.3 采用案例法

通过案例教学,将计算机基础的知识点恰当地融入案例的分析和制作过程中,实践、理论一体化,使学生在学习过程中不但能掌握独立的知识点,而且具备了综合的分析问题和解决问题的能力。目前大多数高校都使用多媒体教室或计算机机房进行授课,教师可以把一些模板或优秀作品借助多媒体或局域网展现给学生,让学生学会思考,从而提高学习能力。比如在讲授word段落设置时,可以把设置好的段落样本事先发给学生,再让学生自己动手操作;讲授powerpoint时可以拿上届ppt大赛的一等奖作品给学生欣赏,激发学生学习兴趣,再讲授制作方法。

2.4 明确教学任务,鼓励自学

大部分新生自学能力较差,教师在实践教学中若不指定具体的实验内容,他们往往不知道上机要做什么。因此,教师上实验课时应该明确教学任务,而且内容要尽可能照顾到不同层次的学生,既能让计算机能力不强的学生能完成一些学习任务,树立学生自信心,提高学习积极性,也要让能力较强的学生感觉有挑战性,有意识的培养他们的自主学习、探索新知识的能力。教师在教学过程中仅仅起引导作用,应该把大部分时间留给学生自己去学习、思考和体会,还可以鼓励他们多看些课外书,提高专业技能水平,培养他们自学能力。

2.5 讲练结合,精讲多练

计算机基础课程是一门实践性非常强的课程,提高学生的操作技能因而显得尤为重要。实验教学时教师讲授一节课,学生再练习一节课,如果始终遵循这样的方法教学效果肯定不好。教师可以选择几个比较典型的案例,分成两到三个时间段来完成。比如,先把一个或两个案例在一个时间段里给学生演示一遍,再让学生练习-在第二个时间段里,教师可以对前面学生操作过程中出现的各类问题进行集体纠正和提醒,然后讲授其余的案例,学生再练习,这样通过讲练结合、精讲多练,提高了学生的学习积极性和操作技能。

3 结束语

时代在发展,计算机基础的教学也要与时俱进,还有很多方面需要我们去研究和探索,需要不断的调整以适应日益发展的计算机应用技术。

参考文献

篇6

国际课程中最受欢迎和认可的就是国际文凭组织(IBO)提供的课程,就是我们常说的国际文凭(IB)课程。IB课程中独立的信息技术课开设在高二和高三年级,它把信息技术类的知识划分到两门课程中,即着重和大学计算机科学或计算机软件专业相衔接的“计算机科学”课以及以培养学生信息素养为目的的“全球社会中的信息科技”课。其中,“计算机科学”课走的是专业化的道路,覆盖了大学计算机专业所需的基础知识,严格按照学科体系开展教学。而“全球社会中的信息科技”课强调学生信息素养的培养,强调反思技术应用给人带来的积极和消极的影响,因此,这门课被划分到了人文科学组,更多地按照文科化的方式进行教育。在我国高中阶段的信息技术课程中,一直存在着教学内容专业化还是普适化、着重面向精英还是面向大众、培养信息素养还是专业知识的困惑与争论。IB课程的这种设置方式应该对我们有所启发。

这两门课程也都特色鲜明,“全球社会中的信息科技”课不论从课程目标、教学方法到考试题目都一以贯之地在强调信息技术的“三位一体”:信息技术的知识、应用和伦理要融合在一起来思考。比如下面这样一道考试样例:糖尿病人需要测量并记录自己的血糖水平,这些数据需要病人和医生共同操作,现在用信息技术工具改进这一环节,病人使用网络将自己的血糖数据上传,医生通过在线数据库了解病人的血糖数据,专业公司提供相应的解决方案并进行数据管理。接下来,学生将从三个方面作出回答。第一个方面是从信息处理角度解释该系统如何一步一步进行工作,第二个方面是从信息评价的角度给出该解决方案的评价范例,第三个方面是从信息伦理角度描述该系统中主要利益相关人所涉及的道德问题。

从这道考试题目不难看出“全球社会中的信息科技”课教学活动的特点:它一般提供给学生一个真实的情境,在情境中让学生运用信息技术工具去解决应用中的问题,并随时思索、考察信息技术可能带来的伦理道德问题。

篇7

论文摘要:随着计算机技术的飞速发展,使用计算机的能力已成为当代大学生知识结构的重要组成部分。本文主要分析了《大学计算机基础》的教学现状、教学定位和教学条件,探讨适合现阶段教学特点的教学设计模式和实施过程。

1课程基本信息

《大学计算机基础》总学时为64学时,其中课堂教学32学时,上机实验32学时。授课对象为全校非计算机专业的本科生和专科生,课程类别为公共基础课,先修课程是高中信息技术课程。

2《大学计算机基础》课程教学现状

首先,学生在认识上存在误区。学生普遍存在“重专业、轻基础”的现象。学生的学习兴趣不高,对学习内容不感兴趣,不愿意投入太多精力去学习,认为会用计算机上网、娱乐就可以了。其次,我校《大学计算机基础》只对本科和专科进行不同教学内容的安排,没有针对不同的专业的设置不同的教学内容。教材缺乏解决专业问题的案例,学生很少学到与本专业有关的计算机知识。最后,由于各地区经济发展的不平衡,客观上学生的基础差异也很大。很多学生对计算机已经有了一定程度的掌握,他们高中就学习了《计算机基础》这门课,并且内容有很多与大学的《大学计算机基础》课程重复。而一些落后地区的学生还基本上没有接触过计算机。这样就造成了入学时,学生的计算机水平参差不齐的现象。

3 教学定位分析

计算机基础教学是大学教育的基本内容,计算机不仅是一种工具,而且计算机学科还有一种独特的分析问题、解决问题的思维方式,应把培养学生的“计算思维”能力作为计算机基础教学的核心任务。

教育部高等学校计算机基础课程教学指导委员会提出了大学计算机基础教学四个方面的能力培养目标[1]:(1)对计算机的认知能力。(2)应用计算机解决问题的能力。(3)基于网络的学习能力。(4)依托信息技术的共处能力。因此,计算机基础教学在培养学生成为适应信息社会和经济发展需求的新型人才中承担着重要的职责。

本课程共8章,课程的重点是:计算机基础知识、操作系统、office 2003。课程的难点是:计算机数制与转换,计算机操作系统的原理和功能,网络协议。

教师用通俗的实例和多媒体进行讲解,同时理论联系实际,观察和分析实例。增添网上学习资料、加强上机辅导和答疑, 让学生通过上机实践来理解。鼓励和引导同学通过互联网学习,从而激发创造力、想象力,从实践中理解并掌握本课程的重点与难点。

实践环节极为重要,加强实践教学环节的目的是培养学生的上机动手能力、解决实际问题的能力、以及知识综合运用能力等。“大学计算机基础”课程的实验学时与讲课学时之比为1:1。

4 教学条件分析

在授课环境方面,我们采用多媒体大屏幕授课,授课用计算机都能上网,同时配有白板,以便书写方便;教师上课采用自行制作的电子课件,并配有授课的各种软件,因此软件和硬件都能满足上课要求。

在实验教学方面,我校的计算中心机房设备配置完好,2011年新配置400台计算机已经投入使用,上机学习用的各种软件齐全,完全可以满足实验教学的要求。未来设想是实现多媒体信息的采集、处理和制作。

5 教学实施设计

(1)直观授课方法。目前课程的教学方法和手段是“教师+多媒体教室”的教学方式。由于《大学计算机基础》课程信息量大,知识更新快,我们使用“计算机+大屏幕投影”的多媒体授课方式,教师边讲解边演示,操作过程直观的展现在学生面前。这种方式将抽象内容具体形象化,教学效果直观,能多角度地向学生传递教学信息。但该方法也带来一些问题,如上课信息量大,同学不易记笔记。为了便于学生学习,我们利用课程网站,并将课件和教学文件等放在网上,供学生下载,弥补了多媒体授课方式的不足。(2)在课堂教学中,引入灵活的教学方法,互动式、启发式和引导式教学,充分激发学生求知的潜能和学习的主体作用。例如教师选取某些适合的章节(如计算机的输出设备)在课前组织学生分组预习。同学们自行分工,利用网络收集资料,然后对收集到的资料进行加工整理,用PowerPoint制作出课件,每组选出代表,在课堂上进行讲解,最后由教师进行点评。学生通过教师所给予的评价和指导意见,可以调节自己的学习,启发自己的思维;而通过与学生的交流沟通,教师能够及时了解学生的学习现状和需求,发现和掌握学生的情感和技能水平,为下一步教学和管理提供依据。让学生带着问题去学习,有利于学生主动探索知识,经过这种锻炼,学生的综合素质会获得进一步的提高。(3)在实验教学中,我们设计一些综合应用性实验,引导学生根据自己的实际水平选做,尤其是有一定基础的学生,学习的重点应放在这一层次的综合实验练习上,满足他们的求知欲。 这种设计旨在培养学生综合应用计算机知识与技术的能力,让学生独立、系统地掌握软件的使用。学期末,布置一个研究与创新型实验,组织学生进行作品竞赛,重在培养学生的自主能力与创新意识。(4)完善教学网站建设。本课程在我校Blackboard网络教学平台开设了教学网站,提供《大学计算机基础》课程的教学大纲、教案、PPT课件、上机实验指导以及一些网络资源的链接等。学生可以登陆网站下载学习资料,使用信箱完成作业的下载上传,教师可以进行作业批改、网上答疑等。网络教学平台的使用,有利于开拓学生的视野,实现优秀教学资源的共享。网络教学促进了学生与教师之间的交流,并能充分发挥学生的主动性,提高学生学习的参与度,对学生的社会参与能力、协作能力、知识学习与实践都具有重要的训练作用。

6教学评价设计

总成绩=平时成绩*30%+期末成绩*70%

平时成绩满分100分,教师将课堂提问、日常小考、阶段测试以及和实验作业相结合,综合评估学生的学习效果,给出学生的平日成绩。其中,出勤30分,实验作业40分,其它(包括课堂提问、日常小考、阶段测试等)30分。

期末成绩满分100分,考试在万维全自动网络考试系统上进行,试卷由考试系统随机抽取,考试结束后系统自动评分。考试题型有选择题、填空题和操作题。客观的基础知识和主观的实践操作均在计算机上进行。这种考试方式真正实现了教考分离,真实地考出了学生的计算机知识和技能水平,能较全面地反映出教学效果,并可为以后改进教学提供参考。

结语

总之,通过授课、上机实验与教学网站的紧密结合,学习《大学计算机基础》课程后,学生将具备熟练的信息获取和处理能力,及在网络环境下熟练掌握和应用计算机的基本技能。

当今,计算机基础教学的核心任务是计算思维能力的培养,我们广大一线教师要认真研究计算机基础教学的特点, 改进计算机基础课程体系和核心课程教学内容,研制丰富的教学案例,不断学习,勇于实践,提高计算机基础课的教学水平,为国家培养更多创新型人才。

参考文献

[1] 教育部高等学校计算机基础课程教学指导委员会. 高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M]. 北京:高等教育出版社,2009.

篇8

关键词:系统观;能力培养;教学改革;计算机系统

从1946年第一台电子计算机ENIAC(Electronic Numerical Integrator And Computer)诞生到现在,计算机的发展经过了大型机时代(Mainframe Era: 1950s-1960s)、小型机时代(Minicomputer Era: 1970s)、个人计算机时代(PC Era: Mid 1980s-Mid 2000s)和后PC时代(PostPC Era: Late 2000s)。计算机教学模型机也经历了从大型机、小型机到PC的过程。通常,课堂教学内容比业界技术要滞后几年。20世纪80年代初,基本以IBM 360/370或DJS 200系列等大型系列机为模型机;20世纪80年代中后期开始,则以VAX 11/780等小型机为模型机,并同时开设以IBM PC为模型机的“微机原理与接口技术”课程,到21世纪开始,基本上都转入了以Intel x86或PowerPC或MIPS等微处理器为模型的教学模式。

随着多核/众核处理器、嵌入式和云计算技术的发展,以及大规模数据中心(WSC)的建立和个人移动设备(PMD)的大量普及使用,计算机发展进入了后PC时代。呈现出“人与信息世界及物理世界融合”的趋势和网络化、服务化、普适化和智能化的鲜明特征[1]。

那么,后PC时代的计算机专业教学应该如何改革?计算机专业教育的核心应该是什么?计算机课程的教学内容应该如何调整以适应新的发展需求?这些都是我们从事计算机专业教学的大学老师们应该思考的问题。本文将从计算机专业人才培养的目标、目前我国大学计算机专业教育存在的问题、南京大学在学生系统能力培养方面的新举措等几个方面阐述笔者的思考及初步探索。

一、计算机专业人才“系统观”培养的重要性

图1描述了计算机系统抽象层的转换。从图1可以看出,计算机系统由不同的抽象层构成,“计算”的过程就是不同抽象层转换的过程,上层是下层的抽象,而下层则是上层的具体实现。计算机学科主要研究的是计算机系统各个不同抽象层的实现及其相互转换的机制,计算机学科培养的应该主要是在计算机系统或在系统某些层次上从事相关工作的人才。

计算机系统由各种硬件和各类软件采用层次化方式构建,不同用户工作在不同的系统结构层,如图2所示。

从图2可看出,计算机用户有最终用户、系统管理员、应用程序员和系统程序员。显然,计算机专业培养的主要应该是设计和研制计算机的计算机工程技术人员以及系统程序员、应用程序员和系统管理员。不管培养哪个层面的计算机技术人才,计算机专业教育都要重视学生“系统观”的培养。

所谓“系统观”,笔者认为,就是指对计算机系统的深刻理解。具有“系统观”的人才,能够站在系统的高度考虑和解决应用问题,具有系统层面的认知和设计能力,包括对软、硬件功能进行合理划分、对系统不同层次进行抽象和封装、对系统整体性能进行分析和调优、对系统各层面的错误进行调试和修正、对用户程序进行准确的性能评估和优化,以及根据不同的应用要求合理构建系统框架等能力。

图2 计算机各类用户所在层次

特别是在后PC时代,并行成为重要主题,培养具有系统观的、能够进行软/硬件协同设计的软/硬件贯通人才是关键。而且,后PC时代对于大量从事应用开发的应用程序员的要求也变得更高。首先,后PC时代的应用问题更复杂、应用领域更广泛;其次,要想编写出适合各类不同平台的高效程序,应用开发人员必须对计算机系统具有全面的认识,必须了解不同系统平台的底层结构,并掌握并行程序设计技术和工具。

只有具备“系统观”,计算机工程技术人员才能够设计研制出性价比高的适合特定应用需求或通用的计算机,系统程序员才能编写出适合于底层硬件架构的易于上层应用程序员或系统管理员使用的系统软件,应用程序员才能最合理地利用底层硬件实现机制和系统软件提供的相应功能编写出性能最优的应用软件,系统管理员才能配置出最佳的系统环境并提供最好的系统维护和系统管理等方面的服务。

二、我国大学计算机人才“系统观”培养的现状

为了更好地了解国外大学计算机专业人才培养的情况,笔者对MIT、UC Berkeley、Stanford和CMU等4所美国一流大学在相关课程方面教学情况进行了跟踪调查[2]。我们发现,中美大学在计算机专业人才培养及课程教学方面存在许多不同。

首先,从课程设置上来说,上述美国四校在学完编程语言及其程序设计课程后都开设了一门关于计算机系统的基础课程,而且在课程内容上特别注重在计算机系统各个抽象层上的纵向关联,沿着一条主线,把每个抽象层都串起来,从而使学生形成完整的计算机系统概念。而国内大学计算机专业课程设置,基本上是按计算机系统层次结构进行横向切分,自下而上分解成数字逻辑电路、计算机组成原理、汇编程序设计、操作系统、编译原理、程序设计等课程,而且每门课程都仅局限在本抽象层,相互之间几乎没有关联,学生对整个计算机系统的认识过程就像“盲人摸象”一样,很难形成一个对完整计算机系统的全面认识。虽然国内高校也有计算机系统概论、计算机系统入门或导论之类的课程,但内容广而不深,什么都讲一点,什么都讲不透,基本上是计算机课程概论,而不是计算机系统概论。

其次,美国四校都采用了分流培养模式,都设置了偏硬件或计算机系统的专业或方向。例如,有电子工程(EE)、电子与计算机工程(ECE)、计算机工程(CE)和计算机系统等专业或方向。而目前国内大多数高校都只有一个专业,即计算机科学与技术,专门分出ECE、CE和计算机系统方向进行人才培养的学校很少。国内绝大多数高校只能培养应用程序员,而且是对计算机系统底层知之甚少的应用程序员。

最后,美国四校在计算机系统入门课后面都开设了关于数字系统设计的课程,课程内容涵盖了数字逻辑电路和组成原理两门课的基本内容,并要求学生用EDA方式设计相对完整的流水线CPU,而且都是由EE(ECE)部门开设,但并不要求所有学生都学,通常是偏硬件类的EE、ECE、CE和计算机系统方向的学生必学,其他方向学生选修。反观国内绝大多数高校,基本上都是先上数字逻辑电路(有些合并了一些模电内容)课程,然后上组成原理课程(有些组成原理课程上的是微机原理与接口的内容),而且这两门课程基本上都是所有学生的必修课程,并没有考虑不同方向学生对于计算机底层硬件知识和硬件设计能力的不同需求。目前国内大多数学校的组成原理课程教学基本上还是沿用传统的教学理念,教学内容还停留在计算机硬件的基本构成和基本设计原理层面,既不像国外的数字系统设计那种硬件设计课程,能够让学生真正了解如何用硬件描述语言通过FPGA来设计现代计算机硬件系统;也不是一门关于计算机系统的入门课程,能够让学生全面地理解整个计算机系统的实现机理。因此,目前国内绝大多数高校的组成原理课程的教学,既没能达到培养学生利用现代化工具进行实际硬件设计的能力,也没有让学生学会运用机器底层硬件和系统结构知识来增强高效软件开发和程序调试的能力,更没有通过该课程让学生建立起计算机软、硬件系统的整体概念。

总之,国内大学计算机专业教育在“系统观”培养方面还存在一些问题,这点从近五年来全国计算机专业研究生入学考试的抽样结果可以得到印证。2009年开始,计算机专业的研究生入学考试采用全国统考方式,计算机专业基础综合统考科目包括数据结构、组成原理、操作系统和网络四门课程,总分为150分。五年来的抽样结果显示,全卷平均分每年仅在60~78之间,试题统计难度(单选题的试题难度指答对人数/总人数,综合应用题的试题难度指样本平均分/该题总分,最终难度为加权平均值)仅在0.41~0.52之间,其中组成原理最低,特别是其综合应用题的难度仅在0.181~0.440之间,五年共10个综合应用题,只有两题的难度达到了0.4以上,说明所有考生平均仅掌握所考内容的大约30%左右,有的方面只有20%不到,也即考生们对绝大部分综合应用能力考核内容都没有掌握。从抽样省份来看,前三年抽样的大多是高等教育水平比较高的地区,可想而知,全国的抽样数据应该更差。近五年的综合应用题抽样数据表明,试题统计难度与解题涉及的知识点个数相关性较大,通常涉及的知识点越多得分越差,说明学生的综合应用能力较弱,平时缺乏对相关知识和概念关联性的思考。

根据近年来对全国研究生计算机专业基础综合统考科目考试成绩的抽样调查结果,可以看出国内大学计算机本科专业存在“轻应用、缺关联、少综合、无系统观”的问题[3]。

三、国内大学相关教学改革概况

目前,越来越多的高校发现计算机专业基础课程教学中的一些问题,开始注重学生的系统能力培养,强化学生的“系统观”。

目前为止,已经有一些高校以MIPS为模型机,对数字系统设计的相关内容进行了深入的讲解和实践,也有一些高校同时把CPU设计与操作系统和编译的内容融合起来进行实验课程的开设。浙江大学多年来每年在暑假都会开设有关CPU及其计算机系统设计的选修课;东南大学也专门开设了面向所有学生的计算机系统综合实验课程;北京航空航天大学从2006年开始筹划,花了5年时间实现了突破,在相关的数电和组原、OS及编译原理课程中逐步让学生完成一个完整计算机系统的设计;清华大学目前也已经完成了计算机综合实验平台的所有软、硬件部分的开发,准备在所有本科生中开设计算机系统综合实验课程。此外,中科大和国防科大等高校也一直在实施本科生的计算机系统设计能力培养计划。可喜的是,一些非重点高校的任课老师也在组成原理课程的教学及其相关实验中,引入了以MIPS为模型机的 CPU设计的教学和实验内容。

另一方面,像复旦大学软件学院和上海交大软件学院等则开设了与CMU的CS 213类似的课程[4],北京大学也在去年全盘引入了CMU的CS 213课程教学内容。但是,总的来说,目前在国内全面开展像CMU的CS 213那样的课程教学困难还不小,对任课教师和学生来说都是一个不小的挑战。

四、南京大学相关教学改革思路和做法

根据对计算机相关领域目前发展情况的分析以及对国外一流大学计算机相关专业教学情况的调查,我系在新的2013版教学计划中,实施分流培养机制,提供了计算机科学、计算机系统、计算机应用、软件工程和信息安全五个方向。

在“系统观”培养方面,其基本培养目标为:建立计算机系统完整概念,深刻理解计算机系统的层次化结构。包括:理解计算机系统中各个抽象层之间的相互转换关系,了解计算机指令集体系结构的设计原则和设计原理,具备使用HDL进行计算机硬件设计的基本能力,深刻理解OS和硬件之间的分工和衔接关系,理解掌握从硬件角度出发进行编译优化的基本技术,深刻理解从硬件角度出发编制高效程序的基本原理,提高利用硬件知识进行程序调试的能力。特别对于计算机系统方向的学生,在系统能力方面则要求更高,在CPU设计、体系结构、操作系统、编译技术和并行处理技术等方面都有相应的实践要求。

在2013版教学计划中,重新规划了相关的一系列课程,并采用以下思路对相关课程进行重新建设:(1)根据系统能力培养总体目标,规划好相关课程各自涵盖的知识结构和框架体系,合理定位各门课程的教学目标,把每个知识点落实到具体课程中。(2)根据相关知识点总体框架,拟定各个相关课程之间知识点衔接方案,并且在教学过程中明确各知识点在不同课程之间的关系。(3)根据规划分头编写或修订教材及教案,并在统一的框架下建设相关课程。(4)在保留各课程独立实验平台的同时,构建一个公共实验平台,使相关课程的实验内容按照一定的关系有机联系起来。

2013版教学计划中有一组课程是所有方向学生都必修的学科平台准入和学科平台准出课程。学科平台准入课程是指转系学生只有选读并考试合格后才有资格转入我系学习的最低门槛课程;学科平台准出课程是指学生只有修读合格后才能从我系毕业的最低门槛课程。

与系统能力培养密切相关的准入课程是“程序设计基础”和“数字逻辑电路”;而与系统能力培养密切相关的准出课程是“计算机系统基础”、“操作系统”和“计算机网络”。

每个方向有几门方向必修课程和方向指选课程。方向必修课程是该方向学生必选的方向基础课程,方向指选课程是为该方向学生指定的选课范围内的方向相关课程。例如,对于计算机系统方向,其方向必修课程是“计算机组成与设计”、“计算机体系结构”和“编译原理”;而在方向指选课程中,与系统能力密切相关有“计算机系统综合实验”、“并行处理技术”、“LINUX分析”、“微机原理与接口”和“嵌入式系统”等课程,也即计算机系统方向学生必须在这些课程中选修一定数量的课程。

图3给出了整个教学计划中与“系统观”培养密切相关的课程设置,图中箭头描述了课程的先后依赖关系。

从图3可看出,所有相关课程中,“计算机系统基础”是最核心的课程,其先行课程是“程序设计基础”和“数字逻辑电路”,与其相关的后续课程有“计算机网络”、“操作系统”、“计算机组成与设计”、“计算机体系结构”、“编译原理”、“并行处理技术”、“微机原理与接口”、“嵌入式系统”、“LINUX分析”和“计算机系统综合实验”。

课程设置基本思路是“从两头到中间、从框架到细节”,即先开设顶层的程序设计课程和最底层的数字逻辑电路课程;然后再在“计算机系统基础”课程中,从两头到中间,把顶层程序设计的内容和底层电路的内容,按照程序员视角串起来,以形成对计算机系统的全面的和系统的框架性整体认识;在此基础上,再分别在其他后续课程中,介绍计算机系统底层的硬件以及操作系统和编译器等层次的实现细节。

围绕系统能力培养目标,根据课程之间的相互关系,我们确立了各课程定位如下:

(1)程序设计基础。该课程是学科平台准入课程,所有学生必修。它主要介绍高级语言编程技术的基础内容,让学生初步理解高级语言及高级语言程序设计涉及的概念,初步理解图1所示的计算机系统中最上面三个抽象层(问题、算法和程序)及其相互转换关系。学完该课程后,学生能够了解到计算机解决应用问题首先必须将其转换为算法,然后用某种编程语言将算法编写成程序才能在计算机上运行。因而,学完本课程后,应该希望进一步了解为什么计算机能够执行程序、计算机如何执行程序等问题。

(2)数字逻辑电路。该课程是学科平台准入课程,所有学生必修。它主要围绕组合逻辑和时序逻辑两大核心内容,在逻辑门到功能部件这两个层次展开,以后续课程中用到的功能部件(如半加器、全加器、加法器、比较器、编码器、译码器、触发器、寄存器、移位器、内存储器等)作为数字逻辑电路设计实例进行介绍,初步掌握图1所示的计算机系统中最下面的三层(功能部件、门电路和器件)相关内容。学完该课程后,学生能够了解到目前主流计算机解决所有问题的最根本的基础是布尔代数和数字逻辑电路,并了解到利用数字逻辑电路可以构建执行程序所需的所有功能部件。

(3)计算机系统基础。该课程是学科平台准出课程,所有学生必修。它是一门新开设课程,主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及的各个层次,使学生从整体上了解计算机系统全貌和相关知识体系,初步理解图1所示的计算机系统中的每一个抽象层及其相互转换关系。学完该课程后,学生能从程序员角度认识计算机系统;能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联;对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解。从而增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“计算机体系结构”等课程打下坚实基础。由此可见,该课程可以作为“程序设计基础”课程的深入内容,能起到为其解惑答疑的作用,学完该课程,学生完全应该能够回答为何计算机能够执行程序以及计算机如何执行程序等问题。

(4)操作系统。该课程是学科平台准出课程,所有学生必修。它将系统地讲解操作系统的基本概念和方法、设计原理和实现技术。主要内容包括:处理器管理,同步、通信和死锁,存储管理,设备管理,文件管理,操作系统安全和保护,分布式操作系统和网络操作系统。既阐述经典内容,又以当代主流操作系统作为实例介绍最新发展;既注重操作系统的理论知识,又重视操作系统的实践和应用。操作系统是一门实践性、应用性很强的课程,学习这门课程必须动手实践。实验将配合原理教学同步进行,课程实验以设计性实验为主,进行模拟类操作系统实验,要求学生能够基于虚拟机环境,实现一个可运行的操作系统。实验通过对操作系统原理的剖析,辅助学生深入理解抽象原理,强化学生对操作系统总体结构的理解和认知,提高学生的动手实践能力,并帮助学生对操作系统建立起理性、全面、完整和准确的概念。

(5)计算机组成与设计。该课程是计算机系统方向学生的必修课程。它主要从寄存器传送级以上层次介绍单处理器计算机设计的基本原理和设计细节,重点在CPU设计和存储器设计方面,使学生在理解高级语言程序与机器级代码之间对应关系的基础上,进一步理解机器级代码如何在具体硬件系统中执行的过程以及如何构造计算机硬件系统。因而,该课程主要涉及图1中的第5层(指令集体系结构)和第6层(微体系结构),并通过实现细节介绍这两个层次与上层的操作系统/虚拟机以及与下层的功能部件/RTL之间的关系。通过该课程的学习,要求学生能够利用硬件描述语言和FPGA开发板来设计基本的功能部件以及单周期CPU和流水线CPU。因而,在课程内容组织方面应该细化通用寄存器组、ALU和桶形移位器等功能部件设计的内容,细化单周期CPU和流水线CPU设计的内容,并讲透流水线CPU设计中的各种冒险处理机制和基本的指令级并行处理的内容。

(6)计算机体系结构。该课程是计算机系统方向学生的必修课程。学生在完成单处理器计算机系统相关技术学习的基础上,通过该课程进行多核处理器、众核处理器、多处理机系统、集群系统等不同粒度和规模的并行计算机系统的工作原理、实现方式及其应用方面的深入学习。因为学生已经建立了单处理器计算机系统的完整概念,因而该课程重点应该更多地转移到超标量流水线、多核/众核系统、多处理器系统、多计算机系统等并行处理系统方面。此外,该课程还涵盖了数据中心、云计算系统和虚拟机/虚拟化方面的部分内容。

(7)编译原理。该课程是计算机系统方向学生的必修课程。学生在掌握了程序设计、数据结构、算法设计与分析、组成原理和操作系统的基础上,进一步学习编译器的设计原理和实现技术。它主要包括有限状态自动机理论、形式语言分类以及词法分析、语法分析、语义分析、中间代码生成、中间代码优化和目标代码生成的作用和方法,还介绍属性文法的基本概念和半形式化的中间代码生成方法。该课程的各个知识模块综合起来对应的培养目标,是使每位学生掌握和编译器设计相关的形式语言理论基础、了解编译器生成工具的使用方式以及实践一个简单编译器的设计与实现过程。该课程的学习能为后续的形式语言和自动机等课程以及在软件工程和自然语言处理等方面的研究工作打下良好的基础。

(8)并行处理技术。该课程是计算机系统方向学生的指选课程。其主要内容包括并行环境、并行算法、并行程序设计、并行性能评价等部分的内容。课程总目标是通过并行计算和并行处理的基本概念、基本原理、基本方法与基本知识的讲授与实践,为计算机系统方向学生打下并行算法与并行处理方面的研究与应用基础。通过简单介绍并行计算机的体系结构、并行计算模型与并行算法的性能评价方法,掌握并行算法设计、编程实现与性能评价时涉及的基本知识与基本概念;通过介绍任务分解、任务调度、负载平衡、设计模式、设计技巧等知识,掌握并行算法设计的基本原理、基本方法与基本技术;通过对MPI与OpenMP等编程语言或编程模型的简单介绍,使学生掌握并行算法程序实现的基本知识;通过几类典型的数值与非数值并行算法介绍,加深学生对并行算法设计基本原理与常用方法的理解,并为实际应用问题的并行算法设计与并行处理打下坚实的基础。

(9)微机原理与接口。该课程是计算机系统方向学生的指选课程。主要定位为在PC上的实例化教学课程,以目前流行的基于IA-32体系结构的PC为实例,主要介绍IA-32提供的存储管理机制、异常/中断机制以及总线和接口技术。实验重点内容在PC的I/O接口技术,包括在FPGA实验板上利用CPU软核进行总线、中断和DMA实验,利用硬件描述语言(HDL)进行UART等I/O接口设计的实验等。

(10)嵌入式系统。该课程是计算机系统方向学生的指选课程。主要定位为在嵌入式系统方面的实例化教学课程。主要介绍嵌入式系统概论、嵌入式处理器、存储器及其总线互连,嵌入式系统集成接口,嵌入式操作系统,嵌入式硬件与软件协同设计方法与工具,嵌入式应用系统开发及其工具,嵌入式系统功耗分析与优化设计等。实验重点内容是基于ARM处理器和μCOS-Ⅱ操作系统的简单嵌入式软件开发技术。

(11)LINUX分析。该课程是计算机系统方向学生的指选课程。它是操作系统的后续课程,以剖析Linux内核实现技术为切入点,结合Linux内核代码,从用户层及内核层两个层面,围绕“原理、技术、应用”三个角度剖析Linux的内部结构与内核实现机制,帮助学生从系统实现角度理解现代操作系统的系统架构、实现机理及关键技术。课程以“技术专题”形式组织教学内容,每个专题由知识讲授与课程实验组成。核心知识模块包括进程管理、进程调度、进程通信、存储管理、系统调用与中断处理、文件管理。每个知识模块按“原理设计基本思想―实现相关技术问题―Linux内核实现途径―用户系统编程体验”为主线组织具体内容。

(12)计算机系统综合实验。该课程是计算机系统方向学生的指选课程。主要目的在于将本科计算机教学中的基础课程,如程序设计、数字逻辑电路、操作系统、计算机组成与设计等课程融会贯通,使学生从系统的角度对整个计算机有一个全面的认识和了解,并能够设计和实现一个简单的计算机系统。本综合实验区别于一般的基础实验课程从单个层面出发的设计局限性,它要求学生把计算机软件和硬件相结合,并强调各个基础课程之间的衔接与联系。实验要求学生能够对于从高级程序语言开发到程序的系统管理、编译与代码转换以及硬件运行的选择与实现等有一个全面的掌握。实验还强调学生的动手能力和对系统的设计能力,培养能够独立开发一套简单系统并能对整个系统进行改进和优化的能力。

当然,除了上述课程以外,其他课程对学生系统能力培养也有一定的作用。除了学科平台准入和准出课程以外,其他方向的学生还可以选修上述其他课程,有些课程还可能是某个方向的必修课和方向指选课,而计算机系统方向的学生除了上述给出的必修课和指选课以外,也还可以选择一些偏理论或偏应用的课程进行修读。

后PC时代WSC、PMD和PC等共存,使得原先基于PC而建立起来的专业教学内容已经远远不能反映现代社会对计算机专业人才的培养要求,原先计算机专业人才培养强调“程序”设计也变为更强调“系统”设计。这需要我们重新规划教学体系,调整教学理念和教学内容,加强学生系统能力培养,使学生能够深刻理解计算机系统整体概念,更好地掌握软/硬件协同设计和程序开发技术,从而更多地培养出满足业界需求的各类计算机专业人才。

参考文献:

[1] 王志英,周兴社,袁春风等. 计算机专业学生系统能力培养和系统课程体系设置研究[J]. 计算机教育,2013(9):1-6.

[2] 王帅,袁春风. 美国一流大学计算机组成与系统结构实验课程研究[J]. 计算机教育,2011(17):121-124.

篇9

(复旦大学计算机科学技术学院,上海200433)

摘要:针对传统计算机系统类课程群中多门课程知识点重复、有衔接漏洞的问题,按照系统能力培养的观点,结合复旦大学计算机学院系统类课程的教学经验,提出将ACM CS2013规范中相关的知识要点分解到数字逻辑部件、计算机组成原理、操作系统、计算机体系结构的课程中去,旨在指导本科计算机系统类课程的教学。

关键词 :计算机系统能力培养;课程大纲;ACM CS2013

文章编号:1672-5913(2015)17-0029-06

中图分类号:G642

第一作者简介:张亮,男,教授,研究方向为服务计算、以数据为中心的业务流程管理、数字图书馆,Lzhang@fudan.edu.cn。

1 背景

应用和技术的进步驱动着计算机科学的迅猛发展。当前,计算机呈现出“人与信息世界及物理世界融合”的趋势和网络化、服务化、普适化、智能化的鲜明特征,计算机相关学科的研究重心正由算法和程序向系统层面转移。

ACM/IEEE最新公布的CS2013( Computerscience Curricula 2013)调整和新增的4个知识域( Body of Knowledge,BoK)——系统基础( SF)、并行和分布计算(PD)、基于平台的开发( PBD)、信息保障和安全(IAS) 均涉及系统级内容;国内教育部计算机专业教学指导分委员会已经开始研究计算机专业学生能力培养和实践教学体系,重点探讨如何使学生增强系统能力,具备全局掌控一定规模系统的能力;南京大学、北京大学、北京航空航天大学、浙江大学、国防科技大学等高校进行了多年探索实践,积极效果正在逐步体现。经验表明,以系统观为指导,强化系统类课程群的建设是一种行之有效的措施。

系统类课程群是与计算机系统密切相关的若干课程的统称。以复旦大学计算机科学技术学院的教学实践为例,系统类课程群包括数字逻辑部件、计算机组成原理、操作系统、计算机体系结构、编译5门专业课程及相关配套实验。这些课程从多层次(部件、系统)、多观点(硬件、软件)介绍同一个主体对象——计算机系统的核心知识,对学生理解计算机系统的内部运作机制起到至关重要的作用。

现阶段,独立建设的教学体制造成了多门课程知识点部分重叠、前导课/后继课相互依赖,这一现象已为从事本领域教学管理和教学实践的大部分教师所关注,并成为历次教学研讨会、导教班力图解决的热点问题。

2 核心要点及课程分解

我们以ACM CS2013为规范性蓝本,抽取与系统类课程群关系最为密切的3个知识域( BoK) -Systems Fundamentals(SF,系统基础)、Architecture and Organization(AR,体系结构及组成)、Operating Systems(OS,操作系统)——为研究对象,从系统观的角度探索知识要点配置、共同知识要点在多门课程中的侧重以及多门课程在相关知识体系上的衔接问题。

所谓“系统观”,就是指对计算机系统的深刻理解。具有“系统观”的人才,能够站在系统的高度考虑和解决应用问题,具有系统层面的认知和设计能力,包括对软、硬件功能进行合理划分、对系统不同层次进行抽象和封装、对系统整体性能进行分析和调优、对系统各层面的错误进行调试和修正、对用户程序进行准确的性能评估和优化以及根据不同的应用要求合理构建系统框架等能力。

首先,我们分别列举这3个知识域的各知识要点(其顺序与ACM CS2013相同);然后,为各知识要点分配对应的课程名称,重点关注多门课程在同一个知识要点上的侧重点,探讨横跨多个知识域知识要点间的衔接问题。

为后续讨论方便,我们为每个知识要点赋予了编号,其格式如下:知识域名/知识要点编号一序号。例如,操作系统知识域的并发知识要点下“中断的作用”编号为:OS/3-4。同样,4门系统类课程数字逻辑部件、计算机组成原理、操作系统、计算机体系结构也分别代以记号DL、CP、OS和AR,特殊的侧重则标注在课程名称之后)。

2.1 SF/System Fundamentals(系统基础)

系统基础域分为计算范型、跨层通信、状态及状态机、并行、评估、资源分配及调度、逼近、虚拟化及隔离、通过冗余增强可靠性、量化评估10个部分。

2.1.1 SF/1计算范型

①计算机的基本构造模块和部件(门,触发器,寄存器( DL,CP),互联;数据通路+控制+存储器(CP强调软件,DL仅至单周期,AR多周期,强调硬件)。

②作为计算模型的硬件:基本逻辑构造模块;逻辑表达式,最小化,积之和形式( DL,CP)。

③应用层序列处理:单线程(CP单个进程执行,不涉及切换,OS)。

④简单应用层并行处理:请求层(网络服务/客户一服务器/分布式),每个服务器单线程,多服务器多线程(CP,OS应用)。

⑤流水线的基本概念,重叠处理阶段( AR硬件实现,CP软件实现,OS原理)。

⑥缩放基本概念:变快vs处理更大的问题( CP,OS)。

2.1.2 SF/2跨层通信

①抽象编程,接口,库的使用(CP两级抽象,OS)。

②应用、OS服务、RPC的区别(OS)。

③应用与虚拟机的交互(OS)。

④可靠性(OS,AR,CP冗余,纠错,DL纠错)。

2.1.3 SF/3状态及状态机

①数字和模拟/离散和连续系统( DL)。

②简单逻辑门,逻辑表达式,布尔逻辑简化( DL,CP)。

③时钟,状态,顺序( DL,CP)。

④组合逻辑,时序逻辑,寄存器,存储器( DL,CP)。

⑤状态机的计算机和网络协议样例( CP,DL定义状态机)。

2.1.4 SF/4并行

①串行处理与并行处理(CP介绍概念)。

②并行程序设计与并发程序设计( OS)。

③请求并行与任务并行(OS)。

④客户/服务器模型,Web服务,线程的创建和运行,管道(OS)。

⑤多核结构和同步的硬件支持(AR原语,OS机制)。

2.1.5 SF/5评估

①性能图( AR)。

②负载和代表性基准,以及采集和分析性能图的方法( AR)。

③使用CPI(每条指令的执行周期)公式来理解指令集设计,处理器流水线和内存系统组织的权衡( CP,AR)。

④阿姆达尔定律( AR,CP)。

2.1.6 SF/6资源分配及调度

①资源的种类(例如,处理器分享,内存,磁盘,网络带宽)(OS)。

②调度的种类(例如,先来先服务,优先级调度)(OS)。

③公平调度的有点,抢占式调度(OS)。

2.1.7 SF/7逼近

①光速和计算机(每纳秒一英尺和1G赫兹时钟)(AR)。

②计算机系统中的延迟:内存vs磁盘延迟vs网络存储之间的延迟(CP,OS,AR)。

③处理器和系统的缓存以及时间空间局部性在性能上的影响( CP)。

④数据库、操作系统、分布式系统和计算机体系结构的缓存和缓存一致性( CP,OS)。

⑤处理器存储层次化和平均内存访问时间公式的介绍(CP,OS提问,AR提问)。

2.1.8 SF/8虚拟化及隔离

①保护和可预测性能的基本原理( CP)。

②间接法的级别,以虚拟内存来管理物理存储资源( CP,OS)。

③虚拟内存实现方法和虚拟机实现方法( OS)。

2.1.9 SF/9通过冗余增强可靠性

①软件错误和故障的区别( OS)。

②基于检查和重试的冗余( OS)。

③基于冗余编码的冗余(错误修正码ECC,CRC,FEC)(DL)。

④复制/镜像/多重备份( OS)。

⑤增强容错性和可用性的其他方法( OS)。

2.1.10 SF/10量化评估

①导出量化评价的分析工具( AR)。

②数量级分析(大O记法)(OS)。

③系统快速和慢速路径分析(???)。

④事件及它们对性能的影响(比如指令阻塞,( AR),缓存未命中,页错误)(CP,OS)。

⑤理解分层系统,工作量,平台,表现隐含式,和它们对估值表示的挑战(???)。

⑥微基准测试问题(???)。

2.2 AR/Architecture and Organization(体系结构及组成)

体系结构组成域分为数字逻辑和数字系统、数据的机器级表示、汇编级机器组成、存储系统组织和体系结构、接口和通信、功能性组织、多道处理及候选架构、性能提升等8个部分。

2.2.1 AR/1数字逻辑和数字系统

①计算机体系结构的概述及历史( AR)。

②组合逻辑和时序逻辑/作为基本组合+时序逻辑构造模块的现场可编程门阵列( DL,CP)。

③多重表述/层的解释(硬件只是另一个层)( DL,CP)。

④处理硬件和结构描述的计算机辅助设计工具( DL)。

⑤寄存器传输符号表示/硬件描述语言( Verilog/vHDL)(DL, CP).

⑥物理约束(门延时,扇入,扇出,能量/功耗)( DL)。

2,2.2 AR/2数据的机器级表示

①比特,字节和字( CP,DL)。

②数值数据表示和基数( CP,DL)。

③固定和浮点系统( CP)。

④有符号数和二进制补码表示( CP,DL)。

⑤非数值数据表示(特征码,图形数据)( CP,DL)。

⑥记录和数组表示( CP)。

2.2.3 AR/3汇编级机器组成

①冯·诺依曼机器的基本组成( AR,CP)。

②控制单元;取指,译码,执行( CP,AR)。

③指令集和类型(数据操作,控制器,读/写)(CP,AR强调RISC)。

④汇编/机器语言编程( CP)。

⑤指令格式(CP,AR强调RISC)。

⑥寻址方式( CP)。

⑦子程序调用和返回机构( CP)。

⑧读/写和中断(CP,硬件机制,OS中断处理及应用)。

⑨堆vs静态vs栈vs代码段(CP)。

⑩共享存储多处理器/多核组织(CP介绍几种形态,OS应用,AR重点)。

11介绍SIMD和MIMD以及Flynn分类法( AR)。

2.2.4 AR/4存储系统组织和体系结构

①存储系统和其技术( CP)。

②存储层次:时间和空间局部性的重要性( CP)。

③主存储器的组织和操作( CP)。

④延迟、时钟周期、带宽和交叉存取( CP)。

⑤缓存(地址映射,块大小,替换和存储规则)( CP)。

⑥多处理器缓存一致性/使用存储系统来进行核间同步/原子内存操作( CP)。

⑦虚拟内存(页表,TLB)(CP)。

⑧错误处理和可靠性(OS)。

⑨错误编码,数据压缩,数据完整性(???)。

2.2.5 AR/5接口和通信

①I/O基础:握手,缓冲,轮训,中断驱动的I/O( OS)。

②中断结构:向量化和优先化,中断知识( CP,OS)。

③外部存储,物理组织和驱动( CP)。

④总线:总线协议,仲裁,直接内存访问( DMA)(CP)。

⑤网络入门:通信网络作为远程访问的另一层次( CP)。

⑥多媒体支持( CP)。

⑦RAID( OS)。

2.2.6 AR/6功能性组织

①简单数据通路的实现,包括指令流水线,冒险检测及消除(DL单周期,CP)。

②控制单元:硬接线和微程序实现(DL单周期,CP多周期)。

③流水线介绍(CP偏软件实现,AR偏硬件实现)。

④介绍指令级并行( ILP)(AR)。

2.2.7 AR/7多道处理及候选架构

①功耗定理( AR)。

②SIMD和MIMD指令集和结构的例子( AR)。

③互联网络(超立方体,洗牌交换,mesh,crossbar)(AR)。

④共享存储系统和存储一致性( AR)。

⑤多处理器cache 一致性(AR)。

2.2.8 AR/8性能提升

①超标量结构( AR)。

②分支预测,前瞻执行,乱序执行( AR)。

③预取( AR)。

④向量处理器和GPUs( AR)。

⑤硬件支持多线程( AR)。

⑥可扩展性( AR)。

⑦其他结构,诸如VLIW/EPIC,以及加速器和其他类型的专门用途( AR)。

⑧处理器( AR)。

2.3 0S/Operating Systems(操作系统)

体系结构组成域分为操作系统概述、操作系统原理、并发、调度及分派、内存管理、安全与保护、虚拟机、设备管理、文件系统、实时和嵌入式系统、容错、系统性能评估等12个部分。

2.3.1 0S/1操作系统概述

①操作系统的作用和目的(OS)。

②典型操作系统的功能( OS)。

③支持客户/服务器模型和手持设备的机制( OS)。

④设计问题:效率、鲁棒性、灵活性、可移植性、安全性、兼容性。

⑤安全性、联网、多媒体、窗口系统与操作系统的关系(OS)。

2.3.2 0S/2操作系统原理

①操作系统体系结构(单体、分层、模块、微内核)( OS)。

②抽象,进程,资源(OS)。

③应用程序接口API的概念(OS,CP)。

④软硬件技术的发展和应用需求(OS)。

⑤设备组织( OS,CP)。

⑥中断:方法及实现(OS)。

⑦用户态/内核态及操作系统保护,转入内核态方式( OS)。

2.3.3 0S/3并发

①进程的概念,状态及状态变迁图(OS)。

②结构(就绪队列,进程控制块等)(OS)。

③调度及上下文切换(OS)。

④中断的作用(OS)。

⑤对内核数据结构的原子性访问( OS)。

⑥实现同步原语(OS)。

⑦多处理器相关问题(自旋锁,重入)( OS,AR)。

2.3.4 0S/4调度及分派

①抢占与非抢占式调度( OS)。

②调度器和调度策略( OS)。

③进程及线程(OS)。

④时限及实施调度问题( OS)。

2.3.5 0S/5内存管理

①物理内存和内存管理硬件回顾( OS)。

②工作集和抖动(OS)。

③缓存( CP)。

2.3.6 0S/6安全与保护

①系统安全概论(OS)。

②机制与策略分离( OS)。

③安全方法和措施( OS)。

④保护,访问控制,认证( OS)。

⑤备份与回复( OS)。

2.3.7 0S/7虚拟机

①虚拟机的类型(包括硬件、软件、操作系统、服务器、服务、网络)(OS)。

②分页及虚拟内存( CP)。

③虚拟文件系统(OS)。

④虚拟机管理程序(OS)。

⑤可移植虚拟化,仿真和隔离(OS,强调 Container,Docker)。

⑥虚拟化的代价( OS)。

2.3.8 0S/8设备管理

①串行和并行设备的特性(OS)。

②抽象设备的差异性(OS)。

③缓存策略(OS)。

④DMA( OS)。

⑤失效恢复(OS)。

2.3.9 0S/9文件系统

①文件:数据,元数据,操作,组成,缓冲,顺序文件与非顺序文件(OS)。

②目录:内容及结构(OS)。

③文件系统:分区、加载/卸载、虚拟文件系统(OS)。

④标准实现技术(OS)。

⑤内存映像文件( OS)。

⑥特殊文件系统( OS)。

⑦文件的命名,搜索,访问,备份( OS)。

⑧日志文件结构(OS)。

2.3.10 0S/10实时和嵌入式系统

①实时进程及调度( OS)。

②实时环境中的内存/磁盘管理需求(OS)。

③失效,风险和恢复( OS)。

④实时系统的特有问题(OS)。

2.3.11 0S/11容错

①基本概念:系统的可靠性和可用性( OS)。

②时间和空间冗余方法(OS)。

③冗余的实现方法(OS)。

④操作系统通过检测、恢复、重启实现冗余的案例分析,包括用于操作系统自身服务的技术(OS)。

2.3.12 0S/12系统性能评估

①系统评估的必要性( OS)。

②评估的要素( OS)。

③系统性能策略,如高速缓存,分页,调度,内存管理,安全等( OS)。

④评估模型:确定型模型,分析性模型,仿真或特殊方法(OS)。

⑤如何收集评估数据(分析和跟踪机制)(OS)。

2.4 知识要点分配中的注意事项

在上述知识要点分配方案中,有几点值得注意。

(1)分配方案受到了课程先后次序的影响。例如,存储管理内容(AR/4,SF/7-b,SF/7-e,SF/8-b)均交由CP讲授,而OS和AR仅分别侧重于软件算法和性能评估,这是因为CP被安排在两门课之前。类似的情况还有状态机SF/3一e交由DL讲授。

(2)系统能力的培养应关注学生的能力指标( Learning Outcomes)。当相关知识点(如SF/l-a)被多门课程(如CP,DL,AR)分别涉及时,排在第一位的课程( CP)担负着主要职责,保证能力指标的达成,而后面各课程则根据其自我要求涉猎或补充必要的内容。

(3)各门课程在其课程大纲中,务必合理安排跨越多个知识域中的相关知识要点(如AR/3_h、AR/5-a,b、OS/2-f、OS/3-d)和对应的能力指标,负责它们在不同程度和不同场合的衔接。

(4) 一些要点(如SF/lO-c、SF/lO-e,f、AR/4-i)我们尚未有深刻的理解或成熟的经验,因此留作讨论,记以符号???。

3 结语

复旦大学计算机系统能力课程群建设正在逐步推进:①有必要调整各门课程的知识点分布,采取系统科学的方法,使学生奠定系统理论基础,不仅能建立真实系统的模型,预测系统行为,而且通过强化系统实践,培养学生有效地构造正确系统的能力;②培养学生如何从系统层面思考,重点关注系统的设计过程、上下文环境及环境与系统的交互;③围绕知识点,在各门课上透彻分析原理,明确基本原则、架构、协议,强化跨课程的系统性的实践教学培养过程和内容。

经验表明,合理划分相关知识域中的各知识要点,注重课程间关联知识点的侧重和衔接非常重要。从目前的教学情况来看,在内容上切实实现了课程间最少重复、各门课不留漏洞的既定目标。

在今后的工作中,我们将在强化内涵和拓展外延两个方向进一步完善系统观教学实践,逐步贴近教育部计算机专业教学指导分委员会《以系统发展观为主线的计算机专业课程体系改革的思路》,实现“学生的知识体系得以更新与扩展,其系统设计创新能力同步得到强化与提升”的目的。

参考文献:

[1]王志英,周兴社,袁春风.计算机专业学生系统能力培养和系统课程体系设置研究[J].计算机教育,2013(9): 1-6.

[2] JosephS.计算机科学的愿景:系统发展观[J].中国计算机学会通讯,2012,8(3): 11-18.

[3] The joint task force on computi_ng curricula. Computer Science curricula 2013: Curriculum guidelines for undergraduate degreeprograms in Computer Science[EB/OL].(2013.12.20)[2015-06-30].acm.org/education/CS2013.final-report.pdf

篇10

Abstract:Achievement oriented education is an advanced, scientific and reasonable educational concept. It is of great practical significance to improve students' computer skills by applying it to the reform of computer courses. Based on the elaboration of the connotation of achievement oriented education, taking the course of university computer as an example, this paper puts forward curriculum reform and practice methods from revising course content, constructing platform suitable for independent learning and collaborative learning, reconstructing curriculum teaching, learning, examination and evaluation.

Key words:Achievement oriented Education;Curriculumreform;Modular teaching; platform

成果导向教育(OBE)理念发展于20世纪90年代,其教育理念得到广泛的重视与应用,至今被认为是卓越工程教育的正确方向。因此用成果导向教育理念指导计算机类课程改革具有重要的现实意义。

1成果导向教育的内涵

成果导向教育(OBE)称为基于学习产出的教育模式,是一种先进的、科学合理的教学理念。OBE指教学设计和教学实施的目标是学生通过教育过程最后取得的学习成果[1]。其强调对学生行为结果的测量,注重学生学完之后能真正做什么,而不是学了什么。美国学者SpadyW.D在其著作中对OBE的概念进行了界定,即“对资源和系统的调整,使之清晰聚焦于促使学生在未来生活中获得成功的实质性经验”。在成果导向教育下,成果决定过程,课程设置以最终成果为导向,在学习结束之后,?W生应当展示自己所学到的知识,它注重课程内容、教学方法、教学策略与教学评估之间的高度匹配[2]。成果导向教育强调4个问题:1、学生取得的学习成果是什么?2、为什么要让学生取得这样的学习成果?3、如何有效地帮助学生取得这些学习成果?4、如何知道学生已经取得了这些学习成果?

成果导向教育理念中的学习成果是学习者在顺利完成某阶段学习过程后所应知道、理解和掌握的方面。作为描述学生在某时间段结束后能被检验的学业成绩,学习成果是具体的、可检测的,可用于描述任何有效的学习形式。而学习成果的具体性指的是学习成果最终的表现形态,可以是知识、技能、素质等方面具体形态或其一系列组合。

可见,OBE强调成果导向、重视学生学习成效、明确确定毕业生能力,其教学质量的评估侧重于教育的产出,即能力和成果、成绩和效果上。因此在课程教学中应明确学习的成果,配合多元弹性的个性化学习要求,让学生通过学习过程完成自我实现的挑战[1]。

2 成果导向教育理念下的课程教学改革与实践

以成果导向教育(OBE)理念贯穿到《大学计算机》课程教学全过程,提升课程对毕业要求达成评价的支撑度,实现教、学、考、评的有效衔接。在整个教学过程中,加强学生自主学习能力培养,在完成学生基本的学习需求上,培养学生利用课堂知识来解决在行业上的问题,满足学生未来可能的需求。因此结合学校专业人才培养目标、学生的情况及计算机公共基础课程的特点等方面因素,从以下几个方面进行课程的改革与实践。

2.1修订课程教学内容

成果导向教学理念打破传统的以教师为中心的教学模式,强调学生的主体地位,指出课程教学的目标是让学生具备相应的能力,教师所从事的一切教学活动都是为达到教学目标而采取的手段。因此课程改革的首要任务就是打破思维定式,彻底转变思想,认真反思过去的教学工作,明确高校计算机类课程人才培养要求,课程教学目标,重新整合课程教学内容,修订课程考核方案。《大学计算机》是高等学校计算机公共基础课程中的核心课程,是非计算机专业开设的第一门计算机公共课程。课程内容涉及计算机基础知识、网络与多媒体技术基础、办公自动化、程序设计与数据库技术基础等方面,突出实践性与人文性,注重前沿知识的介绍。在《大学计算机》课程改革中根据不同专业需求,修订课程大纲,以此更好实施课程面向专业、面向学生的教学目标。如下表1所示为化工专业《大学计算机》课程的教学安排表,课程教学内容共包含五个模块。

其中,“拓展知识”模块作为动态内容模块,提供学科前沿知识与进行新的应用技术推广。

2.3 建设适合自主学习和协作学习的平台

成果导向教育要求学校和教师不应以同样的方式在同一时间给所有学生提供相同的学习机会,而应以更加弹性的方式来配合学生的个性化学习要求。因此要求课程的学习资源要具有指导性及全面性。因此在《大学计算机》课程中采用混合式教学方式,把课程中涉及的教学资源进行数字化改造,并且结合课程网站、教学平台与实验测评三大平台辅助开展课程的教与学。

1)课程资源的数字化改造

A、基本资源:反映课程教学思想、教学内容、教学方法、教学过程的核心资源,包括课程介绍、教学大纲、教学日历、教案或演示文稿、重点难点指导、作业、参考资料目录和课程教学视频等反映教学活动必需的资源。

B、拓展资源:应用于各教学与学习环节、支持课程教学和学习过程的多样性、交互性资源。如:案例库、优秀学生作品、素材库、在线自测、考试系统、课程学习网站链接、文献规范档案资料库。

C、在线学习资源:对课程内容进行MOOC化改造,即把每一章的知识点进行分块处理,制作成10分钟左右的微视频,供学生在线学习与巩固。

2)构建课程教学平台

成果导向教育理念构建的关键点在于通过整合各类教学资源、协调教学过程的各环节,构成一个在教学质量上能够实现自我约束、自我激励、自我改进以及自我发展的有效运行机制。因此在课程的实施中以课程网站、计算机实验系统、网络教学系统、课程QQ群等平台为依托构建学生在线自主学习、交流协作、自我测试的环境,让学生在此环境中达到“乐学”、“会学”、“学会”。以下图为《大学计算机》课程网站。

2.3 重构课程教、学、考、评

成果导向教学要求以?W生为中心,以成果为导向,重视学生在取得成果的过程。因此需重构课程教、学、考、评内容,以此提升学生的学习能力、创新能力、沟通能力与团队合作能力。在《大学计算机》课程中进行了如下的教学处理:

1)模块化教学

课程实施模块化教学,即进行课程内容、教学过程、课程考核、课程评价的模块化,注重学习过程与实践能力培养。

2)模块化考核

在模块化教学中,当某模块教学结束后即利用考试系统对该模块进行考核,这样不但可以降低学生学习的压力,提高教与学的效率,同时不同模块可根据其具体目标要求,内容制定各自的考核策略,进行不同形式的考核、灵活性好、针对性强。

3)模块化评价方法

成果导向教育理念下的教学评价是把以“教”为中心的评价转换到以“学”为中心,在整个评价中体现出学生参与度、教师实时跟踪、师生及学生间的合作交流。因此在课程中采用模块化的评价方式,把各个模块的考核成绩及课程平台记录的学生学习状态数据,按课程评价策略进行最后的评定,课程评价模块化改变过去所沿用的期末考试“一刀切”的做法,注重学习过程与实际技能,科学、全面、公平及人性化。评价公式如下:课程总评100%=学习状态30%+模块考核70%,其中:学习状态=考勤30%+作业30%+技能30%+状态10%;模块考核=基本模块考核80%+拓展模块考核20%。