基于CC2005的计算学科硬件类课程教学改革探索
2009-06-20刘昌华管庶安蒋丽华易逵
刘昌华 管庶安 蒋丽华 易 逵
文章编号:1672-5913(2009)10-0021-03
摘要:本文在IEEE/ACM关于计算(Computing)学科本科教学参考计划CC2005(Computing Curricula 2005)指导下,针对我国高校应用型本科计算机专业建设的现状,提出了基于CC2005的计算学科硬件类课程的内容体系改革思路与改革方案,强调原理和实践结合,提高应用能力的培养。
关键词:CC2005;计算学科;硬件类课程群;教学改革
中图分类号:G642
文献标识码:B
1引言
在计算机类专业的课程体系中,无论是专业基础课、专业课还是专业选修课,基本可以分为两条主线:一是软件课程体系;另一个就是硬件课程体系。一般来说,计算机软件课程在计算机专业中基本能够得到重视和加强。计算机硬件课程体系相对比较薄弱。多数毕业学生的硬件能力都比较差,基本无法胜任计算机硬件方面的相关设计工作,这将非常不利于我国计算机产业的发展。
国内很多高校的计算机专业过分强调软件与应用,而缺乏计算机体系结构、计算机系统组成与结构等硬件方向的培养。但是从就业市场反馈的信息看,计算机软件人才已经供大于求,而熟悉硬件开发应用或软硬件结合的人才则供不应求。在计算机科学与技术高速发展的今天,怎样才能够培养出我国计算机产业发展所需要的优秀人才?应用型本科计算机专业学生应具备什么样的计算机硬件知识结构?这是摆在我们计算机专业特别是从事计算机学科硬件类课程教学的教师面前的一个需要研究、探索的课题。
2CC2005中计算学科硬件类课程内容的定位
目前在计算学科教育方面最有代表性和影响力的工作依然是IEEE-CS/ACM组织的Computing Curricula研究工作。
IEEE-CS/ACM一直在跟踪工业界对计算领域人才需求和教育界对人才教育培训的需求、状况、发展和存在的问题,并于2001年给出了具有指导性意义的计算学科本科教学参考计划(Computing Curricula 2001,简称CC2001)。我国国内专家学者对其进行了详细研究,并于2002年公布了中国计算机科学与技术学科教程2002(China Computing Curricula 2002,简称CCC2002),在国内外也产生了很大的影响。继CC2001推出后,经过几年的跟踪研究、意见反馈和计划评议,IEEE/ACM在总结前期工作的基础上,对原“CC2001”给出的四个专业方向进行了修改和扩充,并给出了新的评述,于2005年4月发布了CC2005的草案,并于2005年9月30日发布了最终版的Computing Curricula 2005。
IEEE-CS/ACM在CC2005中将计算学科分为五个专业,分别是计算机工程(Computer Engineering-CE)、计算机科学(Computer Science-CS)、信息系统(Information System-IS)、信息技术(Information Technology-IT)和软件工程(Software Engineering-SE)。针对每个专业的特点和要求,CC2005提出了支撑每个专业的知识构架,由底向上分别是:计算机硬件与结构(Computer Hardware and Architecture)、系统基础(System Infrastructure)、软件方法与技术(Software Methods and Technologies)、应用技术(Application Technologies)和信息系统结构(Organizational Issues & Information Systems)共五个层次。每一个层次又分“趋于理论”与“趋于应用”两个方向,计算学科知识空间图如图1所示,基于上述层次,CC2005对每个知识层次的课程体系、知识点进行了详细的规划。例如,计算科学(CS)专业、计算机工程(CE)专业和软件工程(SE)专业的知识需求如图2、图3和图4所示。可以看出,CS和CE专业更加注重计算机硬件与结构以及系统结构等计算机底层方面的理论和应用知识,而SE专业则注重系统基础、软件方法与技术、应用技术以及信息系统结构等方面应用型的知识,与计算机硬件与体系结构稍有覆盖。
图2CS专业对计算学科各层次知识的要求
CC2005明确指出计算机科学(CS)和计算机工程(CE)专业,都应该掌握计算机底层的“计算机硬件与结构”方面的课程知识。图5列出了计算学科五个专业(即计算机科学CS、计算机工程CE、软件工程SE、信息系统IS和信息技术IT)对应各个硬件类知识域实施的份量(分最大值max与最小值min),份量轻重分0(最轻级)到5级(最重级)。我们可以看出除了计算机工程,其它四个对计算机硬件知识的要求都可以不用太深重。
3计算学科硬件类课程的实施现状
目前我国高校计算学科硬件类课程基本是参照IEEE- CS/ACM的指导性计划而设置的,基本上保持了与国际上计算机发达国家的课程设置的一致性,推动了计算学科教育的积极、稳妥发展。根据CC2005的体系结构,计算学科硬件课程群核心内容和普通知识点主要体现在以下几门课程中:数字逻辑、计算机组成原理、计算机通信与接口技术、计算机体系结构。在实际教学过程中,各门课程相互之间内容衔接较多;有些内容在多门课中重复出现,使学生以为学过,降低注意力,并对课程设置产生不满情绪;各门课程内容的关联没有统一整理实施,课程组织缺乏系统性;与软件技术知识联系的不够,如与C语言、操作系统等软件课程学习的关联性强调的不够,使得学生没有形成完整的知识体系,即软硬件知识融会贯通,例如要使学生知道计算机如何实现C语言中的变量定义、指针、循环、过程调用和返回,如何用操作系统提供的接口改变硬件的工作等。究其原因,是现有教学内容陈旧,与实际应用脱节,远远落后于现代计算机硬件技术的发展,对学生缺少吸引力。
4计算学科硬件类课程改革方案
培养应用型本科生,要求各院校根据本科生的培养目标,学院拥有的教学资源和社会对人才的需求来制定培养计划并给予可行的实施方案,并不要求所有学校千篇一律。没有一个标准教学模式,又要使培养出的学生有自己的特色、能被社会广泛认可,各学校每年都在为如何在有限的教学时间内对计算学科如此众多的知识域进行取舍、整合,制定出一个契合培养目标的教学计划而探索。对此,我们以专业需求为基础,以CC2005的5个层次中的核心内容构建计算学科硬件类课程群,课程包括:数字逻辑、计算机组成原理、计算通信与接口技术、计算机系统结构、单片机原理与应用、嵌入式系统、计算机维护、EDA技术等课程,把培养学生的硬件素养、硬件开发能力定为系列课程目标。根据CC2005的精神,我们把计算机硬件类课程群课程划分为三个层次,即基础层、系统层、应用层,其结构如图6所示:
图6计算学科硬件类课程群结构
基础层课程,主要是“数字逻辑”课程,从2006年开始对该课程教学内容进行了改革,2007年立项为武汉工业学院重点课程,2009年又立项为武汉工业学院精品课程,我们编写出版了教材,在课程中引入可编程器件、HDL语言,引入FPGA技术的介绍及实验项目,又更新了实验设备,主要思路是让学生掌握数字电路的基本知识和EDA设计方法,能够设计一般的数字逻辑部件及简单的数字系统。所以在课程结束后安排了1周的课程设计,学生可以在FPGA芯片上运用VHDL设计如电子钟、秒表、交通灯控制器、多功能音乐盒、电子抢答器等简单的数字系统。
系统层课程有“计算机组成原理”、“计算机通信与接口技术”、“计算机体系结构”。其中“计算机组成原理”课程重点介绍基于模型机的CPU组成原理与结构体系,包括数据在机器中的表示、总线系统、外围设备接口、存储器组织与结构、指令系统、中央处理器(含运算器与控制器)、流水与并行处理等内容,其中重点是数据在机器中的表示、总线系统、存储器组织与结构、中央处理器等内容。计算机通信与接口技术主要讲解典型接口(如并行、串行、定时、DMA、中断、A/D及D/A)以及新型的USB和IEEE1394接口技术,基于Windows操作系统的MFC的编程技术。计算机体系结构课程则基于实际的计算机模型,介绍计算机系统设计所必须了解和掌握的基础知识和专业知识,包括计算机体系结构的基本概念、设计原则、关键技术(流水线技术和并行处理技术)以及性能评价方法等,课程的主要目标是使学生能够系统全面地理解计算机体系结构技术的基本思想,掌握分析和设计计算机系统的方法,并对计算机系统软硬件功能进行合理分配,达到最佳性能/价格比。
应用层的课程,由前二层主要课程的课程设计及专业选修课、综合课程设计组成,主要在三个方面的应用:
(1) 数字系统的设计,运用硬件描述语言设计计算机接口及整个应用系统,如“EDA技术” ;
(2) 计算机应用系统设计,包括硬件电路、应用软件,如“单片机应用” ;
(3)“嵌入式系统”课程培养学生复杂系统设计能力,“嵌入式系统”也专门定制了ARM9的试验设备和编写了实验指导书。
在应用层的教学中,强调的是“实践教学”的重要性采用灵活的教学方法和教学形式,包括小组讨论、专题报告、大作业、专业论文等形式,注重学生学习的主体作用,重点培养学生的创新性与自主学习能力。
本课程群建设中,不是以单一的课程为单位设计实验,而是按照整个课程群来设计一体化的实验环境与实验内容,将“数字逻辑”、“计算机组成原理”、“计算机体系结构”的实验有机地结合在一起,创建良好的实验环境,灵活运用实验室、开放式实验室、实习基地等多种手段,尽量多地为学生创造条件,同时通过实验课程、开放实验、大作业、课程设计、竞赛等多种手段和形式培养学生的研究能力与团队精神。
5计算学科硬件类课程教学内容的系统性
硬件和软件知识是相辅相成的,它们都包含丰富的知识和先进的技术。计算机硬件知识必须对计算机的体系结构、组成及其核心技术进行系统的描述,以使学生能学到先进的硬件知识。硬件知识的学习对学生理解计算机软件的工作有着非常大的帮助,尤其是系统软和底层软件。而学到计算机软件知识后,再学习计算机硬件知识,会对软件的载体——硬件、硬件组成、硬件的工作原理以及软件是怎样依附干硬件的全过程有一个飞跃的认识。只有这样,学生的计算机知识才能达到一个完美的统一。他们才能学到计算机的系统知识,而不是残缺的计算机知识,最终达到对计算机系统软、硬件基本知识的融会贯通。而目前计算机软硬件教学之间却基本分离。教师之间缺乏足够的沟通。学生尽管学习了一些计算机硬件接口知识,但在使用高级语言对硬件进行编程时却无从下手;尽管学习了“操作系统”和“网络技术”等课程,却不知道在嵌入式系统如何应用相关理论。当需要综合运用软硬件知识来解决问题时,多数学生都是一筹莫展。这些都说明,在计算机教学体系中软硬件课程间的结合存在问题,学生的知识结构缺乏完整性和系统性。因此,必须在软硬件课程的教学内容中进行适当的穿插。例如“操作系统”课程中的CPU调度、内存管理与“计算机组成原理”和“计算机体系结构”课程中的许多知识都密不可分,在理论课程教学中提及相应课程知识,可以引导学生思考,建立必要的知识关联。在“微机原理及接口技术”的课程中,可以加入一些利用高级语言对硬件进行编程的实例,既可激发学生的兴趣,又可提高学生对硬件的编程能力。另外,计算机硬件课程之间还存在重叠和互补的关系,教学中也应注意相互次序和互补,以保证教学知识的系统性和完备性。
6结束语
我们希望通过对计算学科硬件类课程的及知识体系进行全局优化和改革,解决硬件类课程之间缺乏相应得衔接、课程讲述的知识点相互重复、某些需要讲述的知识点没能在相关课程间做好统筹安排而未讲述等一系列课程内容的定位问题。同时通过新技术的学习、研究,选择一定的新技术作为相关课程讲述的知识点,解决课程内容过于陈旧、跟不上科学技术发展的脚步等问题。在新的课程群设置中,以学科方向和模块为核心,凝聚课程群的设置,同时将其与专业培养计划相适应。在设置课程群的时候,打破“系、专业”的限制,使不同专业的教师根据学科课程方向凝聚一起。根据计算机学科发展以及信息科技发展情况,及时、动态地调整课程群内核心课程、选修课程的设置,甚至每一门课程具体内容的设置。
参考文献:
[1]ACM/AIS/IEEE-CS,Computing Curricula 2005[OL/S],http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf.
[2] 教育部高等学校计算机科学与技术教学指导委员会.《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》[M]. 北京:高等教育出版社,2006.
[3] 蒋宗礼.以能力培养为导向提高教育教学水平:大学计算机课程报告论文集,2007[C]. 北京:高等教育出版社,2008.
[4] 刘昌华.数字逻辑EDA设计与实践: MAX+plusII与QuartusII双剑合壁[M]. 北京:国防工业出版社,2006.