当前位置:首页 > 作文大全 >

普通高校计算机专业嵌入式方向的教学探讨

发布时间: 2022-03-24 09:23:17 浏览:

摘要:分析普通高校计算机专业中嵌入式系统课程教学中存在的问题,力图找出这些问题存在的内在原因;分析普通高校计算机专业学生的知识结构特征,指出该知识结构对于嵌入式系统课程学习的利弊。从嵌入式系统课程所需基础知识、嵌入式系统的硬件课程教学、软件课程教学以及实践课程建设4个方面总结如何让学生更好地学习和掌握该门课程知识的方法。

关键词:嵌入式系统;知识结构;课程体系规划;教学工具语言;实验课程建设

0 引言

在普通高校的计算机专业中,嵌入式系统是一个比较新的方向,有的学校可能才开设了几年。嵌入式系统课程的设置适应了当前计算机技术发展和市场的需求,但是在教学实践中也存在一些问题,主要包括以下3方面。

(1)该课程在整个计算机专业课程体系中的定位。传统的计算机专业课程被分为硬件和软件两大类。由于嵌入式系统牵涉较多的硬件知识,很多学生将这门课程简单地理解成一门硬件专业课,加上当前普通高校计算机专业中普遍存在“轻硬重软”现象,影响了学生对于该课程的学习。

(2)如何进行嵌入式系统课程教学。由于嵌入式系统几乎牵涉到计算机专业各个方面的基础知识,很多学生觉得它太杂乱,甚至有无从入门的感觉。

(3)教学工具的选择。嵌入式系统是一门实践性很强的课程,如何选择合适的实验工具对该课程的教学非常重要。

1 普通高校计算机专业学生的知识结构分析

近年来,高校扩招所带来的各种影响越来越突出,其中一个重要的影响就是高等教育从精英教育转变为大众教育。“能上大学的学生都是好学生”,这个现象已经一去不复返。因此,对于大多数非名牌的普通高校,入学学生的素质参差不齐,而且有很大一部分学生的知识基础可能达不到“理想”水平。

计算机专业是大多数普通高校都设置的一个专业,自然也受到了很大影响。很多教师感慨学生一年不如一年,难于教学。当前普通高校计算机专业学生的基础知识结构有以下特征。

(1)高等教育的普及化使得一部分基础较差的学生也可能被普通高校录取,但这给学生高校阶段的学习带来了不小的困难。这部分学生在中学阶段学习就不很好,到了高校学习阶段,面临着比中学阶段更为复杂的学习任务,学习信心更加不足。计算机专业中嵌入式方向课程的学习需要较好的理工科知识基础,这使得一些学生产生畏难情绪,甚至一部分学生采取破罐子破摔的态度。

(2)中国特色的高考制度使得很多中学生的学习是单纯应付高考的。所有中学课程的学习都在教学大纲范围内进行,其主要课程的知识架构是封闭的。一部分学生进入大学后仍然习惯于学习封闭知识架构的课程,如高等数学、普通物理等公共基础课,或者是一些理论性很强的专业基础课;而嵌入式方向的计算机专业面向实践,涉及各方面知识高度发散的课程,使得很多学生甚至是一部分成绩很不错的学生学习起来感觉难以入门。

(3)由于高考制度的变革,高中生的文理界限正在逐渐取消,这本身是一种进步,但是对计算机专业的教育而言,却带来了新的问题。一些计算机专业班级的学生在高中阶段都没有学过物理和化学,这给其学习计算机专业中具有明显工科特征的嵌入式方向课程带来不少的困难。

针对以上普通高校计算机专业学生的知识结构特点,笔者从嵌入式系统的理论和实验教学两方面分析更有效的教学方法。

2 嵌入式系统的理论教学分析

2.1 嵌入式系统课程体系的规划

