APP下载

“C++程序设计”课程思政探索与教学设计

2021-03-18夏军宝王玉柱

教育教学论坛 2021年49期
关键词:程序设计课程思政教学设计

夏军宝 王玉柱

[摘 要] 课程思政是新时代高校思想政治教育发展的内在要求,“C++程序设计”是计算机科学与技术专业的重要学科基础课。在分析编程语言类课程思政建设现状与问题的基础上,对照专业总体课程思政目标,结合多年的教学积累,不断探索课程内容与爱国情怀、工匠精神、职业道德、人文精神等课程思政目标的有机结合,挖掘课程思政元素,改进教学设计。经过两年的建设与教学实践,课程思政建设取得了良好的应用效果,为实现专业总体课程思政目标做出了贡献。

[关键词] 课程思政; C++程序设计; 思想政治教育; 教学设计

[基金项目] 2020年度中国地质大学(北京)教学研究与改革重点项目“计算机科学与技术专业课程思政体系研究”(JGZD202003)

[作者简介] 夏军宝(1973—),男,安徽巢湖人,博士,中国地质大学(北京)信息工程学院讲师,教研室主任(通信作者),主要从事软件工程研究;王玉柱(1988—),男,河南周口人,博士,中国地质大学(北京)信息工程学院副教授,主要从事高性能计算研究。

[中图分类号] G642.0   [文献标识码] A   [文章编号] 1674-9324(2021)49-0164-04    [收稿日期] 2021-06-24

一、引言

习近平总书记在全国高校思想政治工作会议上强调,要坚持把立德树人作为中心环节,把思想政治工作贯穿教育教学全过程,要用好课堂教学这个主渠道,使各类课程与思想政治理论课同向同行,形成协同效应[1]。2020年5月,教育部印发的《高等学校课程思政建设指导纲要》指出[2],工学类专业课程要注重强化学生的工程伦理教育,培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当。课程思政突出体现以人的发展为根本目的。在人的全面发展中,思想道德素质是核心和灵魂。课程思政改变了思政教育“以学科知识系统为中心”的传统做法,高校思想政治工作的中心从“重在思政课程建设”向“重在思政教学体系”转变[3,4]。结合课程特点和专业特性,深入挖掘专业课程的思政内涵,是每位教师应该承担的责任和使命。“C++程序设计”是计算机科学与技术专业的重要学科基础课,为后续的“数据结构”“算法设计与分析”“操作系统”等课程奠定必要的编程与算法思维基础,充分挖掘该门课程中的课程思政元素,对学生专业学习与全面成长具有重要意义。

二、现状分析

我校“C++程序设计”的培养目标为通过该课程的学习,培养学生掌握C++基础语法,熟悉标准模板库(STL)中的常用组件及算法,掌握C++面向过程、面向对象及泛型编程的范式与方法,熟悉Qt、Dev等集成开发环境的使用。同时,通过综合实践项目的训练,提高学生分析和解决实际问题的能力,培养学生利用工具管理项目的能力,并养成良好的编程习惯。这类以编程语言和程序设计方法为主要教学内容的课程,被普遍认为是难以有效开展思政建设的课程之一。通过问卷调查和师生座谈会等途径的调研和分析,开展编程语言类课程的思政建设,主要存在以下几个方面的困难:(1)该类课程以学习编程技术为主,与思想政治主题存在较大的距离,教学内容难以和思政元素有机融合。部分教师担心在教学过程中生硬地植入思想政治教育内容会引起学生的逆反心理。(2)该类课程内容凝练内聚,部分教师担心课程的思政元素较少,以及不同课程之间的重复建设等问题,在具体实施思政建设过程中,无从下手。(3)新一轮培养方案修订之后,部分课程的学时进行了压缩。“C++程序设计”从64学时调整到48学时,教师担心在教学过程中开展思想政治教育会影响正常的教学活动,使有限的学时更加紧张。(4)绝大部分编程课程中所使用的编译系统和编程语言都源自西方发达国家,国内的技术现状与其存在较大的差距,教师担心这些会对学生造成一定的负面影响。(5)从学生的角度出发,学生并不拒绝思想政治教育,但相对于重复、“填鸭式”的灌输教育与口号式宣传,学生更愿意接受引导式的自主探索与思考,从而也增加了这类课程的思政建设难度。

三、课程思政目标设计

为有效解决“C++程序设计”课程思政建设较难的问题,本文建立了自顶向下、目标驱动的课程思政建設基本原则与方法。首先,对照计算机科学与技术专业的总体课程思政目标,分析所要建设课程的主要教学活动,根据课程特点,明确该课程能够支撑的思政目标,而不是盲目地在一门课程中追求所有的思政目标,同时也能有效建立学科体系下多门课程之间的协同;其次,自上而下建立该课程思政目标与教学活动的映射;最后,挖掘教学活动中的具体课程思政元素并完善教学设计,实现思政元素和专业教学内容的深度融合。

