武华 张广渊 武晓明 刘洋
摘要:嵌入式系统开发是电子信息工程专业开设的主要专业方向,该方向专业课程实践性、应用性较强,学生在学习中难以掌握。本文通过分析嵌入式系统方向教学现状以及传统的教学方式的不足,结合嵌入式系统方向应用型人才培养要求,针对该方向课程特点、不同阶段所需学习课程及要掌握的技能,浅谈一下集中授课方式在嵌入式系统课程教学中的应用。
关键词:嵌入式系统;集中授课;教学方式
中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2015)49-0182-02
一、引言
随着信息化与工业化的融合及工业4.0国家战略的提出,嵌入式系统技术有着越来越广阔的应用空间。目前,嵌入式系统技术已经深入应用到了工业控制、智慧城市、智慧交通、智能家居、智能医疗、智能穿戴、通信设备等人们生活的各个领域。为了适应社会对嵌入式系统开发人才的紧迫需要,如今大多数高校在电子信息工程、自动化等专业开设了嵌入式系统方向[1-3]。在嵌入式系统开发方向课程教学中大多高校仍采用传统的授课方式,即把相关专业课分散到三到四个学期,每门课又分散到一个学期讲授,每周二到三次课。其教学效果并不理想,学生普遍感到该课程难以掌握。为了解决上述问题,本文给出集中授课方式在嵌入式系统方向教学中应用的一些想法和意见。
二、嵌入式系统方向开设背景及课程介绍
(一)嵌入式系统开设背景
所谓嵌入式系统是软硬件紧密结合的综合系统,一般而言,嵌入式系统由嵌入式硬件和嵌入式软件组成,它是面向用户、面向应用、面向产品的专用计算机系统。嵌入式系统拥有软件硬件可裁剪,对可靠性、成本、体积和功耗严格要求的特点。基于嵌入式系统的“专用性”以及“嵌入性”,在各个领域均有嵌入式系统的广泛应用。因此当前嵌入式系统拥有巨大的发展潜力、社会需求大量的嵌入式软硬件工程师。在此背景下,以及遵循培养应用型人才的教学理念下,国内绝大多数高校纷纷开设嵌入式系统开发课程。
目前我校的嵌入式系统方向人才培养目标是:掌握电子技术、嵌入式系统应用与开发、物联网技术开发与应用等工程领域的实践知识和技能,具备嵌入式开发、嵌入式系统测试、物联网应用开发能力,能在通信、电子设备设计制造、物联网应用、IT业等部门从事嵌入式系统软硬件分析与设计、测试、物联网研究与开发、电子信息系统应用与维护、开发、测试、销售及研究等生产和管理第一线需要的高素质应用型人才[4]。
(二)嵌入式系统课程介绍
嵌入式系统课程一般包括:Linux系统、C语言、C++面向对象的程序设计、ARM微处理原理与应用、嵌入式系统GUI开发。其中Linux系统为嵌入式系统课程的核心部分,在今后的嵌入式开发编程过程中大多是在Linux环境下进行;C语言则属于嵌入式系统开发最基础也是最重要的编程语言,目前嵌入式系统硬件开发多是基于C语言;C++语言则是属于面向对象的高级编程,嵌入式系统GUI开发则是在Linux环境下在Qt上使用C++语言进行图形界面的编程设计;最后ARM微处理器的原理与应用是整个嵌入式系统课程的精华也是其难点所在,所有的程序都需要在ARM处理器上运行,所以学习好ARM原理与运用无论以后做硬件工程师还是软件工程师都有着重要意义[5-7]。
三、嵌入式系统方向教学方式现状
目前绝大多数高校仍然采用传统的授课方式来讲授嵌入式系统课程,即把相关专业课分散到三到四个学期,某门课程在一个学期开展,分散在15~18个教学周,每周讲授4~6节课。从近几年毕业生难以适应市场的需求来看,按照传统的教学方式对嵌入式系统课程进行教学显然有着巨大的不足之处。主要不足是:
1.知识点的讲授不连贯,往往在下节课浪费了大量的时间来进行上次课的补习。
2.实践应用少,尤其对于应用开发型的课程,讲完理论之后缺失及时的实验开发。即使加了实验课,某些实验项目不能在两节课完成[8]。
3.时间跨度过大,嵌入式系统课程知识涉及面广,仅仅上述的四门基础课程按传统授课计划一学期一门课来看,需要两年才能完成。
4.高校针对嵌入式系统教学知识落后于当下嵌入式技术发展,同时也缺乏有资深嵌入式工作经验的教师。
四、集中授课方式在嵌入式系统方向教学应用
集中授课方式是指把某门课程集中在一段时间内连续进行学习,直到该门课程进行完毕,再开展下一门课程的学习。整个学习阶段大致是以知识点做基础,实际应用做课程案例,开发项目为驱动,注重提高学生的实际编程能力。这样能够及时有效地进行针对性学习,能够稳固知识点,加强学生实践动手能力,而且学习时间跨度大大降低,根据人类的记忆规律更能使学生加深理解记忆,更好地掌握本阶段的知识[9]。
由于嵌入式课程涉及知识面广,系统的嵌入式系统开发课程我在这里大致分为了四个阶段:
1.嵌入式系统开发基础篇。首先,进行Linux系统的基础学习,其主要内容为:学习Linux系统的理论知识,如Linux系统简介、Linux的文件系统、文件类型及属性、文本编辑器等;之后进行学习Linux系统下的常用命令和shell编程;最后也是以后常使用的知识便是编译与调试,学习GCC编译器和GDB调试器以及make工具,通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。其次,在学习了Linux基础之后便可以在Linux环境下进行开发,也就意味着进入了C语言的高级编程学习中,而在此阶段学习中不能像传统教学一样仅仅教授C语法基础,要更深入学习C语言的灵魂知识——指针的学习,之后进行C的高级编程,例如编译的预处理、链表及操作、树和二叉树等知识的学习。这样就基本上完成了本阶段的理论学习,本阶段最后一步是学生实战提高的一项内容即C项目系统的设计开发,在一个系统项目的开发过程中几乎会用到此前所学的所有知识,学生在开发过程中也会看清自己学习中所欠缺的知识。
本阶段因为是基础性知识学习,在后期学习应用中均占有很大的分量,所以用时也是最长的一个阶段,约在5~6周方可完成阶段性学习。
2.嵌入式开发系统篇。在完成了C语言的学习后,便可以开始进行学习Linux系统程序的设计,本阶段学习目标便是掌握Linux系统编程和网络编程的基本方法,掌握多进程和多线程的编程能力。学习过程中主要学习进程与线程的原理、进程间通信的方式、网络的基本原理、Socket编程等。在此阶段的学习中要多锻炼大型程序和复杂项目框架的设计能力,使得学生能够在未来工作中具备掌控和领导项目的潜力。
在完成本阶段性学习之后,同样需要大量的练习以及系统项目的设计开发训练。本阶段主要是系统的设计学习,则需训练诸如局域网OICQ程序设计、远程终端管理系统之类的开发项目,来提高学生系统设计开发能力。本阶段主要学习系统的基础性开发,大约在四周左右完成。
3.嵌入式开发的软件应用篇。本阶段主要进行C++面向对象的程序设计开发,学习类和对象的区别与应用,面向对象程序设计的三个基本特征:封装、继承和多态。因其在C语言基础上演变而来,故而此阶段属于快速学习阶段,在一到两周即可完成。然后学习系统GUI开发,主要要求掌握Qt开发的基本流程和Qt提供的类库的使用方法。在整个的软件应用阶段会在两周内完成。
虽然学习用时比较短,项目的开发练习依然不可缺少,在未来工作中这类快速学习并加以应用的情景有很多,学生们有必要也必须有快速学习的能力。
4.嵌入式开发的硬件篇。本阶段在整个嵌入式系统开发中属于难点,需在本阶段学习ARM微处理原理和应用,主要掌握ARM的基本架构、指令系统,同时也要了解ADS集成开发环境;嵌入式Linux的系统移植,主要掌握u-boot启动流程、u-boot的移植流程及关键步骤,学会构建根文件夹系统,掌握整个嵌入式Linux系统开发方法;学习Linux驱动开发,掌握嵌入式Linux设备驱动程序的基本原理、架构和设计方法以及驱动开发中常用的机制和内核资源。
该阶段主要以实验为主,加强学生动手能力,熟悉嵌入式的硬件程序开发,该阶段也在四周左右。
五、总结
经过对社会上嵌入式系统培训机构的调研来看,大多数机构都是应用的此类授课方式专项培训嵌入式系统开发人才,而经过培训之后的学员有着扎实的知识功底和良好的实用技能,明显比高校毕业生有更高的动手能力和岗位适应优势。因而在高校嵌入式系统方向课程的教学中尝试使用集中授课方式,对提高应用型人才培养有重要的借鉴意义。
参考文献:
[1]王崴.“嵌入式系统”课程的教学改革与实践[J].常州工学院学报,2013,26(1).
[2]郭锐.嵌入式系统教学中若干教学方法研究与实践[J].科技信息,2012,(16).
[3]彭道刚,李辉,夏飞.基于项目驱动的嵌入式系统教学改革与实践[J].中国电力教育,2013,(28).
[4]张广渊,肖海荣,马昭,梁伟.应用科技大学本科生科研能力培养改革探讨[J].大学教育,2014,(4).
[5]冀常鹏,马飞,徐维.项目驱动的嵌入式系统教学改革.电气电子教学学报,2012,(33).
[6]郑广海,曲英伟.嵌入式系统课程群实践教学优化整合与知识融合的研究[J].2015,18(6).
[7]郑广海,曲英伟.“嵌入式Linux操作系统及实践”课程改革[J].计算机教育,2012,(4).
[8]权宁一,权晓林.嵌入式系统专业实验教学改革的探索与实践[J].实验技术与管理[J].2011,(3).