融入单片机实践项目的 C 语言程序设计课程改革研究

作者: 王先龙 蓝必铁 彭瑶 韦羽 张海峰

融入单片机实践项目的 C 语言程序设计课程改革研究0

摘要:针对 C 语言程序设计课程实践教学现状,本文以梧州学院理工科专业为例,探讨了融入单片机实践项目的教学改革思路。通过设计“点亮 LED”“LED 闪烁”“LED 流水灯”等实践项目,引导学生将理论知识应用于实际场景,提升编程能力。实践表明,该教学改革激发了学生学习热情,提高了学生解决实际问题的能力和编程能力,有效促进了人才培养目标的达成。

关键词:C语言程序设计;编程能力;实践教学;单片机;人才培养

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2025)04-0174-04 开放科学(资源服务) 标识码(OSID) :

0 引言

人工智能是发展新质生产力的重要引擎,随着人工智能上升成为国家发展战略,高质量发展已然成为各级各类教育的生命线[1-3]。2024年政府工作报告要求大力发展数字教育,强调注重学生的数字素养教育,提升学生的数字素养势在必行。C语言程序设计课程是高等院校理工科专业开设的专业基础课,是提升学生数字素养的有效途径[4]。该课程教学在完成理论知识讲解的同时需要注重实践教学开展,注重理论与实践结合。C 语言程序设计课程的实践教学部分是开展本课程教学的一个重要环节,是高质量完成该课程教学的保障。本文提出在该课程实践教学部分融入单片机实践项目的教学改革思路,学生在掌握C 语言相关知识的基础上结合Protues 7和Keil5软件,选择单片机基础实验项目做仿真,在特定的实际应用场景下学以致用,激发学生的学习热情,提升学生分析问题和解决问题的能力,实现学生自主学习。

1 C 语言程序设计课程实践教学现状

通过对C语言程序设计课程实践教学现状分析,总结出该课程实践教学存在的主要问题有四个,分别是实践课时不足、实践教学模式单一、缺少对实践的过程考核及实践过程考核成绩评定缺失。这些问题的存在使得学生在实践教学的过程中参与度不高,学生没有将所学习到的编程理论知识有效地与实践结合,学生学习效果不佳。

1.1 实践课时不足

C语言程序设计课程理论相对抽象,知识点繁多。在教学课时有限的情况下,教师往往注重理论知识讲解,力求将知识点系统完整地呈现给学生,这通常会导致理论讲解占用了过多的课时,压缩了实践课时,进而弱化了实践教学在这门课程的作用。正常的实践课时不足,学生实践的训练量不够,现有的课程实践教学课时很难满足学生对实践实训的需求,学生学习的理论知识与实践有效结合的程度与期望值还存在较大差距[5-6],学生学习效果不佳。

1.2 实践教学模式单一

作为一门实践操作课,C语言程序设计课程的实践教学环节显得尤为重要。教师在完成对应章节理论知识讲解后,现有的实践教学设计更多的是要求学生通过上机完成对老师讲解内容的简单验证,实践教学模式单一。这种验证型的实践教学简单枯燥,也使得学生缺少对问题的主动思考[7-8],不求甚解,只知其然,不知其所以然。由于初学者对编程知识的理解不够,基础相对薄弱,在程序调试过程中往往无法调试运行出正确的结果,程序调试报错的情况时有发生,这也使得部分学生失去了调试程序的耐心,失去学习的兴趣。在理论联系实际的实践教学过程中,学生缺少应用所学知识成功解决实际应用问题的体验,实践教学无法达到预期的教学效果。

1.3 缺少对实践的过程考核

实验过程考核在C语言程序课程实践教学中占有重要的地位,它对于提高学生的实践能力和促进教第21卷第4期 (2025年2月) Computer Knowledge and Technology电脑知识与技术育改革具有关键作用。现阶段在C语言程序课程实践教学被弱化的情形下,实践教学中的实验过程考核环节没有得到应有的重视,实验过程考核存在诸多的问题和挑战。部分教师对实验过程考核的重视程度不够,没有对学生的实验进行全过程的跟踪,没有对学生在实验过程遇到的问题进行实时反馈,没有对实验进行过程考核。缺少过程考核的实验教学无法有效地提高学生的学习效果和实际操作能力,也无法在实验教学中及时发现学生学习的不足。

1.4 实践过程考核成绩评定缺失

现阶段在C语言程序课程实践教学被弱化的情形下,实践过程考核成绩评定往往走过场,走形式。实践过程考核成绩能够客观地评估学生在实践中的表现,可以让教师对学生的实践能力进行客观评价。实践过程考核成绩评定的缺失,教师无法全面准确地评估学生的实践能力,无法全面实时地了解学生的学习情况。实践过程考核成绩没有纳入期末总评,学生没有充分意识到实践课程的重要性,不会积极主动地参与实践活动,实践教学的质量和效果得不到保障。

