面向研究生的“嵌入式系统及应用”教学研究
2022-07-23崔佳冬谢强强
崔佳冬,谢强强,郑 梁
(杭州电子科技大学,浙江 杭州 310018)
0 引言
IEEE对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置。IEEE定义是一个宏观上和广义的定义,该定义的装置包含硬件和嵌入硬件的程序(软件),从是否包含操作系统来划分,嵌入式系统分成广义嵌入式系统和狭义嵌入式系统,本文以高校研究生教育中更普遍的包含操作系统(Linux)的狭义嵌入式为研究内容。
近年来,随着嵌入式系统硬件逐步进入性能过剩和物联网万物互联时代的到来,市场对嵌入式软件编程技术人才需求旺盛,嵌入式软件人才供不应求,人才缺口接近20%,嵌入式系统及应用前景被广大学生看好,学生对学习嵌入式方向知识需求非常迫切。
电子信息学院较早开展了面向研究生“嵌入式系统及应用”专业必修课程。课题组获得校级院级教改项目核心课程建设专项的支持,根据学院整体要求和课程特点,对嵌入式系统开发及应用课程进行了系统的教学改革尝试,在网络化、国际化等方面获得一些有益经验。
1 课程特点
1.1 内容丰富,涵盖面广
嵌入式系统及应用课程具有综合性强、交叉性广的特点,背景知识涉及计算机(体系结构、操作系统)、电子技术(计算机组成原理)等多学科。嵌入式系统课程教学内容较多,硬件方面主要包括ARM体系结构、嵌入式硬件电路、系统接口电路等;软件方面包括ARM汇编(指令)、应用程序设计(API函数)、开发环境构建、Linux应用等。由于内容丰富,学时有限,教学内容包罗万象,如何构建一个完整教学体系,取舍非常重要。
1.2 实践性强
嵌入式系统及应用教学内容丰富,课程内容涵盖文件、进程、网络等内容。学生对这些知识点的掌握,很大程度需要通过软件测试例来熟悉和掌握,软件上机环节在很大程度上决定学生对软件功能掌握。传统教学都是单独设置实验环节,教学和实践有些脱节,不利于学生更好地掌握软件。课程组采用理论教学和随堂笔记本验证方式进行上机实践,能够加深学生对应用编程理解,提高学生兴趣,培养学生关注软件(API函数)细节的良好习惯;通过理论教学、上机实践、探讨相结合,达到较好的教学效果。
2 嵌入式系统及应用课程教改思路
2.1 以Linux软件为核心,突出接口编程
高校中嵌入式系统教学主要分成两大流派:以嵌入式开发板为中心和以 Linux软件为中心。二者侧重点略有不同,前者偏向硬件和底层,可能包含ARM体系结构、汇编指令、Bootloader、编译和裁剪内核、操作系统编程等;后者偏向Linux环境下应用软件,也会涉及串口、网络等编程。前者强调在目标硬件基础上调试软件(需要交叉编译);后者强调软件本身(本地编译)。多年教学实践下来,从效果看,后者更符合时代要求,能在有限学时内可以把Linux应用软件体系讲清楚,有软件教学优势。
由于嵌入式系统及应用课程的教学内容比较多,如何选择教材非常重要。教材的选择上,早期选用华清远见教育集团编写的《嵌入式系统技术与设计》,该书内容比较丰富,但是体系上不够完整,比较适合培训,不太适合大学教学,现已经作为教学参考书目。现在选用的是《Linux系统程序设计教程》,该教程内容翔实,基础部分细致,核心部分内容完整,非常适合电子类同学系统学习嵌入式Linux编程。为适应市场对嵌入式人才的需求,选择Linux操作系统(API)软件编程作为教学核心内容,化繁为简。教师在教学过程中,将科研项目中的一些有益经验案例融入教学中,课堂教学生动、有趣。
2.2 侧重电子信息类专业特点教学
嵌入式系统及应用课程是一门内容丰富、涵盖面广的综合课程,课程内容包含硬件设计和软件设计两个主要方向。教学安排上可以选择一个方向或两者融合,随着信息化和软件化时代的到来,电子信息类专业学生对软件需求非常迫切,急需补齐软件这块短板。教学安排上采用硬件软件二八开,硬件重点放在串口和网络开发,紧紧抓住时代脉搏;软件涵盖文件、多任务(进程/线程)、进程间通信、网络通信、综合应用等内容。
2.3 联合采用多种教学方式,提高课堂教学效果
2.3.1 课堂上采用讲授/讨论(集思广益后现场小软件验证)相结合的方式
在教学中,充分发挥教与学的积极性。教师提出问题,如编程实现管道命令,启发图如图一示例所示,启发内容包括主要实现方法(fork、dup2、execlp等)与步骤,通过具体案例启发引导,由学生自由分组探讨对问题的理解、看法,引导学生主动寻找解决问题的方法与途径并自主编程实现。这种引导探索式教学方法大大调动学生的学习主动性,课堂探讨氛围浓郁,通过探讨,提高学生自己参与教学的热情,提升来了教学效果,培养学生开拓创新意识,而且有助于培养学生的团队精神。
图1 探讨教学用例PPT
2.3.2 大作业综合训练教学方法
杭州电子科技大学是电子工程师的摇篮,根据工程师类复合型人才培养特点,注重培养学生自主创新和大胆创新。在教学后半段,引入项目作为一个大作业作为平时成绩的主要内容,成绩占比30%。项目以综合性项目为主,内容涵盖串口、网络通信、进程间通信等教学内容。经典项目如:串口转以太网软件设计、多进程服务器设计、语音识别及应用等。以丰富多彩的项目为驱动,学生在项目的设计和实施中,逐步掌握相关教学内容。项目驱动法使学生对理论和实践结合有了新的认识,通过完成一个具体项目,很好的培养学生的工程实践能力,锻炼了动手能力和论文写作能力。
2.3.3 线上线下网络平台结合
当今,互联网在生活无处不在,利用互联网组织教学,在校内外已成为新的模式。特殊时期线上线下结合已经成为一种常态,相比较课堂教学相比较,互联网平台具有非接触、临场感好(不受现场位置限制)、交流方式多样(如视频和文字互动)特点。通过学校官网建立课程网站、构建网络课堂平台,公开教学大纲、授课计划等内容,将互动、讨论等经典的教学环节融入网络平台。学生利于平台与老师双向互动,教师可以通过网络对学生进行辅导和答疑。同时网络平台还自由讨论,方便师生、同学进行专业问题探讨。充分利用网上教学资源,将教学过程课内外无缝对接,方便师生之间沟通,而且有助于在时间和空间上对课堂教学进行有益拓展。
2.3.4 双语教学
由于缺少国外版合适的教程,我们尝试制作英文PPT+中文上课的模式,学生普遍反映效果较好,避免了语言和技术难度双层叠加,是一种值得推广的教学模式;引导并推荐学生使用英文原版API帮助,有利于学生熟悉英文原版的功能描述,实现中英文较好的结合。通过英文PPT+英文API帮助两个主要渠道,实现双语效果,实践反馈效果良好。
3 结语
几年来的嵌入式系统及应用的教学改革证明,通过主动选择与挖掘教材教学内容,线上线下教学结合,探讨式课堂与网络教学平台结合,充分调动了学生学习的自主性和创造性。经典命题(大作业)和学生自主选题结合,取得了比较好的教学效果。实践教学(大作业)为学生积累了宝贵的编程经验。