左冬红, 罗 杰, 张 林, 汪小燕
(华中科技大学 电子与信息工程系,湖北 武汉 430074)
计算机原理与接口技术实践教学改革
左冬红, 罗 杰, 张 林, 汪小燕
(华中科技大学 电子与信息工程系,湖北 武汉 430074)
计算机技术的惊人发展,使得“微机原理与接口技术”课程的实验内容,越来越不适合作为信息学科本科生核心课程教学内容。为达到“培养系统能力,满足业界需求”的教学目标,论文讨论了“计算机原理与接口技术”实践课程的教学内容、教学方法和考核改革措施,以及在华中科技大学电子信息与通信学院进行的3年教学尝试效果。
实践教学改革; 计算机原理; 接口技术
计算机技术的惊人发展,尤其是嵌入式计算机系统的发展,已使得“微机原理与接口技术”课程的教学内容尤其是实验内容,越来越不适合作为信息学科本科生的平台基础课教学内容。原有的微机硬件基础教学已严重脱离了计算机硬件技术发展的实际,脱离了现代大多数非计算机专业大学生的实际需求,脱离了市场对大学生毕业后计算机工作能力的实际要求[1]。
嵌入式计算机系统在非计算机专业的各个应用领域尤其是计算机硬件系统的各个应用领域已经基本替代了微机系统;另一方面现代复杂的微机硬件系统,已经越来越不适合于初学者深入其内部进行探究。因此基于微机系统的计算机硬件系统设计教学越来越迫切地呈现出被嵌入式计算机硬件系统设计教学所替代的需要。但是原有的微机原理与接口技术课程教学目标不仅仅局限在计算机硬件系统设计,作为平台基础课,它还承担着帮助学生理解软件在计算机硬件系统内工作原理以及帮助学生掌握基于特定计算机硬件平台如何进行软件优化设计的教学目标。
因此我们结合高等教育计算机教学指导委员会提出的增强学生系统能力培养目标,并根据国内大学计算机类课程教学改革需要,配合非计算机专业理工科类特别是电气类“微机原理与接口技术”课程改革需要,将原有的“微机原理与接口技术”实践教学内容进行了全新的改进[2],使教学实践尽快跟上计算机技术的发展需要,培养学生计算机系统设计以及应用能力。
根据教育部高等学校计算机科学与技术教学指导委员会非计算机专业计算机基础课程教学指导分委员会指出的计算机硬件技术基础课程的教学内容及基本要求以及电气类专业学生的深层次要求[3],并结合《国家中长期教育改革和发展规划纲要(2010—2020年)》提出的更新教育教学观念、改革人才培养模式、提高人才培养质量的本科教育教学改革方向;同时明确高等教育改革要坚持能力为重,注重在科学研究中培养人才,着力提高学生的学习能力、实践能力、创新能力的新形式[4],以及国家信息产业“自主可控”人才培养的战略需求[5],针对计算机原理与接口技术课程的教学目标,我们将计算机原理与接口技术[6]课程新的实践教学内容[7]为以下几部分:
1.1 汇编语言编程
汇编语言是介乎高级语言与机器语言之间的一种编程语言,使用该语言编程的用户要求深层次理解计算机工作原理。因此为达到深入理解计算机硬件系统的工作原理的目标,仍然设置汇编语言编程实践内容。
通过这部分的教学实践让学生了解指令系统的一般概念和汇编语言程序的基本结构,掌握常用基本指令的使用方法,同时深入理解计算机指令与程序的执行过程以及计算机基本工作原理[3]。并为第二部分MIPS微处理器的汇编语言测试程序设计以及微处理器设计打下基础。
这部分采用MIPS汇编语言学习汇编程序设计,通过引入MIPS仿真器QtSpim[8],可以让学生在没有MIPS硬件环境下学会MIPS汇编程序设计以及汇编程序调试技巧。
1.2 原型计算机系统设计
原型计算机系统设计这部分内容主要涉及嵌入式微处理器的设计以及简单IO接口设计,设计这部分教学内容的目标是让学生建立从数字逻辑电路到计算机微处理器以及软件控制硬件工作原理的知识体系。
这部分教学实践由学生通过硬件描述语言或电路图的方式基于ISE工具[9]实现,软件利用MIPS汇编语言编写,让学生从零开始,实现一个可具有图形输出以及简单输入输出控制的原型计算机系统。
通过这部分的教学实践,学生不仅可以了解到指令架构与微处理器微结构之间的关系[10],而且还能了解输入/输出系统的基本概念、输入输出端口的编址方式;程序查询方式输入/输出的控制原理;掌握接口的基本功能和基本结构。通过从需求出发,不再基于某个具体的微处理器,而是采用从无到有的设计、实现过程,培养学生的原创力。
这部分内容采用FPGA平台开展教学实践活动[11],在引入Xilinx ISE开发工具的基础上,引导学生从设计一个简单指令集的单周期MIPS处理器入手,逐步深入到为该微处理器设计程序查询方式存储器映像编址的简单IO接口,以及VGA接口控制器。并要求采用MIPS汇编指令实现简单的输入输出接口控制以及图形输出控制等。在这个过程中,微处理器的指令集需要不断的进行扩充才能满足控制需要,指令集的扩充导致微处理器设计的进一步修改完善,可以让学生深刻体会到指令集与CPU微结构之间的关系。
1.3 嵌入式计算机系统接口设计
为达到现代计算机接口技术教学需求,在接口设计这部分直接采用Xilinx 微处理器IP核——MicroBlaze[12]来进行嵌入式计算机系统接口设计。
接口设计包含以下内容:并行IO接口设计,并行存储器IO接口设计,串行接口设计,串行AD、DA接口设计以及人机接口(键盘、鼠标、显示器)设计。
这部分所有的控制软件都采用C语言编写,学生可以采用SDK提供的库函数,也可以只采用C标准库函数实现程序控制。通过这部分的教学实践,让学生深刻理解:计算机系统的基本组成、总线结构、总线时序;接口技术中的查询、中断、DMA控制方式的工作原理以及硬件支持的异同;不同的数据通信方式——并、串行通信方式;以及标准人机接口设备的控制原理。达到掌握真实嵌入式计算机硬件系统设计以及软件控制程序编写能力的目标。
1.4 硬件对软件性能的影响
这部分设置了几个验证性实验:不同字节序计算机系统中C语言数据的存放规律,不同类型数据运算结果偏差的原因、字节对齐方式下结构体的内存分配及优化策略以及cache对二维数组不同访问方式下的性能影响等[13]。这部分内容帮助学生从实践的角度深刻掌握计算机硬件系统的工作特点,为学生在后续的编程实践中对如何优化程序设计打下基础。
1.5 综合项目
这部分的教学内容为实现进一步激发学生的学习兴趣,并达到学以致用的目标而设置。教师可提供选题,也可由学生根据自身专业需求自拟项目,只要是具有一定复杂程度且具有实用价值的嵌入式计算机系统设计即可。目前我们为学生提供了如下综合实践课题:简易数字示波器,简易信号发生器,基于各种传感器的智能小车(循迹小车、避障小车、寻光小车等),基于加速度传感器的跑步计步器,32键简易电子琴,基于触摸屏的手画绘图仪等。
总之,教学实践内容的规划遵循从易到难的学习规律,首先从MIPS汇编语言程序设计入手,逐步深入到原型计算机系统设计以及嵌入式计算机系统设计。让学生循序渐进地掌握计算机系统原理以及接口设计技术,并培养计算机系统设计能力以及软硬件协同设计能力。
一方面要整合课程和压缩学时,另一方面又要提高学生的计算机系统观,培养学生的系统观念、系统结构、系统抽象与分析等能力。因此在有限的学时下,不能再让学生在课堂上进行一个个验证性的实验,必须采取课内学时与课外学时相结合的方式开展实践教学活动。并且“以学生为中心”,实现以“教”为中心向以“学”为中心转变,即从“教师将知识传授给学生”向“让学生自己去发现和创造知识”转变,从“传授模式”向“学习模式”转变。具体实施方法如下:
2.1 原理验证实验,学生课外自行完成(课内4学时)
考虑到学习计算机原理与接口技术课程的学生,一般是大二、大三的学生,具备了C语言软件编程基础,因此大部分原理验证性实验,在给出实验范例的基础上,要求学生课外完成。教师仅需利用一次实验课的时间对实验效果进行验收,分析并解答学生们在自行完成验证性实验过程中碰到的典型问题。这些实践教学内容包括MIPS汇编语言编程,C语言数据类型内存映像,结构体字节对齐方式下内存映像以及cache对程序性能的影响等实验内容完全由学生根据实验指导书的步骤在课下完成。课内4学时仅负责答疑,解决学生实践过程中出现的疑难问题。
2.2 单元设计实验,教师指导学生实验方法(20学时)
单元设计性实验内容的原理性内容基本上由理论课讲解清楚,因此这部分内容在实践课程中教师主要为学生指导实验方法以及实验过程中分析问题和解决问题的方法。学生在实验中碰到的问题多种多样,实践指导教程很难把所有的问题都列举出来,所以需要安排一定的课内学时,通过实验课程教师亲自指导各个学生解决其具体问题,从而让学生学会分析问题和解决问题的方法。
在我们设置的实践教学内容中,单元设计性实验分为两类:原型计算机系统设计和嵌入式计算机系统设计。需要分别为这两类实验安排课内实践指导学时,帮助学生学会分析和解决异常问题的方法。
原型计算机系统设计大量的工作可以通过软件仿真来验证设计的可行性,虽然要求学生投入较多的时间,但是仍然可将课内学时控制在8学时,其中4学时讲解设计软件的使用和调试、仿真技巧,另外4学时解决学生不能解决的问题,并验收设计的正确性。
嵌入式计算机系统单元设计性实验虽然内容繁多,但是这些内容之间的关键技术存在一定的重复性,因此可以将实验内容规划为三类:程序控制方式IO接口设计,中断方式IO接口设计以及串行IO接口设计,并且它们之间在难易程度上具有递进关系,因此分别提供4个学时来指导这三方面接口设计的技能。每个方面接口设计都包括多个IO设备的实验内容,一个学生不能在短短的4学时全部完成所有的实验内容,因此可以将同一类的不同IO设备实验内容随机地分配到不同的学生。一方面每个学生都能够学习到三方面技能的关键原理和实验方法,同时又可以通过学生之间的相互学习掌握各个不同外设之间的细微差别。如独立开关、独立LED灯,数码管、矩阵键盘都既可以通过程序控制方式,也可以通过中断方式来实现控制,因此这些实验内容可以在8个学时里交替让不同的学生来完成不同外设的接口设计。同样串行接口也包括很多种,没必要让每个学生在课堂上完成所有串行接口的设计,可将不同的串行设备接口设计分配到不同的学生,学生们同样可以通过4个课内学时以及课下交流达到相互学习的效果。
2.3 综合设计实验,教师引领学生创新(8学时)
综合设计性实验内容要求具有一定的复杂度和创新性,教师需要引导学生发觉该门课程中可能的创新点或可能的创新性应用,并激发学生的创新热情。因此可以利用4学时的时间进行这方面内容的讲解,比如对前面教学内容中提供的各个选题大致的原理进行引导性指导,然后再要求学生根据各自优势组队在教师的指导下完成推荐选题或自选课题的方案设计和方案验证。至于方案的实现,则要求学生利用2或3周的课外学时来完成。另外再安排4学时的时间对学生的综合课题进行验收,在这4个学时里通常包括项目演示和项目答辩两个环节。以上教学方法和学时规划,可以将这门实践课程的课内教学学时限制在32学时内,高效地利用了课内学时,并且也能带动学生利用课外时间完成实践内容,充分发挥学生学习的自主性。
任何一门课程的教学如果没有了有效的考核机制,往往很难达到期望的教学效果,除非是具有特别兴趣的学习群体。计算机原理与接口技术这门课程一直是学生们反应有难度的课程,而且是一门具有强迫性质的专业基础必修课,因此学习这门课程的学生并不是都具有强烈的兴趣。根据我们这两年在学生中开展的问卷调查结果确实也如此。因此除了规划出能激发学生学习兴趣的教学内容之外,同时还必须辅助有效的考核手段,以督促学生完成教学内容的学习。
实践课程除了要求学生掌握该课程的基本原理和实验、设计技能之外,同时还要求培养学生掌握工程实践报告文档的撰写能力和口头表达能力,以及团队合作精神。因此考核主要依据这些教学目标进行分值分布。下面是具体的考核细节:
(1) 基础实验 40%。基础实验主要包含原理验证实验和单元设计实验,共设置了5个考核实验单元:汇编程序设计、单周期MIPS微处理器设计、查询并行IO接口设计、中断并行IO接口设计、串行AD/DA接口设计。每个考核实验单元都有具体的验收要求以及实验报告要求,验收为6个分值,报告2个分值。并且规定延期完成分值递减规则,督促学生利用课外时间完成未完成的学习任务。
(2) 综合项目 20%。综合项目主要考核学生对已学知识的灵活运用能力以及综合集成能力,同时还考核学生的团队合作能力、综合性实验报告的撰写能力以及口头表达能力。因此对综合项目分值的评分采用以下方法:综合项目的集成度、难度系数、创新性;文档撰写质量;口头答辩表述清楚程度;演示效果以及视频展示材料的完备程度等。项目完成程度共12个分值,并且根据难易程度上下浮动3个分值,文档4个分值,报告及视频展示4个分值。这部分主要是用来激励优秀的学生和具有浓厚兴趣的学生,实现不同程度学生的区分,通过每位学生讲解自身工作部分,可以一定程度上解决搭便车问题。
(3) 操作考试 40%。考试是进一步检验学生掌握知识、技能熟练程度的重要手段,同时也是进一步避免搭便车问题的重要手段,因此通过操作考试往往可以进一步区分出每一个学生对知识、技能的真正掌握程度。由于综合项目已经是一种有效的筛选优秀学生的手段,因此操作考试主要是检验是否掌握基本技能,其考试的问题要求具有一定的集成度,但是应该是每个学生都平时接触过的内容,检验其在一定时间内熟练地独立完成的能力。分值分布通常考虑完成时间、实验软硬件的熟练使用程度、各个指标的达到程度、以及实验原理报告的完备程度等。
通过以上考核方法可以有效地发现优秀的学生,较好地掌握计算机原理与接口技术实验原理和实践方法的良好学生,以及基本掌握实验原理和实践方法的合格学生,甚至一直搭便车不合格的学生。
我们将以上教学内容、教学方法以及考核方法在2012~2014年运用到华中科技大学电信学院数理提高班以及通信工程专业的“计算机原理与接口技术”实验课程教学中,经过三年的教学实践,学生们一致认为在这门课上学会了很多东西,并且进一步锻炼了数字电路以及C语言编程课程学过的相关知识,能够更好地理解各门课程之间的联系。学生普遍认为在这门课程上学到的知识的数量与质量都超过了其他班级,而且电信专业其他班一些学习比较努力的学生,都纷纷表现出了对这门改革后课程的学习兴趣,这证明新的计算机原理与接口技术实践教学改革是有一定效果的。
目前计算机原理与接口技术实践教学改革还处于初期,并且不同于以往的教学方式,因此实践教学内容的难度以及要求学生自主参与的强度都大于其他课程。而且不同于以往的分离单元实验,较多地采用综合实验,增大了实验难度,提高了综合应用知识的要求。因此学生普遍感觉学习这门课程收获很大,但是付出的努力也很多。
2015年实践教学改革进一步扩大了覆盖面:我院的通信工程、电信工程以及数理提高班和卓越工程师班等16个班级同时进行进一步的教学改革实践,我们期待可以获得更好的教学效果。
[1] 李继灿,郭麦成,沈疆海,等. 计算机硬件教学与教材同步改革的思考[J]. 高等工程教育研究,2003(3):20-22.
[2] 左冬红, 张 林. “微机原理与接口技术”教学内容改革探讨[J]. 电气电子教学学报, 2012,34(3):31-33.
[3] 教育部高等学校计算机基础课程教学指导委员会. 高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009.
[4] 秦磊华,冯 丹. 计算机专业教材建设的新视角[J]. 科技与出版,2013(5): 40-43.
[5] 樊哲高. 电子信息产业如何“自主可控”[N]. 中国电子报,2012-01-13(2).
[6] 左冬红. 计算机原理与接口技术——基于MIPS架构[M].北京:清华大学出版社,2014.
[7] 左冬红. 计算机原理与接口技术——基于MIPS架构实验教程[M].北京:清华大学出版社,2014.
[8] Robert Britton. MIPS Assembly Language Programming[M].Chico, California,2003.
[9] 王 诚,薛小刚,钟信潮. FPGA/CPLD 设计工具:Xilinx ISE 使用详解[M]. 北京:人民邮电出版社,2005.
[10] David A P, John L H. Computer Organization and Design: the hardware/ software interface(4th edition) [M]. Elsevier, 2008.
[11] 袁春风,张泽生. 计算机组成原理课程实践教学探索[J]. 计算机教育,2011,17:110-114.
[12] MicroBlaze Soft Processor Core[EB/OL]. http://www.xilinx.com/tools/microblaze.htm. 2015/5/27
[13] Randal E B, David R O. Computer Systems-A Programmer’s Perspective [M]. New Jersey: Pearson PrenticeHall. 2003.
[14] 刘献君. 论“以学生为中心”[J]. 高等教育研究,2012,33(8):1-6.
[15] William S. Computer Organization and Architecture Designing for Performance (8th Edition)[M].New Jersey: Pearson Prentice Hall, 2006
[16] Barry B B. The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro Processor, Pentium H, Pentium m and Pentium 4 Architecture, Programming, and Interfacing[M]. 7th Edition New Jersey: Pearson PrenticeHall, 2006.
Practice Teaching Reform of Computer Organization and Interface Technology
ZUODong-hong,LUOJie,ZHANGLin,WANGXiao-yan
(Department of Electronics and Information Engineering,Huazhong University of Science and Technology,Wuhan 430074,China)
The fast development of computer technology has made the practical contents of the course "microcomputer principle and interface technology", be more and more unsuitable as a core course to undergraduates in information discipline. The paper discusses how to reform the contents, the teaching and assessment methods of the practice course "computer principle and interface technology". The reform should aim at accumulating the student computer system ability, and meet the industry requirement. It also introduces the result of three years’ practice in School of Electronic Information and Communications, Huazhong University of Science and Technology.
practice teaching reform; computer organization; interface technology
2014-11-06
湖北省教改研究项目(2013061)
左冬红(1975-),女,湖南双峰人,博士,讲师,主要从事微机原理、数字电子技术教学,嵌入式系统和网络流媒体传输研究。
Tel.:18171417420;E-mail:sixizuo@mail.hust.edu.cn
G 642.0; TP 301
A
1006-7167(2015)10-0187-04