2023年5月第26卷第9期
中国管理信息化
China Management Informationization
May,2023
Vol.26,No.9
基于NodeMCU项目驱动的C语言程序设计教学模式探索
杨可扬,冉彦中,许志军
(吉林大学,长春 130022)
[摘 要]现阶段各高校C语言程序设计的教学方案大多采用PC+VC的教学模式。随着时代的进步,这种传统教学模式无论在教学难度、教学时长、学生学习兴趣、学生掌握程度等方面逐渐显现出诸多不足。本文拟从技术发展的角度分析传统教学模式不足形成的各种原因,提出改进的方案——基于NodeMCU 项目驱动的C语言程序设计教学模式。
[关键词]C语言程序设计;NodeMCU ;Esp;Python
doi:10.3969/j.issn.1673-0194.2023.09.056
[中图分类号]G642 [文献标识码]A [文章编号]1673-0194(2023)09-0192-04
0 引 言
C语言程序设计课程是理工类大学的一门重要基础课程。教育部推荐各高校开设本课程的目的,从狭
[收稿日期]2022-11-21
[基金项目]吉林大学本科教学改革项目(2021XZC112)。
[作者简介]杨可扬(1979— ),男,讲师,主要研究方向:物联网、传感器、图像识别。义上讲,主要是为了增进学生对于计算机编程技术的了解;按广义上论,更多的是着眼于培养学生严谨科学的思维方式,把握当今信息处理技术。C语言因其灵活多变的特点、便于移植的开发方式,无论是在数十年前传统X86的PC单机模式编程,十数年前网络应用的开发,抑或是现在分布式大数据时代背景下物联网技术、云计算、开疆辟土般人工智能的初萌,都有
上,贯彻落实到学生核心素养的培养与塑造中。
主要参考文献
[1]陈巧云.基于教师满意度的高校信息化绩效评价研究[J].
教育学术月刊,2016(8):31-35.
printf输出格式 同行[2]葛文双,韩锡斌.数字时代教师教学能力的标准框架[J].
现代远程教育研究,2017(1):59-67.
[3]张英杰.高校青年教师信息化教学能力评价及提升策略[J].
金华职业技术学院学报,2019,19(3):1-8.
[4]隋幸华,赵国栋,王晶心,等.高校教师信息化教学能力影响因素实证研究:以湖南省部分高校为例[J].中国电化教育, 2020(5):128-134.
[5]王彦富,王妙妙,李飞.TPACK框架下融合信息技术的教学模式研究[J].教育探索,2022(3):52-55.
[6]李天龙,马力.高校青年教师信息化教学能力发展现状与对策研究:以西安地区高校为例[J].现
代教育技术,2013,23 (6):34-37.
[7]韩锡斌,葛文双.中国高校教师信息化教学能力调查研究[J].
中国高教研究,2018(7):53-59.
[8]宋权华,于勇.高校教师信息技术素养:现状、困境与路径:以我国西部地区部分高校为例[J].现代教育技术,2020,30(10):78-84.
[9]谢耀辉,万坚,夏欣.高校教师TPACK对线上教学效果影响状况调查研究[J].华中师范大学学报(自然科学版), 2022,56(2):304-310.
[10]赵磊磊,赵可云,侯丽雪,等.技术接受模型视角下教师TPACK能力发展研究[J].教育理论与实践,2015,35(11):25-27.
[11]顾小清,杜华,彭红超,等.智慧教育的理论框架、实践路径、发展脉络及未来图景[J].华东师范大学学报(教育科学版), 2021,39(8):20-32.
[12]祝智庭,魏非.面向智慧教育的教师发展创新路径[J].中国教育学刊,2017(9):21-28.
[13]李雨潜.“互联网+”背景下师范大学教师信息化教学能力现状调查[J].中国大学教学,2016(7):87-91.
[14]谢燕,张栋栋.TPACK框架下高职教师信息化教学能力的调查分析[J].职教论坛,2019(10):114-120.
教育教学研究
着不可或缺的重要作用。做好当前的教学工作,既是完成大学基础课程设置的必须要求,更是为信息时代人才培养奠定坚实基础的必经路程。
1 现阶段教学模式存在的不足及改革的必要性
C语言于20世纪六七十年代在美国贝尔实验室产生,设计之初的主要目的是控制大型机。与此伴生的软件平台——Unix操作系统由于良好的兼容性和优秀的执行效率被广泛应用。20世纪90年代初,IBM PC独霸个人微型机消费市场,MicroSoft公司Windows系列操作系统以其卓越的人机交互方式逐步垄断了办公桌面的各种软件应用场合。Windows 本身大部分功能是基于C语言开发的,基于C语言开发的相较于其他语言开发的应用软件更具备稳定性,执行效率也更有保障。彼时,我国高校的程序设计课程是以X86处理器为核心的PC机作为硬件基础,以Windows上的Visual Studio 系列为C语言开发软件进行配伍。
另外,囿于当时技术的限制,自动化设备几乎不能独立于PC机运行。相关授课教师也很难接触到PC之外的开发环境。现在看来,这种模式应用于编程起步并不理想,无论是硬件的复杂程度,还是对软件原理的理解,初学者都不可能在短时间内轻易掌握。21世纪初,互联网技术快速普及,我国加强对信息技术应用的大力推广,传统的单机或小型网络应用逐渐被新型移动通信所取代。PC系统也从以前相对简单的X86构架进化为更先进的IA64构架。这种改变使PC更具抢占特定构架计算机占有的服务器市场的实力。伴随设备向小型化、移动化方向发展,传感器技术从以前的高端应用逐渐变为大众生活中的常见角。软件编程领域,由以前的C语言一家独大变为C语言、Python、Java各领风骚。在技术不断进步的同时,科技人员用各种方法隐藏复杂的软硬件,方便用户远离深奥的运行机制,让更多计算机使用者乐心于生活与娱乐。然而,种种设计上的“便捷”却给在基础领域探索计算机编程知识的学生带来了学习原理的困扰。所以,在教学环节我们常能听到“平时根本用不到C语言,C语言已经被淘汰了,为什么还学”等抱怨。采用传统框架授课的教师也因日渐复杂的设计体系陷入教学内容繁多、课时不足的窘境。
在教学进程中,程序设计课程的教材大多以20世纪清华大学谭浩强老师的教材为范本,课程按照同步教材的章节进行设置。这种教学进程的安排虽几经改版,但对于对计算机理论模型尚未有初步认识的学生来说,过于分散的陈述数据结构及算法细节的安排形式与实验环节脱离得太远。C语言是一门实践的科学,印证理论知识的关键途径就是将学到的基础理论付诸有效的实验。现有的理论教学方式使学生很难与实验环节紧密联系在一起。很多学生往往因困惑于个别章节的特定语法现象而耽误了后续的学习。如
何能让学生从兴趣出发在实验中获得学习的满足感,如何能让课程的安排使学生将基础原理映射于生产生活中的实践,是我们教育工作者不懈探索的目标。
很多同行在原有PC课程框架基础上,以优化教学方法的形式进行了大量的积极的探索。与此同时,我们能否换一种思维方向:打破传统PC框架的限制,选择一种更适合教学、实践的新模式来迎接时代进步的挑战。
2 NodeMCU特点与进入教学环节的优越性
在物联网与人工智能飞速发展的今天,随着处理器制造技术的不断进步,微型化、高速化的竞争在处理器市场日益激烈,越来越多以单片机、单板机为核心的终端设备成为人们不可或缺的日常。随着云技术逐步成熟,MCU带领着一大批传感器正逐步撼动着PC 以往的霸主地位。在这些可以和PC一争高下的竞争者中,不乏同时适用于工业生产与院校学习的优秀系统,选择学习、熟悉它们成为学生进入信息时代的“敲门砖”。
Esp系列Soc正是微型系统应用的佼佼者。Esp系列芯片是乐鑫公司开发的MCU,依照性能和价格主要分为Esp8266和Esp32两个系列,相比较于国际著名ST公司和A TMEL公司的单片机,其最大的特点就是集成了Wi-Fi和蓝牙,综合性能也完全超越了上述产品。
Esp系列芯片以其性能优越,对传统网络构架良好的兼容性、社区资料完善等特点成为计算机领域广大科技人员和爱好者学习与应用的绝佳选择。但若作为教学应用,还需要将它承载于一套完整的软硬件开发平台。
教育教学研究
NodeMCU开发模块本身是一个开源的物联网软硬件结合的开发平台。该硬件平台设计之初以Esp 芯片为核心,软件则以Lua脚本语言作为编程工具。NodeMCU可快速实现设备M2M接入、数据统计分析、远程控制、OTA升级、第三方接口等功能服务。NodeMCU固件支持Soc解决方案和二次开发,大大降低了开发成本,缩短了开发周期。
NodeMCU模块不超过8cm×8cm,外围传感器也可以根据需要动态增减。这种小体积组合便携的设计使得学生在学习过程中不会为难以到合适的练习开发平台大费周章。
Arduino是一种用于快速制作原型的简便工具,主要面向没有电子和编程背景的学生。Arduino从进入更广泛的社区便开始进行更改以适应新的需求和挑战,将其产品从简单的8位板扩展到IoT应用、可穿戴、3D打印和嵌入式环境的产品。所有Arduino硬件和软件都是完全开源的,使用户能够独立构建它们,并且通过全球用户的贡献而不断发展。
近年来,Arduino一直是数千个项目的核心,从日常物品到复杂的科学仪器。一个由学生、业余爱好者、艺术家、程序员和专业人士组成的全球创客社区聚集在这个开源平台周围,他们的贡献积累了大量可访问的知识,对新手和专家都有很大帮助。
得益于无数开发人员的努力,Arduino平台现在已被成功移植到由Esp系列芯片构建的NodeMCU 中。可以说NodeMCU&Arduino模式就是为学习编程而生,在这种框架的辅助下,学生既可以直观接触NodeMCU硬件平台,同时在Arduino 强大社区的陪伴中使软件学习日行千里。
3 NodeMCU项目驱动实践
Arduino本身兼容于C语言,将NodeMCU+Arduino 带入C语言教学与实践环节,取代传统PC+VC构架的繁冗模式,对编程课程的模式改革具有积极的意义。为了达到更好的教学效果,我们在教学方法上做了大量研究与准备工作,设计了8个渐进式教学项目。在课程设计的过程中,我们引入PBL,即基于问题学习的分组模式实现方式,同时配套了渐进式NodeMCU 项目,使学生在学习过程中以项目为导向,以兴趣为引领,激发学生的学习热情。具体如表1所示。
表1 教学课程设计
序号渐进式NodeMCU理论项目项目渐进式实验案例
1NodeMCU硬件基础写入NodeMCU固件了解NodeMCU原理2变量与硬件存储器的关系编入闪灯程序并改写
3学会三大控制结构的使用基于闪灯程序的循环,选择控制
4理解函数的概念在闪灯的基础上驱动液晶显示屏
5掌握数组在液晶屏上显示各种数据
6指针初步与进阶NodeMCU路由远程获得互联网数据7文件初步NodeMCU获得数据的本地存储
8综合应用基于NodeMCU获得网络数据存储
在这种模式下,我们在学生中开设了选修课程与开放性实验进行积极的教学探索。10个分组的30课时学习过程中,所有学生都表现出极大的兴趣,完成了理论学习与实践案例。教学环节中,学生都会亲自动手参与项目的实施,并将渐进项目中的理论部分不断修改以求证自己尚未学习的未知领域,这在以往复杂的教学环节中是难以达到的。
我们也积极鼓励学生在课外学习中将NodeMCU 及其周边设备带到实践领域。由于NodeMCU相对低廉的造价与便于携带的样式,无论是对教学管理、教学
教育教学研究
成本、实验室组织、管理、维护都相较于以往基于PC 构架高昂的费用有了巨大的进步。
在五级评价体系中,我们对70%左右同学的优秀率感到欣喜。这在以往传统框架下进行C语言的教学是不可能达成的目标。结课后,大多数学生也对继续深入了解NodeMCU的高级主题表达了积极意愿,由此我们对课程设计的基本目标均已完成。
很多学生在通过基于NodeMCU项目驱动的程序设计模式之后,将学到的内容融入各领域的创新中,在各种信息竞赛中也取得了不错的成绩,这是我们在课程设计之初并未预料到的。
对于教师,除前期熟悉NodeMCU基础框架外,理论知识与传统PC构架并无太多区别,所以也很容易从传统教学模式转换为新型教学方法。在授课中,教师与同学同步解决问题,教学相长也不再仅仅是一句口号。
对于课程的设计我们也刚刚起步,存在诸多问题和不足,我们应在日后的课程中总结对比基于NodeMCU框架与传统框架的联系,帮助学生在有限的学习时间中事半功倍。基于更高阶主题的教学也应该是课程设计的考量:对于互联网、物联网、大数据、云计算虽不是现阶段教学大纲的要求,但对于新世纪复合型人才的培养,拥有这些知识储备将对学生日后的发展发挥不可预期的作用。
4 展望与探索
信息技术高速发展的今天,编程语言功不可没。在可以预见的未来,对编程语言没有认知的人必定被社会所淘汰。目前,工程技术领域中大约存在六百种语言,不断有新兴的编程语言因各种各样的特吸引着科技领跑者的目光,人们对编程方法的认知也在不断地进步。根据世界权威TIOBE编程语言排行榜,C 语言、Python语言和Java语言仍是三甲的有力争夺者。值得一提的是其他两种语言的中间载体皆为C语言所编制,我们在深深感谢C语言为世界科技进步做出如此巨大贡献的同时,也为Python语言连续数月占据榜首拍手叫好。Python语言的语法习惯接近于C语言,虽执行效率不及C语言,但由于其强大的可移植性以及对初学者学习的友好方式,不断扩大着自己的影响范围。更重要的是,在大数据信息处理和人工智能领
域,Python语言由于其自身的特征成为编程语言中卓越的选择。基于此,各高校近些年都在开设C语言课程的同时,不断探索将Python或其他语言引入课堂教学的方式。
基于NodeMCU项目驱动的引入也完全顺应这种变化。由于其核心Esp系列Soc可根据性能的需求进行选择,并且可以更新不同的固件支持不同的软件平台,这就决定了我们在课程设计的过程中不需要把具体的语言作为第一要素进行考量。只需选择合适的核心型号,按照设计好的应用框架更新相应软件模块的固件,做简单的调整,即可达到我们的设计要求。以我们设置课程为例,在程序设计语言课程教学活动
中,我们采用以Esp8266为核心的NodeMCU模块搭载Arduino集成开发环境,即可完成我们前述的案例进行C语言教学与实践活动。我们计划未来开设以Python 语言为蓝本的课程,在传授语言语法的同时进行人工智能领域的探索,此时我们只需选择性能更为强劲的Esp32为核心的NodeMCU,并更新使用MicroPython 软件模块,即可实现我们的愿景。对实验的案例也只需更换相应的语言代码。同时由于NodeMCU强大的社区,在便捷设置好基础软硬件工作方式之后,学生遇到各种问题既可解决于课堂,也能在课外到合适的处理方法。如此便捷快速的转换方式,使我们不再过分纠结课程转换遇到的各种低级重复问题,进而可以专注于基于Python语言特点的快速高级主题开发领域,比如图像识别、物联网应用。
主要参考文献
[1]郭雪峰. 项目驱动式教学的理论与实践[J]. 和田师范专科学校学报,2010,29(5):59-60.
[2]吴鹏,李冶. 基于ESP8266的单片机网络实验系统[J]. 沈阳师范大学学报(自然科学版),2022(4):310-313.
[3]尚浩. 基于ESP智能控制系统设计与实现[J].九江学院学 报(自然科学版),2020(3):61-64.
[4]谭浩强. C程序设计[M]. 4版. 北京:清华大学出版社,2012.[5]游洋,周旭,刘阳杰,等. 物联网技术应用教程[M]. 成都:西南交通大学出版社,2020.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论