朱贵宪
(安阳工学院,河南 安阳 455000)
计算机类专业包括计算机科学与技术、网络工程、软件工程、物联网工程等专业,其中计算机科学与技术专业在一些工科院校中开设历史较长,是相对比较成熟的专业,但是在制定专业人才培养方案过程中,对于硬件类课程如何定位?需要开设哪些课程?目前仍然存在一些不同的看法,由于各高校对课程教学质量的严格把控,要求越来越规范,任课教师更加注重讲授好自己所带的课程,至于各硬件类课程之间其内在联系是什么样的?各课程之间的知识点是如何递进、相互支撑的?一些任课教师对此类问题并不太关注,较少进行深入的思考,因此,本文参考计算机类教学质量国家标准,选择计算机科学与技术专业人才培养方案为研究对象,认真梳理了计算机硬件基础类课程应该开设的科目以及各课程当中重要的知识点,分析了各门硬件类课程之间知识点的衔接与递进关系,较好的回应了上述问题,为今后更好的开展计算机硬件基础类课程的教学提供了参考意见。
计算机作为一个复杂的系统,由硬件系统和软件系统两个部分组成,硬件是基础,软件是灵魂。没有硬件基础,灵魂无法依托,没有软件控制,计算机无法完成自行计算。软硬件相互依存,缺一不可,深入学习计算机专业,必须学习一定量的硬件知识,但是只重视硬件学习,忽视软件学习,属于轻重倒置,反之,只重视软件学习,彻底放弃硬件基础知识的学习,则不能全面了解和认识计算机系统,影响后续专业水平的提升。根据计算机学科专业发展方向的不同,适当选取一定量的硬件基础课程进行学习研究,是很有必要的。同时也符合计算机专业人才培养方案中宽口径、厚基础的培养模式。
2018年1月30日,教育部公布《普通高等学校本科专业类教学质量国家标准》,参考其中的计算机类教学质量国家标准,根据计算机类专业知识体系和核心课程体系的建议,对计算机科学与技术专业核心课程体系中硬件类课程进行抽取,抽取结果如表1所示。
表1 计算机科学与技术专业核心课程体系中的硬件类课程
根据表1抽取结果可以看出,在计算机科学与技术专业核心课程体系中,都安排有2至4门硬件基础类课程,总学时约为150至220学时。硬件类课程具体应该开设哪些课程,还是要根据不同院校计算机专业的专业特色、拓展方向来决定,计算机类教学质量国家标准中既提出了基本要求和参考标准,又提供了多种方案供大家选择。
多数高校根据这个标准,在计算科学与技术专业人才培养方案中安排的硬件类课程主要有:电路与电子技术,数字逻辑,计算机组成原理,计算机体系结构等,这些课程合起来称为计算机硬件基础课程群,在计算机专业人才培养方案中,对硬件类课程的排课要求是坚持以够用为原则,门数不宜太多,学时也不宜太长,能够支撑后续专业课程的学习即可。
参考普通高等教育本科国家级规划教材,汇总计算机科学与技术专业硬件基础类课程中的主要章节及核心内容,结果如表2所示。
表2 计算机科学与技术专业硬件类课程主要章节及核心内容
根据表2提供的内容,既可以了解和分析各门课程的主要章节及重要知识点,也可以对相似课程进行比较,找出它们之间相同的知识点与不同的知识点,以便在制定人才培养方案过程中合理选择与取舍相似的课程,下面选择几门相似课程进行分析探讨。
通过比较可以看出,两门课程的知识点大部分相同,但有少数知识点不同,两门课程的异同点如表3所示。不同之处在于:在数字电子技术里面,各教材都讲到了脉冲波形的产生和整形,数模转换与模数转换等内容,在数字逻辑课程里面,脉冲波形的产生和整形,数模转换与模数转换往往作为选学内容,此外,数字逻辑课程里面往往还增加了硬件描述语言,数字系统设计等内容,以便为后续某些专业课程(如EDA技术及应用)打基础。从专业选修的角度来说,数字电子技术往往开设于电子信息类专业,数字逻辑课程多数开设于计算机类专业。
表3 数字电子技术与数字逻辑课程的区别
计算机体系结构是计算机组成原理的后续课程。两门课程既有区别,又有联系,如果把构建一个计算机系统比作建造一座房子的话,计算机体系结构如同建造房子的图纸,负责基本功能框架的设计,计算机组成原理负责工程的具体施工,比如建筑材料的购买与房屋的搭建,两座房屋外观相似,功能相似(属于结构问题),但使用的建造材料(属于组成问题)不一定相同,工程造价也可能有比较大的差别。使用高级语言编程的程序员类似于一般用户,关注的是房子居住舒适度,各项功能是否满足,系统运行是否正常,至于功能是怎样实现的(比如热水器,燃气灶等工作原理与过程)则是忽略的。计算机系统中,是否具备某项功能(指令系统功能设计),属于计算机结构问题,该功能是如何实现的(每一条指令的实现过程),则属于计算机组成问题。
通过对上述各课程的分析,可为计算机硬件基础类课程的选课和排课提供参考,有利于更加合理的制定计算机科学与技术专业人才培养方案。
电路分析基础、模拟电子技术基础、数字电子技术基础(或数字逻辑)皆属于计算机类专业的专业基础课程,根据专业方向和学时安排的需要,有的高校把上述三门课程合并成一门课程开设,称为计算机电路基础(或称计算机电子电路技术),有的高校把上面三门课程安排成两门课程开设,称为计算机电子电路技术——电路与模拟电子部分和计算机电子电路技术——数字电子技术部分,也有部分学校开设电路分析基础和电子技术基础两门课程(把模拟电子技术和数字电子技术合并为电子技术基础课程)。开课顺序是先学习电路分析基础,再学习模拟电子技术基础,最后学习数字逻辑(或数字电子技术基础),上述课程学过之后,可进行计算机组成原理和计算机体系结构等后续专业基础课程的学习,一般情况下,这些硬件类课程应该安排在大一、大二两个学年,进入大学三年级后,开始专注于专业课程的学习,各门硬件类课程开课顺序如图1所示:
各硬件类课程依靠核心知识点相互关联、前后支撑、逐步递进,电路分析基础知识点对模拟电子技术课程起支撑作用,模拟电子技术知识点对数字电子技术课程起支撑作用,电子技术基础中的知识点对计算机组成原理、计算机体系结构课程起支撑作用,各门课程之间的支撑关系如图2所示。
随着学习的深入,可以发现,硬件类课程之间的支撑关系不是一些知识点简单无效的重复,而是知识的逐步递进、融合与延伸,有些课程知识点之间存在着直接支撑,如某些硬件类课程之间就存在直接支撑关系,有些课程知识点之间存在着间接支撑,如某些软件类课程和硬件类课程之间就有可能存在间接的支撑。这里仅以模拟电子技术与数字电子技术课程(合称电子技术基础)中部分章节对计算机组成原理课程的直接支撑作用为例,来说明电子技术基础课程中的知识点对计算机组成原理课程的支撑作用,这几门课程之间依靠知识点构筑起的支撑关系如图3所示:
图1 硬件基础类课程开课顺序
图2 硬件基础类课程之间的支撑关系
图3 电子技术基础知识点对计算机组成原理课程的支撑作用
熟悉了各课程之间知识点的支撑关系,就可以从更高的视角(由平视各门课程变为俯视整个课程体系)来组织教学,既能看到单一课程的独立性,也能看到各门课程之间的关联性,从而做到有的放矢,重点突出,有利于教学质量的提高。
单片机原理及应用是计算机科学与技术专业的一门专业课,融合了硬件知识、软件编程、传感器、电子测量等诸多知识要素。这里以单片机原理及应用这门课程当中一个简单的应用系统(如图4所示)为例,探讨硬件基础类课程对专业课程的支撑作用。
该单片机应用系统的作用是:当按键开关S2按下时,蜂鸣器发出音乐报警,同时LED也随之闪烁。从系统硬件组成(或元器件组成)来看,里面包含了电阻、电容、开关、晶振,PNP三极管(放大电路原理),发光二极管、蜂鸣器,电源,要想熟悉这些部件的作用及工作原理,就需要学习并掌握电路分析和模拟电路等课程的知识,从更深入的角度来分析理解单片机原理及应用这门课程,还需要掌握数字逻辑,计算机组成原理等课程当中的知识,同时从软件角度来说,需要掌握汇编语言和C语言等编程语言。
图4 单片机应用系统示例
利用硬件基础类课程知识点的关联性及其前后课程的支撑作用,可探索实施模块教学,其优点在于:首先,模块化教学从专业整体视角来看待每门课程在人才培养方案中所起的作用,易形成专业知识的系统化,避免知识的碎片化,其次,模块化教学可以有效利用教学学时,提高学习效率,减少重复学习某些相似的知识内容,比如数制与代码模块,好几门课程都有涉及,有的在大学计算机基础里面讲到,有的在计算机导论里面讲到,有的在数字电子技术基础(或数字逻辑)里面讲到,有的在计算机组成原理里面讲到,之所以上述课程都设立这样一个章节,是因为各教材作者希望保证每门课程的完整性和独立性,所以造成了专业课程体系结构中知识点的冗余,在模块化教学中,则可设立一个独立的模块进行学习。为此,在硬件类课程学习过程中,打破课程界限,以有利于计算机类专业人才培养为根本原则,把计算机硬件课程群划分为几个模块进行学习,其中每个知识模块的知识点如表4所示:
表4 知识模块及相应知识点
路分析模块,数制与代码模块,逻辑电路模块,计算机组成原理模块,汇编语言模块,接口技术模块,共七个模块,可安排2到3个熟悉相关模块的教师进行教学,教学过程中,要注重实践教学,保证教学质量。
通过上面的分析可以看出,计算机类专业硬件基础课程群主要包含电路与电子技术基础,数字逻辑,计算机组成原理,计算机体系结构等课程,根据每个学校的专业特色,科学制定人才培养方案,按照课程之间的支撑关系,合理安排若干门硬件类课程,每门课程的学时做到数量适中,并保留足够的实验学时。教学过程中,任课教师之间要勤于沟通,重视各门课程之间知识点的衔接,做到不重复、不遗漏重要知识点,加强实践教学力度,不断总结教学经验,逐步探索实施模块化教学,经过师生的共同努力,扎实做好硬件基础类课程的教学,为后续专业课程的学习打下一个良好的基础。