基于虚拟仿真的计算机硬件实验教学体系建设研究

2022-08-09 10:02彭成潘伟民肖克来提库热西
关键词:链表电路实验教学

彭成,潘伟民,肖克来提·库热西,杨 浩

(新疆师范大学 计算机科学技术学院,新疆 乌鲁木齐 830054)

现阶段,计算机硬件相关课程在很大程度上依然在沿用基于实验箱的传统教学体系[1]。实践表明,在这种仅基于实验箱的实验教学方式下,学生学习周期长,教师指导、干预乏力,教学难度大,最终导致学生课程设计任务的完成度有限,学习获得感不足。这种培养方式显然无法满足现代社会对于大学生能力培养的要求,一套系统、完整的教学体系亟待提出。

20世纪80年代,美国研究人员将分布式交互仿真进一步拓宽,划分为虚拟仿真、构造仿真和真实仿真三大基本类型[2]。其中,虚拟仿真技术的开展进一步创建并体验了虚拟世界。虚拟仿真的目的在于构建数学模型,使得基于仿真的设计在产品研发初期阶段发挥作用,减少物理样机的数量和缩短研发周期。

我国对于虚拟仿真技术的起步整体较晚,但仍能迎头赶上。2000年,北京航空航天大学计算机系率先完成了虚拟环境描述语言(VEDL),将具体系统转化为描述脚本,通过资源管理器对脚本进行解释并规划。2006年,中科院等离子体物理研究所设计完成了聚变虚拟装配系统(FVAS),以面向普通PC 平台,通过建立虚拟装配环境进入虚拟场景,支持复杂系统装配规划、训练、演示[2],真正意义上将虚拟仿真技术推向公众平台,虚拟仿真技术能够以普通PC平台驱动的方式逐渐推广到各个领域。

1 传统教学模式存在的不足

20世纪90年代中后期,伴随着多媒体、数据库、网络以及虚拟现实等技术的蓬勃发展,国内部分高校成功将其应用至教育领域,仿真技术和基于虚拟实验的教学方式也相继走进校园。

2008—2010年,教育部组织开展了关于“虚拟实验教学环境关键技术研究与应用示范”课题研究,进一步探究了虚拟仿真实验教学方式的可行性。2013年,为强调虚拟仿真实验教学及仿真实验教学中心在现代教学中的核心地位,教育部印发了《关于开展国家级虚拟仿真实验教学中心建设工作的通知》。自此,基于虚拟的实验教学方式在各地区、各高校积极建设,逐步形成了各具特色的仿真教学实验体系[3]。

在计算机硬件相关课程的教学中,传统实验教学依然存在以下几方面的不足:

1.1 灵活性不足,实验设置机械固化

传统教学模式下,实验设定通常是根据教学内容,匹配固定的实验项目,引导学生在实验箱或电路板上搭建对应的电路,验证电路的逻辑功能。在大多数验证性实验中,学生往往只能机械地按照实验指导书的步骤来完成实验项目,无法达到设计实验的目的[4]。同时,教师在实验过程中能够起到的作用也相对有限,更多的是对实验的指导与纠正,很难引发学生更深层次的讨论学习。

1.2 创新性不足,学生创新能力提升有限

尽管传统方式在某种程度上能够锻炼学生的动手能力,但从长远的角度出发,该方式更多地限制了学生的逻辑思维与应用能力,不利于学生创新能力的培养。

1.3 开发性不足,开发共享能力有限

受限于严格的仪器适配,学生无法自定义电路搭建,实验器材功能的局限性使得学生课外的自主学习以及学习主动性大大降低[5]。

1.4 启发性不足,过于注重功能实现

受限于实验器材的初始设置,传统教学模式下的实验环境将过多的注意力放在了学生对于电路功能的实现上,轻视了对于学生工程管理能力和系统设计能力的培养。

