1. 背景
近日,教育部印发《高等学校课程思政建设指导纲要》,指出高校要深化教育教学改革,充分挖掘各类课程思想政治资源,发挥好每门课程的育人作用,全面提高人才培养质量。课程思政建设,是人才培养的应有之义,更是必备内容,必须坚持立德和树人不可割裂,必须将价值塑造、知识传授和能力培养三者融为一体。
《C语言程序设计》是一门重要的公共基础课,涉及的专业面广,学生人数多。课程以Visual C++6.0为程序实现工具,重点讲授C语言程序设计的基础知识与基本方法,在使学生掌握利用计算机解决实际问题的基本过程和思维规律的同时,强调“学会做事、学会做人、学会学习和学会与人相处”的教育贯穿于课程教学过程,承担起全员育人的责任。实现全程育人、全方位育人,努力开创我国高等教育事业发展新局面 [1]。在课程教授过程中,提出“课程思政”的育人理念,将课程思政教育融于教学改革之中 [2]。本文以公共基础课《C语言程序设计》为依托进行“课程思政”的教学探索研究。
2. 内容实施过程
《C语言程序设计》是面向全校各专业学生开设的一门公共基础课。授课学生数量庞大,涉及专业广,这对培养信息化人才起重要的基础作用。本课程的教学任务,是培养学生基本的程序设计能力与运用计算机进行逻辑思维的能力,为学生今后在学习中工作中应用计算机解决实际问题做好铺垫,打下基础。
坚持“四个相统一”全面推进课程思政建设工作。
坚持知识传授和价值引领相统一。育人为本,德育为先,课程思政建设就是要实现价值塑造与知识传授、能力培养一体化推进,把专业教育与思想政治教育紧密融合 [3],形成协同效应。
坚持显性教育和隐性教育相统一。在充分发挥思政理论课重要作用的同时,用好隐性教育渠道,挖掘各类课程中蕴含的思政教育元素,既形成“惊涛拍岸”的声势,也产生“润物无声”的效果。
坚持统筹协调和分类指导相统一。既加强顶层设计协调推进,建立包括内容体系、教学体系和工作体系在内的一整套课程思政建设育人体系,也要针对不同专业、不同课程的特点强化分类指导,不断提高课程思政建设的水平。
坚持总结传承和创新探索相统一。一方面及时总结各地各高校典型经验,形成可复制推广的经验做法;另一方面通过选树典型,以“点”带“面”,鼓励积极探索,形成课程思政建设全面推进的良好局面。
《C语言程序设计》主要的教学目标是:通过本课程的学习,主要使学生获得C语言基础语法、顺序结构、条件结构、循环结构、函数、结构体、指针、文件等方面的知识;使学生能够熟练阅读和运用结构化程序设计、编写、调试和运行C语言程序。培养学生程序设计、开发和测试能力,应用计算思维方法去分析和解决问题的能力及团队合作精神,为今后后续课程和进一步获得程序设计相关知识等奠定坚实的基础。
围绕教学目标,结合具体的C语言知识内容,在教学设计中挖掘课程思政元素,在教学过程中将知识点与课程思政元素有机揉合,采取案例驱动的方式合理安排课程知识点和课程思政元素的契入点,在课程知识点的灌输中渗透育人工作,实现课程教学目标。
课程思政的主要案例如下:
案例1:C语言的历史、特点和发展是《C语言程序设计》第一单元内容,教学目标是通过学习C语言的历史、特点和发展,掌握C语言的起源,主要语法特点和应用领域。结合教学目标,在介绍C语言发展的历程时,我们可以融入课程思政案例:随着时代和社会发展的需要,编程语言也跟着发生了很大的改变,旧有的语言不断的完善、增加了新的特性;同时,也有很多优秀的新编程语言出现。每种语言都有一个漫长的发展改进历程,但站在巨人肩膀上的我们,应该记得那些弥足珍贵的历史中的瞬间,正是这些进步发展一点点,一步步推动着时代的发展,社会的变迁。
案例2:C语言的数据类型和运算符是《C语言程序设计》第二单元内容,教学目标是通过学习C语言的数据类型和运算符,掌握C语言的各种基本数据类型(整型、浮点型、字符型)的常量和变量的定义和使用,以及各种运算符及其构成的表达式。结合教学目标,学习基础语法的同时,融入课程思政案例,如图1所示,当参与除法运算的数据都是整型数据和有实型数据时,结果是完全不同的,引导学生在学习、生活和以后的工作中要严格依法依章办事,讲规则,守规则,办任何事情都要一丝不苟,容不得一点违章违法,做遵纪守法守则的文明人。

Figure 1. Operator and expression instance diagram
图1. 运算符及表达式实例图
案例3:C语言的基本程序结构是《C语言程序设计》第三单元内容,教学目标是掌握C语言的基本程序控制结构:顺序结构、选择结构和循环结构以及实现控制结构的控制语句(if、else、for、while、do-while等)。讲解选择结构时,融入课程思政案例,如图2所示,区分输入的字符是大写,小写,数字字符还是其他字符,不同的输入值,就有不同的输出结果,引导学生面临多种选择要慎重抉择,承担抉择之后带来的后果,不要患得患失,坚持到底,持之以恒。通过训练,使同学们养成良好的逻辑性,同时也通过条件语句教育学生,在生活中“鱼和熊掌不可兼得”的道理,千万不要做违背良心的事情,不要做有背社会公德的事情。