2 C 语言程序设计课程实践教学设计

在编程实践教学过程中,选用Protues 7和Keil5 软件,Proteus 7软件具有全面的仿真能力,Keil5软件以其强大的功能成为嵌入式软件开发领域的重要工具。在C语言程序设计课程实践教学设计中增加单片机实验部分中的3个较容易实现的项目做仿真,将枯燥乏味的编程理论知识与单片机实践应用相结合,帮助学生更好掌握C语言程序设计课程中的“顺序结构”“选择结构”“循环结构”的知识点,掌握C语言的语法规则,在解决实际问题的过程中理解数据类型、运算符和表达式的概念,激发学生对编程的兴趣,提升学生C语言编程的应用能力。选择的单片机实验仿真项目分别为点亮一个LED、使一个LED闪烁及实现流水灯。编程能力提升实践教学设计详见表1。

由表1可知,编程能力提升实践教学设计增加了3个实践项目,每个实践项目学时安排均为2学时,实践项目由易到难,与C语言程序设计课程中的“顺序结构”“选择结构”“循环结构”知识点一一对应。通过开展仿真实践,学以致用,提高学生解决实际问题的能力,帮助学生实现知识的内化和迁移。

2.1“ 点亮一个LED”项目

在最初的“点亮一个LED”项目中,向学生简单阐述单片机I/O口的内部结构原理,着重引导学生理解单片机引脚输出的0/1在电路中所代表的含义,学会使用Protues 7绘制仿真电路,绘制点亮LED灯的仿真电路,三个实践项目的仿真电路图如图1所示,其中时钟电路及复位等外部电路在此省略。老师向学生阐述Keil5和Visual C++ 6.0两种软件运行的不同,比较这两种软件搭建的程序框架的不同,向学生说明在main()函数中加入while(1)函数的现实意义及“P2_0=0;”语句在与不在while(1)函数里面的区别。在实践项目1中,用P2.0引脚输出低电平,使得连接P2.0引脚的LED灯变亮。在这个实践项目中,学生掌握了Pro⁃tues 7和Keil5软件使用,通过对单片机I/O口的内部结构原理的初步了解,运用所学的编程知识自己编写程序,理解“顺序结构”知识点。在C语言程序设计课程实践教学中引入仿真教学,可以随时自己对所学的理论知识进行验证。在仿真中成功点亮一个LED灯,有助于激发学生学习编程的兴趣,启发学生自主思考,主动学习。图2为点亮一个LED灯的主函数。

2.2“ 一个LED闪烁”项目

第二个实践项目是“一个LED灯闪烁”,引导学生掌握仿真电路中使一个LED闪烁的原理,深入理解单片机引脚输出的0/1在电路中所代表的含义,掌握编程课程中“顺序结构”及“选择结构”知识点在单片机编程中的应用,要求书写规范,培养良好的编程习惯。

在实现一个LED灯闪烁过程中,使P2_0引脚按固定时间间隔实现有规律的高低电平输出,进而对应实现一个LED 灯的闪烁。图3为LED 灯闪烁的主函数。

在学生实际编程的过程中,理解选择结构if语句中条件表达式的真假判断。以学生为中心,引导学生积极思考,针对具体问题的解决办法,如何转换为程序的语言,设计算法,培养学生的编程思维[9]。

2.3“ LED流水灯”项目

最后一个实践项目为“LED流水灯”,结合编程课程中的“选择结构”及“循环结构”知识点,参照仿真电路图理解单片机实现流水灯的原理,其中P2口8个引脚分别接8个LED 灯,从低位到高位依次引脚的电平,使得8个LED灯按照一定规律依次变亮,实现流水灯。图4为LED流水灯主函数。引导学生理解流水灯主函数mian()中whlie(1)循环结构的实际作用,向学生说明程序中左移的应用及在此情景下对应的实际意义,阐述对变量i做越界判断的方法及在此应用场景下对变量i做越界判断对应的现实意义,强化学生将抽象的理论知识转化为直观具体的实际应用能力,为培养出应用型和创新型人才做好铺垫。

C语言程序设计课程的实践环节采用Protues 7仿真教学是一种实用有效的实践教学形式。Protues 7 仿真教学丰富了教学内容,使得程序运行的结果变得直观,由抽象变得具体,这极大地激发了学生学习的兴趣。在仿真设计调试过程中,学生能站在设计者的角度自由地搭建电路,运用编程所学的“顺序结构” “选择结构”“循环结构”的知识完成编程,实现电路设计功能。Protues 7仿真教学加深了学生对编程知识的理解,提高了学生的工程基础意识,有效提升学生的编程能力。

3 成绩评定