传统实验器材及实验模式的多种弊端的显现,迫切需要一种能够适应多种功能需求,支持自定义开发,能够激发学生兴趣的教学平台及教学模式,由此基于虚拟仿真平台的教学模式应运而生。

2 基于虚拟仿真平台的教学模式

2.1 教学模式来源

教学模式是指在一定的教育思想、教学理论和学习理论指导下的,在某种环境中展开的教学活动进程的稳定结构形式。在传统的教学过程中包含教师、学生、教材三个要素。在现代化教学中,常常要利用多种教学媒体,加入“多种媒体”这一新要素后,各个元素互相关联,构成一个有机的整体,从而形成稳定的结构,该结构被称为教学模式[6]。基于虚拟仿真平台的教学模式,其教育思想及受到的启示主要来源于以下三个方面。

2.1.1 布鲁纳的认知——发现学习

布鲁纳的认知——发现学习理论对美国的传统教育产生了巨大的冲击,其掀起的结构主义教学改革在国际教育史上产生了广泛而深远的影响[7]。在强调实际的自然科学中,布鲁纳强调学生学习的主动性,重视认知的内在结构、内在动机在学习中的作用,既注重对知识的理解,又注重对学生能力的培养。基于虚拟仿真平台的教学模式因其强大的可开发性和完整的基础功能设置,构建起完整的实验系统,这有利于激发学生的学习兴趣与内在动机,引导学生主动学习。

2.1.2 皮亚杰的建构主义

建构主义学习理论强调以学生为中心,要求学生由外部刺激的被动接受者和知识的灌输对象转变为信息加工的主体、知识意识的主动建构者;要求教师由知识的传授者转变为学生主动建构意义的帮助者、促进者[6]。这正是基于虚拟仿真平台教学模式的中心基础,知识的学习并不是完全意义上的从无到有,而是在学习者已有知识的基础上不断建构的过程。基于虚拟仿真平台的教学模式在虚拟仿真平台的支撑下,让学习者在已有计算机硬件相关知识的基础上进行实验研究,依靠学习者自身已掌握的知识。在教师引导下,“支架式教学”与“抛锚式教学”贯穿始终,不断完成知识的自我建构,达到教学目的。

2.1.3 杜威的“从做中学”[8]

杜威认为,教学应当以实际生活为载体,搭建知识和学习者之间的桥梁。让学习者以具体活动为载体,将知识嵌入活动中听来的知识难以成为“自己的知识”,只有在具体活动中运用、操作的知识,才是“自己的知识”。在杜威的理论下,基于虚拟仿真平台的教学相较于传统实验箱式教学,虚拟仿真的搭建完美继承了传统操作性实验“从做中学”的“优良基因”,又降低了实验环境的要求。

2.2 仿真平台的选择

仿真平台的选择过程遵从系统设计与实现分离的原则,结合国内外同行的先进经验,最终选定Logisim[9]仿真平台。Logisim 平台的学习门槛较低、易于调试、几乎无损耗成本,同时对场地和操作人员要求较低,能够满足构建复杂数字电路系统需要,开展规模较大的设计型实验。

Logisim 平台适用于设计和仿真数字逻辑电路。目前,全球已有几百所学校在计算机硬件相关课程中使用该平台,包括美国加州伯克利分校、康奈尔大学、北京航空航天大学、华中科技大学、国防科技大学等高校。

2.3 教学模式的改进

本研究学习借鉴了华中科技大学的谭志虎团队设计开发的《计算机硬件系统设计》课程[10]。该课程为华中科技大学在中国慕课网开设的《数字逻辑》《计算机组成原理》《计算机组成与结构》《系统结构》等课程提供了实验支持。其中,《计算机组成原理》课程被评为“国家金课”。另外,谭志虎团队还在Educoder 在线实验平台提供了《数字逻辑电路》与《计算机组成原理》课程的在线实验,实现了数字逻辑虚拟实验的在线测评。在引入该实验平台的同时,根据已完成的实验设计方案对教学方法进行了针对性调整、改进,主要体现在以下几方面:

2.3.1 体系化的分层次虚拟实验教学

计算机硬件体系相关的专业课彼此独立,虽有交流但缺乏体系。例如,计算机相关专业中期衔接课程《数字逻辑电路》和《计算机组成原理》的实验存在其自身体系性过强,过渡作用不足的问题,致使其作为先修课程的衔接作用不够明显。这种教学模式在一定程度上浪费了教学资源,学生对于知识的积累与沉淀也相当有限,即便学生在其他课程中遇到了相似的概念,也很难将其与已有知识串联起来,完成知识点的衔接与知识体系的构建,融会贯通。针对类似现象,本团队以计算机导论作为开端,将计算机硬件相关课程或章节中的内容进行有机结合,环环相扣,随着实验推进将学生带入系统且完整的计算机专业知识体系当中。

本团队针对《计算机导论》《软件工程》《软件测试》《操作系统》《数据结构》等一系列专业理论课程设计了一部分验证性与演示性的实验。根据教师教学的需求差异,为课程定制开发设计性实验。多角度地设计实验,逐步提升理论课程的教学效果,这些与实践结合的理论将为后续重点建设的《数字逻辑电路》《计算机组成原理》等课程提供强有力的理论支持。图1为本团队设定的实验教学体系。

图1 基于虚拟仿真软件的实践教学体系

2.3.2 科学研究与实践教学良性互动

传统教学模式中,存在部分理论课程与实践相脱离的情况。以《计算机组成原理》为例,以往的实验教学通过在实验箱中提前设定的验证性实验来加深对个别理论内容的理解掌握。然而这种封闭的实验体系不仅在一定程度上限制了学生的想象空间,而且大多数理论教学内容在实验箱内无法开展验证性实验。

基于Logisim 的虚拟实验体系,不论是简单的组合逻辑电路,还是复杂的带有操作系统的完整的计算机软硬件系统,如冯诺依曼体系等,都可以通过该平台模拟实现。基于该平台,不仅可以满足之前基于实验箱体系的验证性实验和演示性实验的要求,还可以做综合性较强的设计性实验。

2.3.3 自编教材、自制实验方案与实验内容改革一体化建设

本研究基于现有实验条件,根据学生的实际情况,在谭志虎等提供的实验平台基础上,参照该课程教学目标,设计了符合学生的实验方案。基于此实验方案,撰写《数字逻辑电路》与《计算机组成原理》课程所需实验手册。最终,经过3轮的教学实践,结合学生在实验过程中的反馈,共设计完成21项教学实验,其中《数字逻辑电路》课程实验9项,《计算机组成原理》课程实验12 项。与此同时,根据课程目标,为《计算机导论》《软件工程》《软件测试》《操作系统》《数据结构》等课程设计了1至3项演示实验,构建了基于Logisim 虚拟仿真平台的实验体系。

2.3.4 计算思维贯穿始终

计算思维是指提出一个人类和计算机都能理解的解决方案的思维方式[11]。计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动,由分层、模式识别、抽象化、流程建设四个部分组成。

在做实验教学设计时,本团队尝试将计算思维贯穿到实验和教学的诸多环节中。在教学过程中反复强调当前的做法运用到了计算思维中的何种思维方式。例如,任何可以用计算机解决的问题都能够被分解为与、或、非等原子操作,因此任何复杂电路的建设必然会用到分层的思维。模式识别的思想则被使用在确定解决某一问题时需要完成什么功能,该功能与之前已实现的某个功能或者已有某一种组件功能相似,而流程建设即产生解决方案的过程。再比如,以虚拟实验平台代替实验箱为例,该方式利用学生的抽象思维,通过虚拟仿真平台将具象的问题解析得更加易懂,使得学生在自身认知的基础上,主动建构相关知识。

3 学生综合性实验采撷