对照学校计算机科学与技术专业的总体课程思政目标,综合考虑教学内容和教学活动,“C++程序设计”课程思政目标应包含[5,6]:(1)激发学生爱国情怀,树立社会主义核心价值观;(2)培养精益求精的工匠精神;(3)培养团队协作与创新意识,树立职业道德意识;(4)培养探索求真的人文情怀。上述课程思政目标和教学活动的映射关系如表1所示。

四、课程思政元素挖掘与教学设计

针对课程思政目标,分析不同教学活动过程中的知识体系,挖掘其中的思政元素;寻找思政元素与知识体系的结合点,根据思政目标和教学安排不断优化课程内容建设;通过完善教学课件、教学案例、教学方式、课外作业与实践任务等方面的教学设计,实现思政元素和知识体系的深度融合。在教学实施过程中,根据教学实施效果和学生反馈等评价机制,持续改进课程教学内容和教学设计。

在对两轮课程思政实践总结的基础上,“C++程序设计”在思政目标的框架下开展课程思政元素挖掘与教学设计并持续改进,具体内容如下。

(一)激发学生爱国情怀

爱国情怀是课程思政建设的内核与引领,是中华民族优秀传统文化的宝贵精神财富,是实现中华民族伟大复兴中国梦的强大精神动力,是落实“培养什么人、怎样培养人、为谁培养人”的关键。教学设计包括两个方面:在课堂教学过程中,讲解祖冲之圆周率等古代中国经典算法的实现原理、实现方法和先进性,该算法所计算圆周率的精度直到一千年以后才被打破,展示了中华文化与智慧,增强了学生的民族自信和文化自信。在课外实践教学环节,布置课外研究作业,要求学生调研C++集成开发环境和编译器等方面的现状,以及C++开源社区的发展趋势与特点,使学生全面了解我国在这些领域存在的差距及安全隐患,建立自主知识产权的意识,发现弯道超车的机会与发展机遇,激发学生的爱国情怀和学习热情。

(二)培養精益求精的工匠精神

精益求精、与时俱进、追求极致的工匠精神,是推动计算机与技术专业日新月异迅猛发展的重要动力,教学设计包括三个方面:在课堂教学过程中,以穷举法求解并优化百钱百鸡等经典问题为基础,首先介绍三重循环求解的基本思路,逐步优化到二重循环求解,最终优化到一重循环求解,通过算法分析与对比,使学生体会逐步优化、提高代码质量和效率的乐趣,感受并接受精益求精地追求性能极限的工匠精神。通过分析历史上典型的代码异常和bug所造成的灾难,提升学生对代码中异常处理和容错能力的关注。在课内实践教学环节中,结合异常处理实习任务,引导学生全面分析可能的异常点和处理策略,感受不断提升代码可用性、可靠性与容错纠错等方面代码质量的工匠精神。在课外实践教学环节中,引导学生完成STL中集合容器的模拟开发,循序渐进完成接口设计、内存管理、数据结构与算法实现、泛型容器、通用算法、异常处理等方面的设计开发,理解在实现高可用通用工具开发过程中反复调试、精雕细琢、持续完善的工匠精神。

(三)树立良好的职业道德意识

职业道德是课程思政建设的重要内容,是培养社会主义建设者和接班人的关键,教学设计包括三个方面:在课堂教学过程中,结合标识符命名规则,进一步讲解良好编码风格和编码规范的重要性,编写程序不但要追求功能正确,还要追求代码的质量、可读性、可维护性,提升学生的职业素养。在课堂教学过程中,结合C++面向对象编程过程中的封装与接口等知识点,进一步讲解类的接口设计原则与基于接口编程的编程规范,使学生体会在工程项目中为每个类封装复杂的逻辑并向外部提供简单易用的接口,提升学生遵守职业规范的意识。在课内实践教学环节中,通过讲解多文件、多模块复杂项目的组织管理,分析多人团队开发中的协作精神与契约精神,剖析协作过程中的信任与异常检测之间的平衡,逐步树立良好的职业道德意识。

(四)培养探索求真的人文情怀

人文情怀是课程思政的基础支撑,对提升学生综合素养和全面发展有重要意义,教学设计包括两个方面:在课外实践教学环节,引导学生探究STL中代表性容器组件(如Vector)的源码实现,探根求源理解该容器的实现原理和实现方法,同时感受大师们的良好编程风格,以及在实现这些高可用性及高性能通用组件时所付出的艰辛努力和细致入微的匠人精神。在课外教学实践环节,通过课外调研任务,研究C++开源社区的运作机制,尝试使用开源社区的共享组件,感受开源社区的开放、自由、共享、奉献、尊重的人文精神,形成对过度商业化所造成的垄断、封闭、独占的有效制约。