在普通高校本科计算机专业的各个方向中,嵌入式方向的理论课程是知识面最广、架构最复杂的课程之一。对嵌入式系统课程的各个基础课程、专业课程进行合理有序的安排是课程建设成功的必要条件。

嵌入式系统的基础课程分为硬件基础课程和软件基础课程两方面。硬件基础课程包括数字电子技术、计算机组成原理、微机接口技术。数字电子技术是计算机所有硬件课程的基础,在传统计算机专业的教学中,还设置了模拟电子技术课程。笔者在多年的计算机专业课程教学中发现,除了运算放大器知识外,其他模拟电子技术的知识很少被使用,因此在计算机专业课程设置很紧张的背景下,我们将数字电子技术和模拟电子技术合并成一门课,以数字电子知识为主,主要论述模拟电子部分的运算放大器原理。

由于计算机专业课程设置紧张和当代微机技术飞速发展,部分高校的计算机专业将微机接口视为“鸡肋”。笔者认为微机接口技术课程对于学生理解计算机各个部分的工作原理、有机统合软硬件知识、掌握各种计算机外部设备,特别是把握当前流行的数码产品和计算机进行信息交换的方法等非常有益。我们将微机接口技术课程设置为选修课,规定在学习嵌入式系统课程前必须选修微机接口技术课程。

软件基础课程包括C语言、汇编语言、数据结构、操作系统。C语言在嵌入式课程中的重要性不言而喻。计算机专业其他方向的课程已经越来越少地使用C语言,但嵌入式方向中的编程主要还是使用C语言。现在高校中学习的汇编语言大多是X86系列的宏汇编,本来是针对台式机的,并没有使用在嵌入式系统中,而且用的越来越少。然而,完整地学习一门汇编语言对于嵌入式系统课程的学习非常有益。

部分学生简单地认为嵌入式方向是计算机专业中一个偏硬的方向,与数据结构没有多大的关系。实际上,当前的嵌入式系统编程越来越复杂,所使用的数据结构也越来越复杂,和当初简单的单片机程序设计已经有天壤之别,因此数据结构也是必须的基础课。当前主流的复杂的嵌入式系统,无不是带有操作系统的系统,因此掌握操作系统的基本知识也非常重要。

嵌入式系统的专业课程分为单片机原理及技术、嵌入式系统原理及其应用、嵌入式操作系统3门课程。单片机原理及技术是计算机专业一门传统的专业课程,在嵌入式系统这个概念提出前,就已经设置了这个课程。单片机的开发可以说是嵌入式系统开发的萌芽,它与当前流行的ARM-LINUX嵌入式系统有着相通之处。我们在教学中发现,大多数学生直接学习ARM-LINUX嵌入式系统比较困难,而从单片机人手再学习ARM-LINUX嵌入式系统相对容易。嵌入式系统原理及其应用课程的目的是掌握裸机嵌入式系统的开发技术,主要针对ARM7的开发。作为传统8位单片机的代替品,ARM7的裸机开发技术在实践中有着广泛的使用。南京林业大学信息科学技术学院计算机专业嵌入式方向的最后一门课程是嵌入式操作系统。现在的嵌入式操作系统往往带有GUI,需要面向目标的窗口编程技术[4]。从编程语言上看,嵌入式操作系统的学习需要使用汇编语言、C语言、面向目标的C++或Java语言。因此,该课程跨越的知识范围大,知识体系复杂,学习难度大,需要的课时也多。

由于嵌入式系统是微电子和计算机技术相结合的产物,因此我们还通过选修制度鼓励部分优秀学生选修其他专业的相关课程,如微机控制原理与技术、CPLD/FPGA的开发与应用、可编程控制器的开发与应用等,以扩展自身的知识结构,更好地掌握和开发嵌入式系统。

2.2 嵌入式系统课程中教学工具语言的选择

