一体化教学实验体系初探
2009-11-02高小鹏龙翔
高小鹏 龙 翔
摘要:本文在全面分析计算机学院核心课程体系存在问题的基础上,提出了围绕“数理逻辑”、“数字逻辑”、“计算机组成原理”、“编译技术”、“操作系统”等核心课程的一体化教学与实验体系,从而建立一种基础学习与探索创新相结合、理论学习与工程实践相结合的新型培养模式。目前,该教学实验体系部分内容已在计算机学院试运行,达到了预期效果。
关键词:核心课程;教学与实验体系;一体化教学
中图分类号:G642 文献标识码:B
在经历了几十年的发展后,无论是万亿次大型计算机系统还是小型嵌入式计算机系统,一个计算机系统的基础构成大致可以分为硬件、操作系统及应用程序三部分。在现代计算机应用中,为了构造一个功能完备、性能优良的计算机系统,设计人员必须综合考虑应用程序行为、编译优化、操作系统、处理器等各个环节,特别是这些环节之间的相互作用关系。与此相对应,编译器、操作系统及计算机硬件(尤其是处理器)三部分已经形成了如图1所示的密切配合、相互影响、彼此渗透的紧密关系。为此,现代计算机系统设计人员必须掌握软硬件一体化设计方法。
有鉴于此,我们认为合格的计算机专业人才应能够深刻理解计算机系统的各组成要素及其工作原理,初步掌握现代计算机软硬件系统设计和开发的新方法与新工具,建立软硬件一体化设计的系统观,掌握计算机整体结构,并具备一定的工程能力和团队精神。
1背景及存在的问题
随着计算机技术的普及,越来越多的高校毕业生进入IT领域工作。这些人中不仅有计算机专业的毕业生,也有大量其他非计算机专业人员。在与这些非计算机专业人员的竞争中,计算机专业的学生并未表现出明显的专业优势。
造成这一现象的原因是什么?带着这个问题,我们对计算机学科核心课程,包括“数理逻辑”、“数字逻辑”、“高级语言程序设计”、“数据结构与算法”、“计算机组成原理”、“计算机接口与通讯”、“EDA技术”、“编译技术”、“操作系统”、“软件工程”及“计算机系统结构”等,重点在教学内容及课程之间的衔接关系两个方面进行了全面深入的分析,同时对国内外20多所研究型大学特别是Berkeley、MIT、CMU等几所著名高校的课程设计和清华、北大的课程设计进行了调研。文章内容:
调研结果表明,当前我院本科课程体系所面临的主要问题是各门课程各自独立、封闭、完备,各课程知识体系间缺乏相互承接,不具备足够的完整性。具体体现在:
(1) 不同课程知识内容难以建立相互关联关系。当前课程数量较多,涉及的知识内容广泛。但由于整个课程体系缺乏一体化设计的思想,因此各门课程知识点相对独立、各成体系,缺乏良好的衔接,部分课程在知识内容讲授上甚至存在一定的重复。
(2) 实验环节相对薄弱。主要体现在两个方面。首先是缺乏足够的实验深度即现有实验体系中外特性体验实验偏多,而功能设计类实验不足;其次由于部分课程的实验方法、实验平台及实验工具未能及时更新,因此学生无法掌握当前流行的设计方法和工具,不利于今后的工作和学习。
(3) 学生难以掌握计算机及系统软件整体核心概念。受教学内容的影响,核心课程的实验内容相互间缺乏足够的连贯性,致使学生无法形成完整的整机概念,难以理解软硬件一体化设计思想。此外课程门数过多占用了过多的课时,导致实验环节缺乏足够的课时。
因此,完善课程体系建设,加大课程实验环节的深度和难度,构建一体化的教学实验体系,将更多的工程实际问题引入教学实验,成为解决这一问题的关键。
2指导思想
在计算机学院的支持下,经过相关教师的多次讨论,形成了一体化教学实验体系改革的总体思路:
(1) 简化课程门数,突出课程教学深度。通过简化课程门数,增加核心课程的课时数(尤其是实验环节所需的课内课外时数),从而进一步突出教学深度,使学生对计算机系统的各组成要素能够更加深入透彻的理解。
(2) 理论与实践相结合,突出实验环节。课堂教学与实验教学密切配合,通过配置各类不同难度的实验,以及在实验中使用流行的工具设计软件与硬件环境,不仅使得学生掌握新方法与新工具,更为重要的是使得学生对计算机系统的感性认识与理性认识得到增强与提高。
(3) 通过小组实验环节,培养团队能力。通过分组实验环节(每组成员3人为宜),培养学生在现代以团队为基础的工作环境中能够完成一个复杂工程系统包括构思、设计、实现及运行的全流程,初步具备实现复杂工程系统所需要的工程能力。
本次教学实验体系改革共涉及5门基础核心课程,包括:“数理逻辑”、“数字逻辑”、“计算机组成原理”、“编译技术”、“操作系统”。我们拟以MIPS指令系统为基础,让学生在本科学习过程中自主开发一个可实际运行操作系统与应用程序的小计算机系统,使学生能够掌握计算机系统的各组成要素,深刻理解其工作原理,学习计算机软硬件系统设计和开发的新方法与新工具,具备计算机专业人员的基本素质。
3目标及规划
3.1总体目标
通过对5门基础核心课程的教学与实验环节的一体化设计,综合设计教学与实验内容,构建系统化的实验体系,使得学生有能力设计一台功能型计算机、研发一套编译器和一套操作系统,最终形成一个相对完整的功能型计算机系统。
我们期望通过本实验体系的系统化训练后,学生不仅能够建立计算机系统观,而且能够培养工程实施经验和能力,并锤炼团队合作精神。
3.2以一体化实验体系为核心的基础核心课程体系
为了本次教学实验改革的指导思想,形成一体化的教学实验体系。具体方法是,围绕完成一个功能型计算机系统所必需核心知识,突出重点,将目前开设的“数理逻辑”、“数字逻辑”、“高级语言程序设计”、“数据结构与算法”、“计算机组成原理”、“计算机接口与通讯”、“EDA技术”、“编译技术”、“操作系统”、“软件工程”及“计算机系统结构”等课程综合出“数理逻辑”、“数字逻辑”、“计算机组成原理”、“编译技术”及“操作系统”等5门基础核心课程,并形成基础核心课程体系。其他课程则以此为基础,分别形成面向计算机软件与理论、计算机系统结构和计算机应用三个方向的专业课程体系。计算机学院全体本科生必须学习全部5门基础核心课程,并根据各自的方向研修相应的方向课程体系。
通过5门基础核心课程的学习,计算机学院本科生将能够深入的理解计算机各组成要素的构成及其工作机理,建立正确的整机观念,树立软硬件一体化设计思想,初步具备从事工程设计的能力和团队精神,为今后进一步学习各方向课程打下坚实的基础。
在5门基础核心课程体系中,“数理逻辑”以布尔逻辑为基础,使学生掌握根据需求采用逻辑描述的方法和能力;“数字逻辑”讲授了数字电路的基本知识、基本概念,以及数字系统常规基础部件的基本原理;“计算机组成原理”讲授了包括处理器、指令系统在内的计算机硬件基本组成及其工作原理,系统介绍计算机组织的设计和基本框架;“操作系统”讲授了操作系统的4大组成及其工作原理,以及并发性、共享性、虚拟性等操作系统的基本特性;“编译技术”讲授了编译器设计的主要主题,包括词法分析、语法分析、中间代码生成、代码生成、代码优化等。
4教学实验体系规划
本规划不仅对基础核心课程的教学内容进行一体化整合,更为重要的是对其实验环节进行一体化设计,强调5门课程的教学内容与实验内容相互衔接、密切配合,形成前后关联、有机联系的系统化教学与实验体系。5门基础核心课程的依赖关系以及实验体系关系如图2所示。
从上图可以看出,此方案涉及的5门基础核心课程在教学和实验内容上形成紧密衔接关系:“数理逻辑”与“数字逻辑”通过布尔代数形成知识关联;“数字逻辑”中所讲授的数字系统基本知识和设计开发的硬件基础组件将成为“计算机组成原理”教学内容和实验内容的基础;“计算机组成原理”课程开发的包括CPU在内的计算机硬件将为“编译技术”提供真实的目标指令系统,为“操作系统”提供真实的计算机平台。在基础核心课程体系的实验环节中,硬件描述语言和EDA工具也有机的贯穿到整个实验体系中,并且伴随课程难度和实验难度的不断深化,硬件描述语言和EDA工具的应用也随之不断深化、循序渐进。
为实现开发一台相对完整的功能型计算机系统这一基本目标,本项目关于5门基础核心课程实验体系的基本思路是:
以数理逻辑中的命题逻辑为理论基础,描述数字电路的功能部件;
以为布尔代数基础,借助EDA工具设计和开发数字逻辑部件;
以MIPS指令系统为基础,设计和开发计算机核心系统;
以MIPS指令系统为目标语言,设计和开发编译系统;
以自己研发计算机为环境,设计和开发操作系统。
上述基本思路贯穿5门基础核心课程的实验环节,每门课程实验环节的具体思路是:
“数理逻辑”:侧重布尔代数课堂教学,通过实验环节使得学生掌握根据需求建立逻辑描述的方法和能力,包括布尔逻辑及其变换、真值表的逻辑表示以及逻辑范式表示。
“数字逻辑”:使得学生基于“数理逻辑”所建立逻辑描述,借助于HDL(硬件描述语言)和EDA软件工具,完成包括寄存器、加法器、状态机等在内的一系列计算机基础硬件组件的设计和开发,为构造更加复杂的计算机硬件功能部件打下良好的基础。
“计算机组成原理”:在“数字逻辑”实验环境所完成的各类硬件基础组件的基础上,同时利用软件模拟器和HDL作为主要的实验手段,使得学生深入理解处理器内部工作机理,掌握汇编级程序设计技术及技巧,并以此为基础利用HDL实现指令系统的子集及部分相应的计算机功能部件,完成一个功能型计算机硬件的核心部分,并能在其上运行简单的汇编程序。
“编译技术”:通过实验环节,一方面丰富“计算机组成原理”中所完成功能型计算机硬件的指令系统,进一步完善该计算机硬件功能;另一方面为让学生了解编译器的构造技术,以及如何在裸机上实现对高级语言的支持,最终能在自行开发的计算机上运行用高级语言开发的程序。
“操作系统”:通过实验环节,一方面进一步丰富和完善该功能型计算机的硬件功能,另一方面学习系统软件开发方法和工具链,开发和移植一个简化的操作系统,最终构造出一个相对完整的计算机系统。
我们认为,学生在经过5门核心课程实验体系的系统化训练后,不仅将具备能够设计和开发计算机系统的综合知识和综合能力,而且能培养团队合作精神,同时丰富工程实施经验和能力,从而使得我院培养的计算机专业毕业生具有足够的核心竞争力,为今后的工作和深造打下深厚的基础。
由于开发一个实际的计算机系统难度大和工作量多,为了保证教学效果,我们采取了循序渐进、层次化、模块化的设计思想。首先为学生提供一个基础系统,实现方案实施所需的最重要及最基本的部分。在此基础上,学生可以再进一步扩充其他功能,进而实现一个完整的系统。这种新的实验模式在保证教学效果的基础上,有利于充分发挥学生创新潜能。
5教学实验体系的特点
通过对5门基础核心课程进行综合设计,构建知识内容前后衔接、实验环节密切配合的一体化教学与实验体系。通过深化课堂教学与实验,使学生深刻理解计算机系统各构成要素及其工作机理,加深对计算机系统的理解,建立软硬件一体化整机概念;并在参与工程设计开发过程中,学习现代计算机的基本设计理念及设计思路,基本掌握先进的设计方法和设计工具。本方案的特点如下:
一体化设计的教学与实验体系。综合考虑、统筹设计5门基础核心课程的教学及实验体系,使各门课程知识内容及实验环节相互衔接、密切配合。
统一的实验平台。在统一的实验平台上,不仅可以为各门基础核心课程独立开展实验环节,而且可以以各基础课程的实验为基础,形成综合集成实验,最终实现一台完整的功能型计算机。
新型培养模式。在一体化设计的教学与实验体系框架范围内,允许教师与学生在完成基础的教学与实验环节前提下,开展提高性知识学习与创新性科学实验,并通过参与实际系统设计开发建立工程实施能力,从而建立一种知识学习与探索创新相结合、理论学习与工程实践相结合的新型培养模式。
6教学实验体系实践
综合多种前提因素后,我们有选择性地在“数字逻辑”、“编译技术”两门课程中实施了新的教学实验内容的试运行,并取得了较好的教学效果。
2008年秋季对“数字逻辑”课程及实验进行了全面改革,设置了17个实验,分为基本实验和选做实验两个部分。以硬件描述语言、EDA工具、FPGA芯片为设计和实验手段,学生在完成数字逻辑基本器件的设计和仿真,然后下载到FPGA芯片中进行验证。经过实验环节,学生完成了包括译码器、加法器、算术逻辑运算单元、寄存器、状态机等在内的CPU主要功能部件的基础组件的设计和开发,为后续“计算机组成原理”实验中应用这些基础组件构造CPU奠定了坚实基础。
目前“编译技术”实验课已全部按照新实验大纲的要求进行。2008年45%共计91名同学选取了本次教改新增内容作为实验目标,其中达到优秀程度10人。另有30名同学在实验过程中自愿降低难度,按照原实验大纲要求完成实验。2009年65%年共计120名同学选取了本次教改新增内容作为实验目标。
以新的教学实验体系为指导,上述两门课程还分别形成了《数字逻辑实验教程》与《编译技术课程设计》两本实验教材,并将很快正式出版。
7结束语
虽然只在“数字逻辑”和“编译技术”两门课程上实施了新的教学实验体系,但通过上述两门课程实践结果的调查来看,我们认为改革是合理的。新的教学实验体系加深了学生对计算机构成的感性认识和理性认识,培养锻炼了学生将理论知识与实际应用相结合的工程实施能力,为构造更加复杂的计算机系统打下了良好的基础。
我们将在已有理论及实践工作的基础上进行深入总结,进一步完善一体化教学实验方案细节,使之尽早全面服务于本科教学。
在本文发表之际,一体化教学实验体系的第二版实验平台(包括MIPS功能型计算机及其模拟器、编译器、操作系统及实用工具等)已在教师的指导下由本科生设计开发完成,很快将投入教学实验应用中。
最后,作者衷心感谢所有为新教学实验体系贡献了智慧和汗水的教师们。