经过两年多的打磨,如图1 所示的实验均已建设完成。基于现有课程实验,本团队引导、鼓励学生通过Logisim 虚拟实验平台设计具有一定规模的实用性电路,并基于所设计的电路开展毕业设计,参加《计算机设计大赛》等。以下为学生自主设计并实现的3套代表性电路。

3.1 电子抢答器

抢答器是通过设计电路,实现能准确判断出抢答者编号的电器。抢答器本质上是一种特殊的编码器,在设计该电路时,需要考虑测试电路的反应时间是否达到要求,不可以出现两个或多个输入端同时抢答成功的情况。图2为基于Logisim 实现的抢答器电路图。其中,2-1图为封装后的电子抢答器测试电路,2-2图为电子抢答器的实现电路。

图2-1 电子抢答器测试电路

图2-2 电子抢答器的实现电路

作为编码器的一种,抢答器像优先编码器一样仅输出唯一输入引脚的编号。不同的是,优先编码器预先确定了输入引脚的优先级,并遵照该优先级决定要输出的输入引脚编号,而抢答器则是以“先到先服务,过河必拆桥”的原则确定要输出的输入引脚编号。

根据以上分析,抢答器电路的设计从功能实现角度分析,分为以下3个步骤:

(1)用优先编码器采集抢答者的序号;

(2)将采集到的编号保存至一个寄存器内;

(3)锁死寄存器,不允许有新的序号输入进来。

为了保证得到持续的屏蔽信号,需要在第3步提到的信号与寄存器之间放置一个D触发器,只要接收到该信号,D触发器的输出值就会关闭寄存器输入使能端,进而防止其他值输入寄存器。

完成上述功能后,添加重置功能。为模拟真实的抢答环境,学生用python 调用pyautogui 编写了自动化测试程序并对抢答器进行了功能测试。

最终,在各按键的点击间隔时间设置为1毫秒的情况下,重复1000轮测试,测试的准确率为100%,达到实验目的。

3.2 秒表计时器系统

秒表计时器作为常用的计时工具,其功能结构简单,经过适当的逻辑电路组件的拼装,便可以很快实现简单功能。这使得秒表计时器成了很好的数字逻辑电路教学案例。

该案例由学生自主设计实现并申请软件著作权:《秒表计时器电路》(证书号:06368722,登记号:2020SR1046086)。秒表计时器的主电路如图3所示。表1中给出了计时器电路实现过程中所用到的所有子电路模块与每个模块所实现的功能。

图3 秒表计时器

表1 秒表计时器子电路模块功能清单

基于Logisim仿真平台设计的秒表计时器实现了以下3个基本功能:

(1)开关按钮控制计时的开始和结束;

(2)存储按钮控制若干个时间节点的存储与显示;

(3)重置按钮控制当前时间和存储空间的重置。

本软件设计需面向学生,本质上是一个教学案例。这就使得设计必须兼顾基础性和挑战性。这两个特性决定了电路系统应具备基础功能和电路的基本封装标准。因此应遵循以下设计原则:

(1)基础性。电路系统的底层采用门电路设计,要求学生不得使用任何装配好的组件,即每一个复杂电路都应该由自己设计的子电路组成。

(2)挑战性。由于该软件本身就是一个教学案例,所以设计时需要做到“保证学生学习动机的前提下,最大程度上挖掘学生的潜力”。符合维果斯基提出的“最近发展区”原则,即每个模块的实现既合理超出学生现有知识水平,具有一定的挑战性,又不至于难度大到无法逾越。

(3)实现核心功能。针对本软件只涉及秒表计时器的计时、存储、重置三个最主要的功能,无须添加辅助时钟、闹钟等扩展功能,避免冲淡核心功能。

(4)高内聚、低耦合[12]。秒表计时器的用户所接触到的接口应尽可能简单实用,将实现的功能封装到各子电路中。该部分强调计算思维中的分层思维,培养学生具备的核心能力之一,即将一个复杂问题化解为多个易解决的简单问题。

3.3 链表结构演示实验