计算机专业的嵌入式系统教学和电子、机电专业的嵌入式系统不完全一样,是以软件设计为主。教学中有一个简单的说法,就是八分软、两分硬。程序设计贯穿了整个嵌入式系统的教学过程,选择什么样的教学程序设计语言就显得尤为重要。

我们在教学中,尽量使用C语言,少使用汇编语言,因为C语言比汇编语言更容易理解。一些教材和参考书中的一些例题是使用汇编语言编写的,在教学中,我们将其转换为C语言程序,但是嵌入式系统的C语言程序设计方法和学生们所熟知的PC机上的C语言程序设计方法还有明显区别,主要表现在指针的使用、端口变量的定义和使用、宏的使用、物理资源的直接分配等方面。在使用C语言进行编程教学之前,教师需要6~10课时专门讲解嵌入式C语言编程的特征。

无论如何使用C语言编程,对应系统的汇编语言还是不能完全回避,不学习处理器的指令系统是无法理解它的功能和运行机制的。我们在教学计划中安排一定的课时学习嵌入式处理器的汇编指令系统知识,其目标不是编写汇编语言程序,而是加深对嵌入式处理器工作原理的理解。不要求学习伪指令的使用和汇编工作原理,只要求能理解常用指令和编写短小的程序段即可。这样安排减轻了学生的学习难度,有利于他们进一步的学习。

为了保持教学语言的一致性,在嵌入式系统的窗口编程学习中,我们选择了C++语言,而不是比较流行的Java语言,同时也鼓励学生通过自身努力进一步学习面向嵌入式系统的Java程序设计。

2.3 嵌入式系统课程中硬件知识的学习

“欺软怕硬”是当今普通高校计算机专业学生广泛存在的现象。很多计算机专业的学生感觉硬件知识的学习非常困难,甚至有“硬件知识的学习是电子系专业的任务,计算机专业就是学习如何写程序”这样的错误认识。嵌入式方向和计算机专业的其他方向相比所需要的硬件知识多出很多,因此选修嵌入式课程的学生必须学习一定的硬件知识。为了让基础相对薄弱的计算机专业学生更快地掌握必需的硬件知识,在进行相关硬件知识教学时,我们遵循两个教学原则。

(1)回避各个电子器件的物理细节,尽量学习它的逻辑功能,也就是学习硬件知识的目的是为了编写相应的程序,而非针对相应的电路设计。例如,对于芯片的引脚,要学习输入/输出方向、高低电平有效性以及和其他引脚的关联逻辑,而不研究引脚的驱动能力、电平变化曲线等物理特征;对于课程中的电路图,只学习对编程理解有帮助的电路原理图,不研究具体的电路图;对于少数必须学习的物理指标,也尽量借用计算机专业的概念进行描述,如为了描述时延和运算位数的关系,可以采用数据结构中时间复杂度的概念,也就是O()格式。

(2)教学中,向学生讲解软硬件功能可以相互渗透的思想,一些原本由软件实现的功能可以由硬件完成,而硬件的设计也可以软件化,以此消除部分学生对硬件知识的“隔阂”。比较有效的学习方法是引导学生使用高级语言程序仿真部分硬件单元的逻辑功能,也就是硬件功能的“软化”,如用C程序实现MMU单元的部分功能。同时,也引导学生通过设计数字逻辑完成一些简单的程序,也就是软件功能的“硬化”。

3 嵌入式系统的实验课程建设

嵌入式系统是面向实践的一门应用型课程,因此其实验课程的建设对于整个教学至关紧要。嵌入式系统的实验课程建设分两个部分,一是嵌入式系统实验室的建设,二是实验课程的设计。首先要选择质量有保证、技术支持有力的厂商的教学实验设备。检验教学实验设备的优劣可以从3个方面衡量:①质量可靠,设备不会在实验过程中发生故障,影响教学过程,这是最起码的要求;②各种技术资料详尽而易学,所编写的实验项目丰富而实用,有利于教师自身首先消化和吸收相关知识,熟悉教学实验设备的使用;③教学设备必须紧跟嵌入式系统的技术发展,尽量涉及新的技术,让大家感受到时代的脉搏。