C语言程序设计课程成绩评定分为平时考核和期末考核两个部分组成,各占50%,满分100分。平时考核部分由考勤、平时作业、实践项目验收及实验报告四个模块构成,其中考勤和实践项目验收两个模块各占比10%,平时作业及实验报告两个模块各占比15%。三个仿真项目验收根据项目难易程度及完成情况给分,满分10分,学生完成指定的实践仿真项目越多,累计得到的项目验收分就会越多,根据自己仿真项目完成情况,每个学生能够清楚地知道自己的得分情况。C语言程序设计课程成绩评定标准见表2。

4 改革效果

通过对梧州学院理工科专业C语言与程序设计实践教学进行教学改革,教学效果显著。实践教学改革有助于高质量完成课程教学,有助于培养出符合国家战略发展方向的工程技术创新人才,实现人才培养目标。主要体现在以下方面:

1) 实践教学设计激发了学生学习的热情[10]。通过编程控制LED灯的亮灭让学生有满满的收获感,“所见即所得”,促使学生自主学习,交流互助。在调试程序的过程中自主查找语法错误,逻辑错误。

2) C语言与程序设计课程期末总评成绩有了明显提高。学生都能很好地完成实践教学项目,完成实验报告。在完成项目的过程中加深了对编程理论知识的理解,获得了学习的快乐。

3) 实践教学设计提升了学生的编程能力。在实际的应用场景中,理论联系实际,培养解决问题和实践应用方面的能力,最后由实践回归理论,在实际编程过程中把想到的办法用正确程序的语言表达出来,这个过程有效地培养了学生的编程思维,提升了学生的编程能力。

4) 有效助力学科竞赛。通过实践教学改革,光电信息科学与工程专业的学生报名参加蓝桥杯全国软件和信息技术专业人才大赛(电子类单片机、嵌入式组) 及全国电子设计大赛人数有明显的增加,获奖人数也实现了突破,2024参加第十五届蓝桥杯全国软件和信息技术专业人才大赛个人赛获得全国总决赛三等奖一项,实现“以赛促学”良好局面[11]。

5 结束语

人工智能时代对C语言程序设计课程实践教学的开展提出了新的更高的要求,实践教学的最终目的是培养学生的编程思维,培养学生基于编程理论知识解决实际问题的能力,提升编程能力。编程思维的养成和编程能力的提升是一个渐进的过程,是建立在一定的时间和经验的基础之上,是建立在大量的实践训练的基础之上。有效的C语言程序设计课程实践教学设计是一座桥梁,它能够激发学习者的学习热情,能够帮助初学者实现从理论知识掌握到实践应用的高效衔接。在C语言程序设计课程实践教学过程中,结合Protues 7和Keil5软件,选择单片机实验部分开展编程实践教学,重视课程内容更新,鼓励更多的学生参加学科竞赛,以赛促学,激发学生的学习积极性和自主性,提升了学生的编程能力,有效促成了人才培养目标的达成。

参考文献:

[1] 陈鸿.人工智能时代下“ C语言程序设计” 公共课教学改革探索[J].科技资讯,2024,22(4):194-197.

[2] 汪芳,赵左,王毅航,等.人工智能在程序设计教学应用中的探索与实践[J].计算机教育,2023(11):45-50.

[3] 永明.人工智能系统在C语言编程教学中的应用研究[J].信息与电脑,2023,35(21):32-34.

[4] 王彦妍.数字素养如何驱动新质生产力发展?:基于“三个世界” 理论的阐释[J].图书馆建设,2024(3):37-40.

[5] 万明,杨宏鑫,刘婷婷.基于三维一体化教学模式的程序设计课程教学实践探索:以C语言教学为例[J].电脑知识与技术,2024,20(4):160-162+170.

[6] 武航星,李新宇,朱红,等.非计算机专业第一节C语言程序设计课程教学探索[J].计算机教育,2024(1):142-146.

[7] 王绍强,李天晟.C语言程序设计实验教学改革探讨[J].长春大学学报,2023,33(12):93-96.

[8] 李薇,黑新宏,王磊.面向过程考核的C语言程序设计课程实验教学探索[J].计算机教育,2023(12):351-355.

[9] 尹鸿峰,周子程,毛国兴.计算机编程教育中的计算思维与教学策略研究[J].电脑知识与技术,2024,20(8):172-174.

[10] 柯毅明,汤宏誉,刘敏.基于OBE和CDIO的C语言程序设计课程教学改革[J].计算机教育,2024(2):26-30.

[11] 张程,李小民,张延生,等.基于单片机任务导向的C语言课程强化教学改革与实践[J].高教学刊,2024,10(11):125-128.

【通联编辑:王力】

基金项目:梧州学院教育教学改革工程立项项目(Wyjg2023B019;Wyjg2024A005)

经典小说推荐

杂志订阅