计算机程序设计类课程的思政教学探索与实践
2023-01-06周海平黄龙军胡珂立
周海平 黄龙军 胡珂立
(绍兴文理学院 机械与电气工程学院,浙江 绍兴 312000)
课程思政是指将三全育人的理念融入各类专业课程,使专业课程与思想政治理论课同向同行,形成协同效应,真正实现高等教育“立德树人”的根本目标。习近平总书记在全国高校思想政治工作会议上指出,高校要把“立德树人”作为中心环节,把思想政治工作贯穿教学全过程,实现全程育人、全方位育人,努力开创我国高等教育事业发展的新局面[1]。教育部颁布的《高等学校课程思政建设指导纲要》明确要求高校结合专业及课程特点分类推进课程思政建设。计算机程序设计是高校理工科专业学生必须掌握的基本技能,我国高校理工科专业的学生占高校学生总人数的70%,因此,高校修读计算机程序设计类课程的学生非常多,在该类课程中开展课程思政教育十分必要。
一、计算机程序设计类课程中进行思政教育的现状和难点
计算机程序设计是逻辑性、技巧性和实践性非常强的一门课程,而传统的思政课程是理论性和说教性较强的课程,两者之间在教学内容、教学方法及思维模式上都存在显著的差别[2]。从教学内容上看,两者之间的关联性很弱,如果在程序设计课程中突然插入与之无关的思政内容,学生会觉得很突兀,这对教师来说是一个很大的挑战,需要把握好嵌入思政内容的时机,否则,不仅达不到思政教育的目的,反而会影响程序设计课程的教学效果,甚至会引起学生的反感和抵制。从教学方法上看,程序设计课程的教学重点在于逻辑分析过程的讲解及编程技巧的练习,而思政课程的教学更注重理论知识的讲授和道德理念的阐述。对于一个非思政专业的教师来说,很难一下子掌握思政课程的教学方法。在思维模式上,程序设计课程训练的是逻辑思维和计算思维,而思政课程传播的是人生观、世界观、价值观。这两种课程的思维方式完全不同,如果在程序设计课程中突然插入思政内容,可能会打乱学生的思维。此外,当今00后大学生是在思想多元化的网络时代成长起来的,其思想受到网络中各种观念的影响,这些观念对传统的思想教育产生了很大的冲击。综上,程序设计课程中的课程思政教育面临着巨大挑战。
近年来,在国家和教育部的号召下,国内高校对课程思政的建设非常重视,纷纷加入课程思政的建设洪流,并且产生了一批丰富的理论研究成果和应用实践案例。文献[3-4]对课程思政的本质内涵与实现路径进行了讨论,指出课程思政既是一种教育理念,又是一种教育方法,同时还是一个系统工程,需要从理论和实践上研究其运行机理。文献[5]对“课程思政”和“思政课程”之间的关系进行了阐述,总结了当前课程思政教育取得的成果及存在的不足,并指出了未来高校课程思政教育着力的方向。文献[6-7]针对Python程序设计语言的课程思政教学进行了研究,挖掘了程序设计课程中的思政元素,分享了思政教育的典型案例。文献[8]提出了基于OBE理念的课程思政改革方案,并以程序设计课程为例阐述了以产出为导向的课程思政教学改革方法。尽管课程思政已经引起了国内诸多高校的重视,并且产生了一批课程思政的理论研究成果,但是从实践的角度来看,目前积累的行之有效的经验并不多,特别是对程序设计类课程来说,还需进一步挖掘合适的思政元素,探索有效的实施方案。绍兴文理学院2017年对全校所有专业启动了课程思政的教学改革,并取得了较好的成效,新华网等国内多家主流媒体曾经对绍兴文理学院课程思政教育取得的成效进行了专题报道[9]。本文就绍兴文理学院近年来在程序设计类课程开展思政教学的路径及案例进行总结与分享,以供其他高校理工类专业的教师参考与借鉴。
二、计算机程序设计课程思政育人目标
课程思政与思政课程不同,思政课程的育人目标相对单纯,不需要考虑专业能力的培养,而课程思政在育人过程中既要关注专业能力的培养,又要考虑思政目标的实现,在实施课程思政教学过程中不能让两者独立进行,而要使两者产生关联,要在专业教学的过程中很自然地嵌入思政元素,从而达到理想的育人效果。因此,课程思政要针对每一门课程选择与其匹配的育人元素,而不能指望在一门课程中堆砌所有的育人元素。在程序设计类课程中,本课题组经过商讨,设定了以下思政育人元素。
(一)人文精神和社会责任感培养
人文精神主要体现在对人的关怀方面,在网络时代,计算机软件使用十分广泛,离开了软件几乎寸步难行,当前我国人口众多,文化水平参差不齐,很多人对软件的使用存在恐惧心理,因此,对程序开发者来说,需要对这部分人多加关怀,在编写软件的时候需要考虑软件的易用性,尽量让人们能够方便使用。此外,在万物互联时代,科技对社会的影响越来越大,作为一名计算机专业的学生,需要具备较强的社会责任感与时代担当精神,励志利用技术改造世界,使社会向更加高效、节能、绿色、生态、和谐的方向发展。
(二)团队合作和集体意识的培养
团队合作和集体意识是现代社会不可缺少的一种精神。当今世界,人类正面临着环境、生态、发展的问题,如果没有合作精神,很难克服这些挑战。对计算机专业的学生来说,在项目开发过程中经常会遇到各种技术上的困难,需要通过团队成员紧密合作才能克服挑战,按时按质完成任务。在团队合作过程中,能培养学生的沟通表达能力、责任感、敬业精神及宽容的心态。
(三)工匠精神与创新意识的培养
我国要实现从中国制造向中国创造的全面跨越,必须建设一支高素质的产业工人队伍,而高素质主要体现在工匠精神与创新意识两个方面,对高校理工科专业的学生来说,工匠精神与创新意识的培养尤为重要。对计算机专业的学生来说,在编写程序解决问题时,有多种方法可以选择,每种方法实现的效果也不一样,可以让学生们多思考,多尝试,找出更好的算法,这个过程很适合培养学生的工匠精神与创新意识。
(四)法律观念与职业道德的培养
公民的法律观念和道德水平是衡量一个国家文明程度的主要因素。当前我国对信息技术的应用总体持开放态度,信息技术应用十分广泛,由此带来的犯罪活动也层出不穷。对于计算机专业的学生来说,利用黑客和网络爬虫等技术从事犯罪活动非常容易,如果学生不了解哪些行为是犯罪行为,很可能不知不觉就走向了犯罪的道路,从而产生严重后果。因此,在程序设计类课程中培养学生的法律观念和职业道德十分重要。
三、教学环节
计算机程序设计类课程包括理论教学、实践练习及小组讨论等多个环节,每个环节都有其自身的特点,在实施课程思政教学的过程中,通过多种环节共同作用,可以起到巩固和加深印象的作用,实现更好的育人效果。
(一)理论教学
理论教学是实施课程思政教学的主要方式,在教学过程中主要以教师讲授为主,做法比较灵活,形式也更加多样化。例如,在培养学生的工匠精神与创新意识时,教师可以事先准备典型的事例和素材,在上课时不经意间拿出来分享,如将《大国工匠》节目中的例子拿出来讲述,并分享自己的体会,启发学生做事情要勇于创新、精益求精。除此之外,教师也可以在讲解编程题时融入工匠精神与创新意识等思政元素,例如,在讲解“百钱买百鸡”问题时,可以由浅入深不断优化算法,使程序的执行效率不断提高,以此鼓励学生们勇于创新、精益求精。
(二)实践教学
如果说理论教学的作用是让学生理解并接受思政元素,那么,实践教学的作用则是让学生通过动脑思考和动手操作巩固并加深对思政元素的感受,通过不断练习,使学生将思政元素的素养转化为自身内在的品质。例如,在培养学生的工匠精神和创新意识方面,课题组开发了一个在线判题系统,并在系统中部署了四百余道编程题,每道题都是由课程组教师精心挑选的,这些题在运行结果和时间上都设置了严格的要求,学生一方面需要不断优化算法,才能避免程序运行超时,另一方面还需要保证运行结果的格式与要求的格式完全一致,否则无法通过判题。学生通过不断练习,从而提升工匠精神和创新意识。
(三)分组学习和讨论
小组讨论是程序设计类课程非常有效的一个教学环节。在具体实践中,可以在一门课程刚开始的时候把一个班分成一些小组,平均5~6人一组。在课程运行过程中,布置一些小型项目,小组以团队的形式完成项目,最后通过小组答辩的方式评价每个组的完成情况。通过分组学习和讨论,一方面可以培养学生的团队合作和集体意识,另一方面也可以提高学生的学习效率和解决问题的能力。此外,对一些有争议的问题,可以组织辩论活动,让学生在小组内部进行讨论,形成小组意见,然后在意见不同的小组之间开展辩论活动。例如,对于是否可以使用爬虫技术获取非公开数据这一问题,不同的小组常常会有不同的意见,可以针对该类问题组织辩论,最后通过教师的点评和总结形成一致意见。通过这种方式,既能培养学生的法律观念和职业道德,又能锻炼学生的思维和表达能力。
四、典型案例
案例1:“水手一号”航天探测器发生事故,说明发扬工匠精神的重要性。
案例描述:1962年,发往金星的水手一号探测器在发射293秒后偏离了预定轨道。经调查,导致事故的原因有两个,一个是探测器制导天线的硬件故障,另一个是制导系统的软件故障。由于制导天线并没有达到应有的设计标准,无法完全发挥其制导功能,因此,探测器只能依靠制导系统来完成制导任务。遗憾的是,在制导系统的开发过程中,某个程序员在编写代码时将公式写错,漏了一个下标。这个下标原本是半径R的第N次平滑时间导数值。由于缺少数据光滑化处理功能,制导系统错误地把正常速度当成异常处理,并造成了不当修正,最终探测器偏离航向。此次事故造成了1 900万美元的损失,并使原定的探测任务推迟了5周。我们通过这个例子,教育引导学生在编写程序时要发扬工匠精神,做到精益求精,尽量减少错误。
案例2:对比求完数的不同方法,说明创新的重要性。
案例描述:寻找100 000以内的所有完数。完数是一个正整数,该数恰好等于其所有不同真因子之和。例如,6、28是完数(6=1+2+3,28=1+2+4+7+14),24不是完数(24≠1+2+3+4+6+8+12)。
图1 两种方法的代码和耗时情况对比
案例3:对爬虫技术滥用现象进行讨论,树立法治观念。
案例描述:爬虫技术是当今比较流行的数据收集方法,目前爬虫技术使用十分广泛,滥用爬虫技术的现象也经常出现,请学生们针对以下现象发表自己的观点:(1)使用爬虫技术收集网络公开数据;(2)使用爬虫技术收集非公开信息,但不进行谋利;(3)使用爬虫技术收集并出售非公开信息。
观点1:可以使用爬虫技术收集任何信息,只要不损害他人利益就行。
观点2:对于公开信息,可以随意爬取,并可以随意使用。
观点3:不论信息是否公开,都必须在国家的法律框架内进行操作,对于法律没有明确规定的行为,也必须遵守道德规范,不能损害他人权益。
在讨论过程中,学生们对观点3普遍持一致的肯定态度,但对观点1和观点2的态度出现了分歧。最后,通过教师的讲解,让学生们知道了爬虫技术的使用规范,必须在国家法律和行业规范的规定下使用爬虫技术。
五、课程效果
为了解学生的学习效果及学习感受,我们要求每位学生在“高级语言”课程学期结束时提交一篇不少于600字的学习体会。我们把所有学生的学习体会汇成一个文档,然后制作了一个词云图,见图2。根据词云图分析学生的学习状况。从词云图中我们发现正面词汇占据了主体地位,而且出现了一定频率的“工匠精神”“团结”“合作”“职业道德”等词语,说明学生经过一个学期的学习整体上反映出一种积极向上的精神面貌,基本达到了课程思政的育人目标。
图2 学生课程体会词云图
六、总结
课程思政既是一种教育理念,也是将育人理念融入专业课程的方法实践,需要在实践中不断总结和探索。通过在程序设计课程中设置人文精神、社会责任、工匠精神、创新意识、团队合作、集体意识、法律观念、职业道德等思政元素的育人目标,并通过理论教学、实践教学、分组讨论等环节来实现思政育人元素的培养,使学生树立正确的人生观、价值观,提升了学生的综合素养。