应该说,嵌入式系统的实验是计算机专业各种实验中相对复杂、难度较大的实验,没有好的技术支持,即使是教师,也不容易熟练掌握这些教学设备。有了合适的实验教学设备,教师才能编写相应的实验教学课程。无论多么好的厂商所提供的实验项目资料都不能直接为教学所用,应该由教师根据本校学生的特点,消化吸收各种技术资料后,编写符合要求的实验课程教材。在教学中,我们根据计算机专业学生的特征,将实验课程由易到难分为4部分,每一部分都需要学生编写相应的程序后,才能进行相应的实验操作。

(1)基础程序设计实验课程。这些实验不需要教学设备,所对应的程序只需要在主机上运行。安排这些实验课程,一是为了让学生熟悉开发环境,二是练习嵌入式系统程序中常用的算法。部分计算机专业的学生硬件操作能力差,所以首先练习这些运行在PC机上的仿真程序,为下一步正式练习运行在嵌入式教学设备上的程序打好基础。

(2)嵌入式系统程序设计实验课程。这些实验所要求编写的程序是直接运行在教学设备上的,不需要操作系统的支持。这部分实验课程的程序代码相对简单,没有复杂的算法,使用仿真器进行调试开发。学生可以通过这部分实验课程的练习,更加深入地了解嵌入式系统各部件的功能特征以及如何用程序驱动工作。

(3)嵌入式操作系统程序设计实验课程。这部分实验比前面两部分都要复杂,它所要求的程序运行在带有嵌入式Linux操作系统的教学设备上。练习编写这些程序既需要理解相应部件的工作原理,又需要掌握操作系统的编程知识,程序和算法相对复杂。开发时,还需掌握完整的交叉开发工具的使用方法。其中,最复杂的是驱动程序的实验,如果学生能独立完成驱动程序的实验课程,那么对于该课程的学习就算过关了。

(4)嵌入式系统的视窗系统编程实验。因为计算机专业的学生都有一定的面向目标的程序设计基础,所以最后一部分实验课程是嵌入式系统的视窗系统编程实验,采用的是C++编程语言。实验程序尽量简单,只需要让学生有个简单的了解,培养进一步学习嵌入式系统知识的兴趣。

4 结语

上述教学思想和相应的教学材料都是我们在以往嵌入式系统课程的教学中总结出来的,同时参考了兄弟院校的宝贵经验。这几年我们将这些教学思想用于嵌入式系统课程的教学中,取得了一定的效果。然而,由于嵌入式系统技术本身发展较快,而且每年高校计算机学生的素质也不断地发生变化,都会带来新的问题和挑战。这就要求我们在教学实践中不断吸取新的知识,总结以往经验,将嵌入式系统相关课程的教学工作做得更好。

参考文献:

[2]王田苗.嵌入式系统设计与实例开发[M].2版.北京:清华大学出版社,2003:234。

[2]杨树青,王欢.Linux环境下C编程指南[M].北京:清华大学出版社,2007:345.

[3]陈赜,秦贵和,徐华中,等.ARM9嵌入式技术及Linux高级实践教程[M].北京:北京航空航天大学出版社,2000:212.

[4]白树忠,南新志.变电站综合自动化实时数据库管理系统的研究与开发[J].电力系统及其自动化学报,2002,14(3):43-46.

[5]Luger G F.Structures and strategies for complex problem solving[M].北京:机械工业出版社,2006:237.

(编辑:宋文婷)

相关热词搜索: 普通高校 嵌入式 计算机专业 探讨 方向

版权所有:无忧范文网 2010-2024 未经授权禁止复制或建立镜像[无忧范文网]所有资源完全免费共享

Powered by 无忧范文网 © All Rights Reserved.。冀ICP备19022856号