链表是一种物理存储单元上非连续的存储结构[13]。链表由一系列数据结点组成,每个结点包括两个部分:一部分为存储数据元素的数据域,另一部分为存储下一个结点地址的指针域。

在教学过程中,假设利用一个链表说明怎样存储并遍历1 至7 的自然数,通常情况下,教师在教学过程中会通过一张链表的示意图如图4.

图4 链表结构示意图

该示意图虽然能够在一定程度上表示出每个节点的基本结构和各节点之间的相对关系,但是仅从该图出发,很难获取链表在内存中存储的状态。为此,学生设计了基于Logisim平台的链表存储结构演示实验,其表示情况如图5所示。

图5 链表在内存中的表示

该电路采用的核心组件是数据位宽为7,地址位宽为4 的随机存储器组件(RAM)。当地址位宽为4时,RAM 的寻址范围为16 个单元地址。通过Logisim 的RAM 组件,可以直观地观察到16 个单元地址内存储的数据。每个数据单元存储的数据又分为数据部分和地址部分,其中数据部分占3位,可表示0 至7 的8 个数字;地址部分占4位,可寻址16个地址单元。

在主电路中点击添加按钮,子电路首先会获取当前节点应该保存的数据(3位),随后随机生成下一个数据应该保存的地址(4 位),最后将这两个数据合并并保存至上一个节点地址域所指定的位置。由于当前节点的保存位置应由上一个节点指定,因此开始时需要保留一个节点用于保存首个有数据的节点,该节点即为数据结构教学中的“头节点”。添加完7 个节点后,即可通过点击遍历按钮对链表内的每个节点按序进行遍历。在这里仅需要获取头节点的地址,便可完成对链表的遍历。

经过若干版本的迭代,学生设计并实现的该链表结构电路已经成功用于《数据结构》与《计算机导论》课程的教学演示中。

学生利用虚拟仿真平台,自主设计实现电路能够有效帮助学生内化、迁移应用计算机相关知识。清华大学本科生团队在“龙芯杯”全国大学生计算机系统能力培养大赛处理器设计赛获得特等奖,该团队学生在FPGA开发板上成功实现了一个双发射8级流水线处理器,支持运行最新的Linux操作系统,并驱动VGA、PS/2等板上外设。事实上,硬件的学习、应用乃至独立设计过程中,引导学生实现虚拟仿真实验的设计尤为重要,建立良好的基于仿真的计算机硬件实验教学体系,能够加速学生对于专业技能的掌握与核心素养的形成。

4 结语

从实验教学最新发展趋势来看,因地制宜地开发虚拟仿真教学实验,开展相应课程的教学模式体系建设是新时期高校本科人才培养中的一个重要任务,也是未来实验教学发展的必然趋势。文章从灵活性、创新性、开发性以及启发性四个角度分析了传统教学模式下存在的不足。从布鲁纳的认知——发现学习、建构主义中知识的构建、杜威的“从做中学”等方面提取实验教学体系建设中教学模式的理论支撑,并对传统实验教学模式做出改进,提出了基于虚拟仿真平台建设实验教学体系的详细改革方案。采用Logisim仿真平台,借鉴谭志虎团队课程开发成果,结合本校学生特点,设计完成计算机硬件系列相关实验及相关教材。最终新疆师范大学计算机科学技术学院初步完成了基于Logisim 平台的计算机硬件相关课程实验体系的建设工作,并采撷了优秀学生作品对教学改革的阶段性成果进行了展示。

从目前来看,本团队基于仿真的计算机硬件实验教学体系建设的研究与改革取得了阶段性成果,但仍处于起步阶段,未来尚有大量工作需要开展。

猜你喜欢
链表电路实验教学
电路的保护
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
解读电路
基于二进制链表的粗糙集属性约简
巧用立创EDA软件和Altium Designer软件设计电路
跟麦咭学编程
基于MATLAB模拟混沌电路
基于MTF规则的非阻塞自组织链表