1背景
(1)各个实验课程内容之间没有统一规划,缺乏合理的体系结构。硬件课程内容具有很强的交叉性和相关性,但目前在教学中普遍采用的做法是针对每门课程单独设置实验并提供实验环境,实验课之间相互独立,缺少有效的衔接贯通,对实验内容也没有进行统一的规划[2]。这样各门课程老师在设置实验内容时,往往只考虑本门课的课程要求,忽视与其先修实验课程以及后续课程的联系,使学生只能看到一个个独立的计算机硬件,对实验课也往往存在“做一门结一门”的态度,不能使其从系统角度上认识和理解计算机内部的协同工作[3]。(2)硬件实验成绩考核评价方法落后,严重影响学生的主动性。目前实验采用的是传统的考核办法,即教师根据学生的平时表现、笔试成绩及实验报告成绩综合评定学生的总成绩。虽然该办法比较合理,但项目实践过程中使用的知识面广,并且需要学习大量的新知识,因而传统答卷考查方式不能满足需求,学生的平时表现各方面强弱不同,教师往往凭感觉,带有较大的随意性。有的学生干的多说的少,有的学生干的少说的多,最终老师给出的成绩并不一定能准确反映学生的实际能力。
2针对本专业硬件实验教学模式的探索
西安交通大学软件学院结合专业特点,提出紧耦合层进式的硬件实验教学体系,对实验教学做出了一些有益的尝试和探索。
2.1构建新的硬件实验教学体系,开展层次化的实验教学
软件工程专业和传统的计算机专业以培养计算机软硬件设计与开发的研发人员的培养目标有所不同,所以在硬件课程以及硬件实验课程体系上,两个专业的定位应有所区别。西安交大软件学院根据培养目标的要求,本着硬件为软件所用的宗旨,开设的硬件课程有数字逻辑与系统设计、汇编与接口技术、计算机组织与结构、嵌入式系统与软件开发等。经过几年的教学改革实践,我们认为实验教学不能完全依附于课堂教学,而应该在紧密联系课堂教学的前提下,有目的地开设独立的实验课,才能更好地配合理论课教学,充分发挥实验教学培养学生独立工作能力的优势。在实践过程中,我们恪守“掌握基础是重点、研究创新是升华”理念。首先必须保证绝大多数人能接受基本实验技能的训练,不盲目跟风式开展开放性实验。实践证明初始阶段就进行开放性实验往往会让学习能力不强的学生不知从何下手,失去了研究实验的兴趣,从而背离了进行实验教学的初衷。我们的思路是稳扎稳打,逐步推进。我们勾画了以数字逻辑实验为基础,以嵌入式及SOPC(SystemonaProgrammableChip,可编程片上系统)实验为终结,包含时序组合逻辑实验、计算机部件实验以及整机实验为一体的计算机硬件实验教学课程群。要求本科生从大学二年级到四年级硬件实验内容不断线、衔接连贯,并按学生兴趣和能力有层次的提高;强调各门课程相互联系紧密结合,分层次培养学生的独立组织硬件实验的能力、软硬件综合调试能力和综合设计能力[4]。在此基础上,我们提出了一种紧耦合层进式的硬件实验教学体系,如图1所示。在这种紧耦合层进式的实验教学体系下,根据教学的不同要求,将实验划分为3个不同层次,即基础性实验、综合设计实验、研究创新实验。其中,基础性实验主要指相关硬件课程的课内实验,通常为8~16学时的必修性实验课,通过这类实验使学生初步掌握本门课程中基本实验技能以及基本模块的实现。综合设计实验主要是面向所有本科生开设的选修性实验,一般为32学时,通过这些实验要求学生整合各个基本模块,进而能设计并实现简单功能的电路或系统。按照学院学分设置及学分要求,基本上每个学生都会选择2~3门硬件实验课程,这样学生都能对硬件底层具有一定的了解,对于普通的高级软件应用开发基本够用。最高层次的研究创新实验,我们安排为开放性实验,针对少数有余力且感兴趣的学生,要求其能够独立地设计一些较为复杂且具有应用背景的课题,旨在对专业知识进行扩展并培养自身的创新能力,这类课程要求必须选修过相关实验课程的学生,方能进行选修。
2.2紧密联系理论课教学,采用以EDA技术为主的实验教学环境
本专业的硬件理论课教学的宗旨是着重从系统角度来理解计算机的运作,着重培养学生对硬件系统的分析及应用能力,作为统一的教学体系,实验教学也应围绕这一主导思想。我们在实施硬件实验教学时,更关注硬件部件是如何完成其设定功能,部件之间如何进行相互配合、协调运作,而弱化硬件内部具体物理实现。我们采用了EDA为主的硬件实验教学方式,利用QUARTUS等功能强大的EDA开发工具、Verilog或VHDL硬件编程语言,配合相应实验箱进行实验功能设计、仿真及验证,使学生基本不用关注硬件的具体实现,进一步简化了硬件设计、测试等过程。其中数字逻辑与系统设计、计算机组织与结构、SOPC系统设计等实验课程均利用QUARTUS工具进行开发,基于杭州康芯电子有限公司的KX_DG3B数字系统开发平台和GW48系列FPGA开发平台来进行实现,实验环境上具有顺承性,只要在硬件实验起始课程中进行一次讲解,学生就能轻车熟路地使用。这样就避免每个老师都在EDA软件的讲解上耗费大量时间,其他课程老师则主要把精力放在本门课相关电路及部件的设计实现上,节约了宝贵的实验内容讲解的时间。EDA教学环境及FPGA平台的使用,一方面可以提供的是虚拟器件和仪器,且开发平台可反复编程,所需硬件连接较少,实验设备不易损坏,使学生可以放开手脚大胆地进行实验。另一方面,学生在课堂上完不成的实验,可以在自己的计算机上装载相应开发工具,利用课余时间继续完成后跟随下组实验进行硬件验证即可,实验安排上就可以比较灵活。因此,利用EDA技术,学生很方便地开展综合性、设计性、自主性的实验,进而可完成大型硬件的原型设计,或进行创新性课题的研究,这将大大激发学生的学习兴趣和热情,提高学生硬件设计能力,从而改变目前学生硬件动手能力差的情况[5]。
2.3强调各课程实验内容的耦合衔接与贯通,注重软硬件之间的协同
构建紧耦合层进式的实验教学体系,离不开各个实验课程内容之间的关联协调和贯通。计算机硬件实验教学过程作为一个系统,其组成部分是每门课程的实验内容。在选取实验内容时,为避免实验内容的孤立,既注重课程间知识的交叉渗透,又尽量体现知识体系的整体性和逻辑性。以“数字系统设计专题实验”开放实验为例,很多学生选择用硬连线方式实现一个基本模型机,而同时在“计算机组织与结构专题实验”中则要求学生基于微程序的思想来实现一个同样功能的模型机,通过这两者的实现比较,学生能直观地映证出理论课上所讲述的两种方法实现CU时各自优缺点,透彻理解并牢固掌握该知识点。传统的计算机硬件实验课程的主要任务是验证计算机的工作原理,以配合对应的计算机硬件理论课程,忽略了各实验课程间的融合性,而技术的发展需要软硬结合、软件硬化或交融[6]。单纯的软件实验和硬件实验都不利于学生软硬件综合素质的培养,传统的软硬件设计相分离的设计方法已成为阻碍设计和实现复杂、大规模系统的关键因素。在“嵌入式系统与软件开发专题实验”以及“SOPC系统设计专题实验”中,我们要求学生完成一个总的计算机软硬件综合设计的项目。以接近于实际应用环境,完成高质量综合设计为训练手段,使学生建立系统的概念与工程的概念。这样一方面可以使学生从根本上了解计算机的整个硬件系统、软件控制之间的协调机制,彻底打通软件实验与硬件实验之间的壁垒,另一方面,这样既有硬件也有软件的题目也更能激发起软件专业学生的学习兴趣,发挥其编程方面的特长,提高学生的主动性及创新热情。
2.4建立灵活的考核机制,满足不同实验类型的要求
对于实验课程的考核,我们采用针对不同实验类型实行不同考核机制的方法。对于课内的基础性实验,考核时坚持沿用传统的课堂表现和实验报告相结合的方式,现场表现采用单人单机现场演示,老师提问学生作答的方式,由老师根据学生考勤及现场表现给定分数。实验报告的成绩则细化对问题的分析能力以及文档写作能力等方面的要求给定。最终成绩由这两项按权值给定。对于综合设计实验,由于整个实验内容往往由多个子实验来组成,而且通常采用两三个学生分组进行的形式,所以考核时应更为细致,也要由课堂表现和实验报告两部分综合给出,但较之基础性实验标准不同。首先,课堂表现由老师评分以及小组成员互评两项组成,要求在每次实验中指导教师都认真地记录学生的考勤及实验表现,这里的实验表现主要考查遵守实验规则、设计能力,分析、解决问题能力以及对理论设计的实现能力等几个方面。其次在实验结束后,还要求学生撰写实验报告,实验报告依据学生的总结能力、分析能力和写作能力给出。创新设计型实验一般也采用分组的形式,但最终成绩是由实验开发中几个部分的考核成绩综合给出。选题准备阶段的成绩由指导教师根据学生提交系统选题报告,按照系统规模、难易程度、创新性及个人分工给出。设计阶段的成绩由学生提交系统设计报告和现场答辩两部分给出。答辩类似于工程中的评审,需要通过学生讲解、演示,回答在场所有学生及教师的质疑,一方面对项目可行性进行充分的推敲,另一方面使各组成员充分了解其他小组的思路及设计方法,对自己项目实施起到学习借鉴作用。系统实现调试阶段成绩由学生提交系统实现及测试报告给出。最后验收阶段由现场验收和项目总结报告两部分组成。上述多样化的考核标准满足了层进式课程体系中不同层次的考核要求,更加客观地反映了学生的实践能力和知识运用水平,提高了实验教学的整体质量,达到了实践创新的培养目标。
3结语
实践证明,这种兼顾实验基本要求与学生兴趣的层进式教学模式,以及将软件渗透到硬件功能中的教学方法,是适应本学科发展并符合培养目标的有益探索,受到了本专业学生极大的好评,也积累了一定经验。随着科学技术的不断发展,软件技术更新日新月异,软件工程的教学也需要不断更新改革以顺应时代的步伐,未来我们结合实践继续摸索,使课程改革成为一个持续不断的过程,更好地推动高级软件人才的培养。
作者:李晨 朱利 杜小智 张琴 单位:西安交通大学 软件学院
相关专题:电算化软件 中国典籍与文化 投稿