《C语言程序设计》课程思政的教学改革
作者: 吴恋 王院 崔忠伟 赵建川
摘要:自习近平总书记提出“思政课是落实立德树人根本任务的关键课程”后,课程思政已经成了热点关注问题,在计算机课程中加入思政元素已经成为时代发展的必然趋势。文章致力于在《C语言程序设计》课程的教学中加入思政元素,从C语言的知识点中发掘思政元素,从C语言的角度解读思政。使学生在学习C语言过程中将社会主义核心价值观、工匠精神和爱国情怀融入课程实践中。
关键词:C语言;课程思政;教学改革;社会主义核心价值观;爱国情怀
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)28-0124-03
古人云:“敬教劝学,建国之大本;兴贤育才,为政之先务。”从古人政之先务到如今思政为时代热点,在教育中融入思政元素的思考一直在继续[1-2]。当今是一个“互联网+”“智能+”的时代,社会对计算机类专业的人才需求非常大,IT技术对社会的飞速发展扮演着非常重要的推动角色[3-4]。计算机类人才的培养很重要,计算机类人才的正确思想体系培养更重要。《C语言程序设计》是计算机相关专业的专业基础课,是一门重要的编程核心课程,是学生开始从事计算机技术开发的入门课程。本文致力于在C语言的知识点中发掘思政元素,从C语言的角度解读思政。使学生在学习C语言过程中将社会主义核心价值观、工匠精神和爱国情怀融入课程实践中。
1 思政在教学中的重要性
2019年8月,中央提出了“思政课建设只能加强、不能削弱”的要求,这彰显了党中央对思政课的重视,也表达出党和国家对办好思政课的坚定决心[5-6]。习近平总书记强调青年现在正处于拔节育穗期,故正确的价值观可以引导青年的正确育树,在于培育可用之才,让才有所用;育人,在于塑造可用之人,让学生有所长,能所用,是我们对思政教学给予的要求[7-9]。教书育人,教书重要育人更重要,青年不应该只一味地追求成绩,而应该德行兼备,这才是国家所需的人才[10]。思政课的提出大大增强了青年德行兼修的力度,党和国家高度重视思政课的探索与改革。思政一词不仅可以在思政课上体现,还可以在其他的课程中融入思政元素从多角度去推广,多方面去应用。
2 《C语言程序设计》课程思政的总体方案
在2021年7月各类编程语言热度排行榜中C语言依旧是前五[11],即C语言是得到普遍运用的程序语言之一,《C语言程序设计》是大学里一门非常重要的编程基础课。在该门课程中加入思政元素,即是让计算机类专业的学生在学习编程技术的道路上首篇就树立好正确的价值感、道德观、人生观,树立较强的责任意义、工匠精神及爱国情怀。
在《C语言程序设计》课程中融入思政元素,其总体教学架构设计为如图1所示[12-13]。
《C语言程序设计》是一门理论和实践相结合的课程,实践教学环节一定要非常重视。其理论教学和实践教学采用“理论讲解+案例教学+问题讨论+项目驱动+启发感悟”的教学方式,在该教学方式的各个环节中融入多种思政元素,如图1所示。
教学各环节在融入上述思政元素过程中,以习近平总书记在思政上六个方面要求为总体思想进行相关思政元素的融入:
2.1 政治要强
一个有社会主义核心价值观的老师是思政课的关键,正如习近平总书记强调的“要坚持价值性和知识性相统一,寓价值观引导于知识传授中”。十大黑客之一的C语言之父:丹尼斯·里奇研发Unix的初衷就是为了省钱,并且这一初衷使他成了最具传奇的程序员。很显然,他的专业背景为他研发出C语言或者Unix起了很大帮助。他拥有正确的价值观和人生观,故他研发的C语言得到了广泛运用。可以在C语言的第一课向学生介绍他,给学生正确的价值导向和以后发展留下重大作用。
2.2 情怀要深
以近日健康码的第一行代码被国家收藏为例,向学生传递一种情怀——爱国情怀,作为程序员,他们给予了国家很大的便利,有人说14天的奇迹背后的故事是个人、家庭和社会的共同体。以此激发学生的爱国情、强国志、报国行,让学生自觉将其融入坚持和发展中国特色社会主义的事业中,要让他们树立远大的理想与抱负,要为把祖国建设成社会主义现代化强国、为实现中华民族伟大复兴的中国梦作为不懈追求的奋斗目标。
2.3 人格要正
立人为本,从C语言角度可能刚开始学生C语言的代码会自己编写,时间久了也不乏有的学生对C语言测试不认真,认为只要有答案就可以,所以存在过度借鉴的现象。如今借鉴的例子很多,借鉴的方向也很多。借鉴是正常现象,但是过度借鉴会使学生产生依附心里,每时每刻都觉得借鉴一下就算完成了任务。从思政角度老师应该从代码的测试推己及人,告诉学生人格观念必须明确三观要正,并告诉学生过度借鉴的危害,和将社会主义核心价值观贯彻落实的精神。
2.4 自律要严
青少年正处于起身拔节到抽穗开花的时期,这一时期十分重要,教师在教授知识的同时,也应该向学生传递法律知识。例如在C语言中提到代码命名问题时可以以命名规则来告诉学生,命名就应该自律,生活更应该守法,国有国法,家有家规,规则的提出就应该有人遵守,学生应该自我约束,要勇于承担属于自己的责任。
2.5 思维要新
事实上,一个代码我们可以有许多方式去编写,如以一个传统的斐波拉契数列——兔子繁衍问题代码为例,有人长篇大论,有人寥寥几笔,个人思维不同所写出的代码也不同。新思想、新思维、新发展,人们对思维新的人和恪守本分的人的待遇存在本质区别。就发展的趋势而言,思维活跃的人是比较受欢迎的。
2.6 视野要广
视野要广即知识视野、国际视野、历史视野,一个人的格局离不开知识,从学生代码的部分正确来着手,编程不能只有眼前的例子,更应该关注题目本身,视野的局限是当前人们经常犯的错,有时候学生的代码就是为了某个例子设计的,想方设法地把答案做对,但是题目却不对,教师要告诫学生只有眼前的利益是不对的,更应该关注的是未来长远的发展,拒绝鼠目寸光。国际视野也应宽广,华为的鸿蒙系统最底层代码用的就是C语言,有人说C语言的时代已经过了,但是长远看来我们仍应该学习C语言。
3 C语言中融入思政元素的应用案例
C语言其本身是一门实践性强的学科,在其中加入思政元素的可行性似乎不高。其实不然,C语言中的知识点与思政的关系很密切,我们可以从C语言的知识点中寻找到许多与思政相关的元素。
3.1 标识符命名——传递“遵守规则”
C语言的标识符是由字母,数字,下划线组成,且只能以字母下划线开头。当你以数字开头时,代码会出现报错。这里面蕴含的是我们对事物的处理要严格遵守规章制度。
3.2 数据类型——传递“注重细节”
C语言的数据类型有整型,浮点型,字符型等常见类型,在使用时需要注意区分。如图2所示,我们将浮点型数据赋值给定义为整型的变量a,通过输出结果可以看到,其得到的是整型5,而非5.1。在选择数据类型时,一定要注意区分,才能得到程序代码想要实现的效果,细节决定成败。为人或做事,不要误以为细小的错误值得原谅或别人不会介意,要记住“千里之堤溃于蚁穴”。
3.3 数据的输入与输出——传递“自律要严”
众所周知,C语言的输入与输出都有严格的格式,输入数据的是scanf()和gets()两个函数,不同的情况应使用的函数也不同。数据输出的printf()和puts()同样也有两种不同的情况。只有对应使用合理的函数才能出现正确的答案。在生活中应该严格要求自己,力求做到每一步都认真、严谨,养成良好的生活习惯。
3.4 递归——传递“环环相扣”
递归就是循环定义和自我引用的过程。函数定义中直接或间接地调用了本函数,必定存在可使递归调用终止的条件,否则导致出现无限递归。也可以将过程理解为自我复制。递归就像学习的过程,刚开始觉得学着没用,但是通过长时间的学习,你会发现你所学习的内容与接下来的内容环环相扣,缺一不可。日复一日地学习与将来的成功分离不开。
3.5 数组——传递“集体意识”
数组是由一系列数据类型相同的元素组成,数组里每个元素具有索引下标,方便查找和操作。将许多单个的元素聚集在一起作为一个整体进行数据的传递或操作,这提高了编程的效率和程序代码的质量。这蕴意着,同学们应该要有集体意识,很多时候个体的单独行动效果是不好的、烦琐的,而集体的行动能有较好的效果,提高了效率,也更具有力量。所以,应该明白集体意识的重要性,团结在一起的重要性,不能个人主义,要热爱集体、热爱国家。
3.6 链表——传递“环保节约”
链表是一种比较基础的数据结构,有两种情况:一种是空,另外一种是有指向。由于链表不用连续存储,动态开辟内存不会造成空间的浪费。链表相当于一个更方便的数组。链表的使用应该具有算法思想,链表较于数组删除和增加都是方便的。在做事时应该像链表一样,动态分配,不造成浪费。
3.7 函数——传递“工匠精神”
当面对一个实际的系统编程任务时,通常并非把所有代码全部写在main()函数里,一般是要将任务进行“自顶向下、逐步细化”,会将任务进行功能分解,定义很多不同的函数,每个函数专门负责实现某一功能。最后,通过对各种函数的调用来实现所需求实现的任务。将某功能专门定义为一个函数,这可以提高编码的效率、降低代码的冗余,提升代码的整体框架结构、使其更清晰更富有逻辑。这样的一个编程思维和函数的定义体现出了“工匠精神”中的敬业、精益和专注,同学们也应该具有这样的工匠精神。
3.8 循环控制语句——传递“坚持到底”
循环控制语句是对循环体进行多次的循环,循环的重复犹如朝九晚五的人们每天重复同样的事,但是只要日复一日地做一定会有个结果。如果你每天愿意去实践书本、案例中的代码,最终你的思维广度与别人也会不同。
4 结束语
在课程教学中融入思政元素,是一个长久、不断更新迭代、不断完善的过程,本文对《C语言程序设计》这门课程融入思政教学进行了探索,罗列了一些C语言中代表性的知识点与思政融合的案例,供读者们参考。
参考文献:
[1] 唐建,王雷.课程思政促进C语言函数指针教学的实践[J].电气电子教学学报,2021,43(5):1-5,173.
[2] 杨智明.C语言课程思政实践研究[J].中国多媒体与网络教学学报(上旬刊),2021(10):210-212.
[3] 辛向丽.“C语言程序设计”课程思政教学设计研究与实践[J].北京政法职业学院学报,2021(3):101-108.
[4] 徐勇,文杰,蒋宗礼.模式识别课程多层次知识表达设计与配套教材建设[J].计算机教育,2021(9):191-194.
[5] 刘光蓉.面向赋能教育的《C语言程序设计》课程改革探索[J].武汉轻工大学学报,2021,40(4):100-104.
[6] 王晴.《C语言程序设计》课程中的课程思政教学设计研究[J].电子元器件与信息技术,2021,5(7):146-148.
[7] 张利华.“C语言程序设计”课程中思政元素的设计[J].计算机时代,2021(5):103-106.
[8] 杨晓贤,翁雯.程序设计课程思政的教学研究初探[J].计算机时代,2021(3):100-103.
[9] 李小斌,谢春丽,王书芹,等.计算机科学导论课程思政建设研究[J].计算机教育,2021(3):69-72.
[10] 严仍荣.新工科背景下“C程序设计”课程思政教学研究与实践[J].计算机时代,2020(12):76-78,81.
[11] 刘伟,胡为,李小智,等.算法分析与设计课程思政教学研究与实践[J].计算机教育,2020(8):70-74.
[12] 徐勇.直观实例——知识转化范式的“模式识别”课程教学实践[J].教育教学论坛,2020(23):1-4.
[13] 张翠平,赵晖.与创新创业融合的C语言程序设计课程思政教育[J].计算机教育,2020(8):50-53.
【通联编辑:王力】