五、实践效果

通过近两轮的教学实践,根据自顶向下、目标驱动的课程思政设计原则,逐步明确“C++程序设计”课程所需要支撑的课程思政目标,不断挖掘教学活动过程中的思政元素,通过调整教学内容与知识结构、教学素材、实践作业等方面的教学设计,逐步完成课程知识与思政元素的有机融合,实现了课程所要支撑的爱国情怀、工匠精神、职业道德、人文情怀等方面的思政目标,有效解决了编程语言类课程思政建设困难的问题。“C++程序设计”的课程思政建设主要特点如下:(1)在教学活动过程中未规划单独的思政内容讲解,在学习和编程实践过程中提升职业素养,感受、思考、探究思政话题,实现思政元素和教学内容的有机融合,以潜移默化的方式完成思政教育,拓展课程思政内涵的同时不增加学时负担,具有较好的操作性。(2)以课堂实践作业和课外实践作业的形式开展课程思政,促使学生主动探索与思考,避免了被动式、填鸭式教学所带来的抵触情绪与逆反心理,学生主动参与研讨的积极性和人数明显增加。(3)根据课程特点和教学活动,基于自顶向下的原则确定课程能够支撑的思政目标,围绕思政目标针对性地完成教学设计,而不盲目追求思政目标的全面覆盖,有效避免了多门课程之间思政元素的重复建设,并形成专业课程体系间的协同效应。(4)在教学过程中避免空洞的说教,要客观分析问题,不回避我们在相关技术上与西方发达国家的差距,通过课外实践环节,激励学生自主调研,发现潜在的优势和发展机遇,激发学生的学习热情。

六、结语

通过两年的课程思政建设,将“C++程序设计”的教学内容与思政目标有机结合,不断优化课程设计,学生的学习热情得以提升,乐于接受课程思政建设后的教学内容和教学设计,能够主动参与相关的话题讨论和研究,同时,学生在编码规范、编程风格、团队协作和契约精神等方面的职业素养和职业道德意识明显提升,课程思政建设取得初步成效。

参考文献

[1]习近平在全国高校思想政治工作会议上强调:把思想政治工作贯穿教育教学全过程 开创我国高等教育事业发展新局面[N].人民日报,2016-12-09(1).

[2]教育部关于印发《高等学校课程思政建设指导纲要》的通知[EB/OL].(2020-05-28)[2020-06-20].http://www.gov.cn/zhengce/zhengceku/2020-06/06/content_5517606.htm.

[3]董勇.论从思政课程到课程思政的价值内涵[J].思想政治教育研究,2018,34(5):90-92.

[4]高德毅,宗爱东.从思政课程到课程思政:从战略高度构建高校思想政治教育课程体系[J].中国高等教育,2017(1):43-46.

[5]夏小云,李绍燕,朱蓉,等.新工科背景下计算机类课程思政教学研究与实践[J].计算机教育,2020(8):75-78.

[6]黄复贤,邵丽丽.计算机类专业课程思政的探索与研究[J].菏泽学院学报,2019(3):46-50.

Exploration and Teaching Design of “Curriculum Ideological and Political Education” in the Course of C++ Programming

XIA Jun-bao, WANG Yu-zhu

(School of Information Engineering, China University of Geosciences(Beijing), Beijing 100083, China)

Abstract: “Curriculum ideological and political education” is the internal requirement of the development of ideological and political education in colleges and universities in the new era. C++ Programming is an important basic course of computer science and technology major. Based on the analysis of the current situation and problems of construction of programming language courses,  compared with the overall goals of ideological and political education goal of “curriculum ideological and political education” of the major, and combined with the authors’ years of teaching experience, this paper explores the organic combination of the course content and the ideological and political contents of the course, such as patriotism, “craftsmanship spirit”, professional ethics and humanistic spirit, excavates the ideological and political elements of the course, and improves the teaching design. Two-years’ teaching practice has witnessed the good application effect of “curriculum ideological and political education” construction, which contributes to the realization of the overall goal of “curriculum ideological and political education” of the  major.

Key words: “curriculum ideological and political education”; C++ Programming; ideological and political education; teaching design

3535501908232

猜你喜欢

程序设计课程思政教学设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
发挥专业特色 实施“课程思政”
高职高专院校C语言程序设计教学改革探索
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
提高课堂教学有效性的研究
PLC梯形图程序设计技巧及应用