Figure 2. Selection structure example diagram
图2. 选择结构实例图
案例4:循环结构是第三单元中的内容,主要教学目标是解决重复语句的简化。在很多情况下,问题的解决通常要对某些操作进行大量的重复,如进行统计和累加等,可以使用循环结构来简化程序结构。我们通过一个实例来说明循环结构的应用并融入思政案例。
通过图3分析运行结果,可以看到在输入数据时,1.01的365次方和0.99的365次方是有天壤之别的,进而想到每天努力一点点,积少成多,每天偷懒一点点,结果就差之千里了,让学生体会不积跬步无以至千里的道理。

Figure 3. Example of a cyclic structure
图3. 循环结构实例图
案例5:数组部分是《C语言程序设计》第四单元内容,教学目标是通过讲解数组的定义,让学生掌握数组的应用。数组是具有相同数据类型的一组数据,有相同的数据类型,相同的名称,通过不同的下标变量来引用每个数组元素。融入以下课程思政案例,物以类聚、人以群分,近朱者赤、近墨者黑的思想,指导学生要多跟具有正能量的朋友交往,向时代榜样先锋看齐学习。
案例6:函数部分是《C语言程序设计》第五单元内容,教学目标主要是让学生理解函数的作用、定义、函数的参数传递及调用,变量的作用域和生命周期,进而能够根据函数定义的格式编写函数程序,能够分析函数调用时的参数传递方法,实现程序模块化设计。融入课程思政案例,面对问题团队之间要分工合作,团结协作,面对困难分而治之,逐个击破,获得积极向上、奋发有为的精神力量,在懂得函数功能的同时,也增强了团结、合作意识 [4]。
案例7:指针部分是《C语言程序设计》第六单元内容,教学目标是掌握指针的基本概念和指针的使用。指针存放变量的地址,数据就可以通过变量名或指针来访问。通过使用指针,知道程序对象在内存中的存储位置,可以使用该地址来访问对象,我们将更加高效和方便的使用宝贵的内存空间,从而编写出精炼而高效的程序。融入课程思政案例,通过使用指针等复杂程序的调试可以锻炼学生的耐心和战胜困难意志力,看似复杂的操作只要有耐心和意志力,终会解决疑难,取得成功。
案例8:文件部分是《C语言程序设计》第七单元内容,教学目标是掌握文件的读写的基本方法。程序数据的输入输出除了标准输入输出设备文件之外,还可以利用数据文件完成,C语言把文件看作字节流,通过文件指针指向字节流,采用系统函数对文件进行读写。文件章节的学习中融入课程思政案例,穿插对信息资源的认识,理解文件的操作流程,打开,读写,关闭,一步都不能省略,学会保存资料,学会资源共享,学会温故知新,提高信息安全意识。通过综合性实验进一步提高学生的团队意识、战胜困难的毅力和职业素养。
分析:从以上案例可以看到,无论是简单的基本语法,结构化控制语句,还是数组,函数,指针,文件等,C语言程序设计作为计算机语言,本身是要求严谨、一丝不苟的,是一个不断调试,不断测试直到成功运行的过程。学C语言程序设计是为了开发程序,程序要求逻辑严密,要求精益求精。无论是人机界面的友好性,还是程序本身的容错性,这些都体现了工匠精神——把事情做到极致 [5]。
3. 效果改进和对策建议
通过将思政元素案例巧妙地融入授课内容及实验内容,使得学生在听课和实验的过程中地受专业教育和思政教育,达到潜移默化的育人效果 [6]。
在课程内容上,将育人理念融入到其中,围绕课程目标铺展课程思政目标。
在课堂教学设计上,教师的关于课程知识点的讲解可以把专业知识和思政结合。
在教学资源建设上,积累思政元素教学资源,编写包含“课程思政”的教材。
在课程实施载体上,结合课程内容、上机实践等,把思政教育融入课程学习中。例如,让学生爱护机房环境,爱护机器,不随便乱扔垃圾,不损害机器,文明遵守上机规范。
在实现载体途径上,利用“腾讯课堂”、QQ群及网络教学平台等多种线上手段加强学生课堂的学习效果,引导学生文明合理使用网络资源,全方位地提高教学效果。
课程思政要落地,还需要将课程思政纳入到考核方案,即将课程的专业知识、技能和思政教育融为一体。所以,课程考核内容除了掌握相关知识点外,还会分组让学生完成小型软件系统的实训,通过实现这个系统,来考察学生的克服困难,解决实际问题,团队合作性等素养,进而评判思政育人效果。
4. 结束语
本文以《C语言程序设计》课程为例,强调思政元素和课程知识的水乳交融,以润物无声的方式涤荡学生的心灵,获得学生情感上的共鸣,实现教学和育人双向结合,实现高校立德树人的教学目标 [7]。教授课堂知识的同时融入思政案例讲解,将思政教育潜移默化融入课堂教学中,让学生受益终身,为培养德才兼备的社会主义新型人才贡献一份力量。