“计算机与程序设计基础(C++)”课程思政实践探索

作者: 江敏 黄晓涛

“计算机与程序设计基础(C++)”课程思政实践探索0

[摘 要] 为全面贯彻党的教育方针,落实立德树人根本任务,全面推进各类课程与思想政治理论课同向同行,实现协同育人教育理念,作为长期在高等学校从事计算机基础教育的教学工作者,应深刻地认识到课程思政不仅是课程思想观念的改变,更是一种教育理念的更新。在“计算机与程序设计基础(C++)”课程中,从教学大纲、教学目标着手,积极探索将思政元素有机融入课程教学过程的方法和手段,重构教学设计,挖掘若干有思想政治意义的教学实例,对学生进行潜移默化、润物无声的思想政治教育,将传统计算机基础课程转变成融入思想政治教育的综合课程,达到将知识传授、能力培养与价值塑造融为一体,全面推进课程思政建设的教育目标。

[关键词] 课程思政;思政元素;思想政治目标;教学设计;教育目标

[基金项目] 2019年度教育部产学合作协同育人项目“‘计算机与程序设计基础(C++)’示范课程建设”(201902100021);2023年度华中科技大学校教改项目“以科学思维为核心的‘计算机与程序设计基础’课程思政探索”

[作者简介] 江 敏(1972—),女,湖北武汉人,硕士,华中科技大学网络与计算中心计算机基础教研室讲师,主要从事计算机基础教学和相关研究;黄晓涛(1966—),女,湖北武汉人,博士,华中科技大学网络与计算中心计算机基础教研室教授,主要从事计算机基础教学和相关研究。

[中图分类号] G648.1 [文献标识码] A [文章编号] 1674-9324(2024)32-0001-05 [收稿日期] 2023-07-10

引言

2020年6月,教育部印发《高等学校课程思政建设指导纲要》,为每一位教育工作者指明了方向:把思想政治教育贯穿人才培养体系,全面推进高校课程思政建设,发挥好每门课程的育人作用,提高高校人才培养质量[1]。

传统课堂上,教师只关注课程专业内的知识内容和体系,很少关注学生的思想动态,更不会注意学生思想政治觉悟方面的问题。而现在强调的课程思政则要求教师从教学目标、教学大纲、教学内容、教学设计等多个维度融入思政元素,将传统单纯的专业课或基础课转变为融入思想政治教育的综合课程,因此课程思政不仅意味着课程思想观念的改变,更意味着教育理念的更新。从教育理念来看,课程思政试图扭转所谓“知识至上”和“价值中立”的教育理念,打破以往把学生的思想政治教育仅仅当作是思想政治课程的教学目标和思想政治理论课教师的责任的错误认识。强调高校所有教师在其所有课堂上不仅要承担起教书的任务,还要承担起育人的责任,必须深入挖掘蕴含在专业知识中的思想教育资源,将思政元素有机融入专业课程的教学过程,对学生进行潜移默化、润物无声的思想政治教育,将知识传授、能力培养与价值塑造融为一体,使专业知识传授与思想政治教育相统一[2]。

一、“计算机与程序设计基础(C++)”课程概述

华中科技大学的“计算机与程序设计基础(C++)”是面向所有非IT专业理工科学生开设的一门计算机类的基础课程,在大一上学期进行。教学内容包括计算机基础概论和C++程序设计,且以C++程序设计内容为主,教材是电子工业出版社出版的自编教材,其中计算机基础概论内容所占篇幅为一章,内容包括计算机的发展史、冯·诺依曼计算机工作原理、计算机的信息存储和计算机程序设计算法基础。C++程序设计内容分8章介绍,包括C++程序设计的基本语法体系和程序设计的基本方法论。

(一)课程教学的知识目标

1.在了解计算机自动执行的本质和程序设计重要性的基础上,掌握计算机的信息存储和工作原理。

2.在了解C++程序设计语言基本语法结构的基础上,掌握程序设计思路和基本方法。

(二)课程教学的能力目标

1.让学生掌握编程等计算工具,初步具备用抽象/算法等思维方式分析、重构、归纳和解决问题的能力。

2.训练学生利用计算机解决生活、学习、专业领域中实际问题的意识与能力。

(三)课程教学的素质目标

1.培养学生严谨求实的科学素养和精益求精的职业精神。

2.培养学生的大国工匠精神,激发学生的爱国主义情怀和民族自信心。

通过以上“三位一体”的课程教学目标,希望在“计算机与程序设计基础(C++)”课堂中创新课程思政教学模式,将思政元素和教学内容完全融合,使课堂不仅是传播知识的主战场,也是弘扬主旋律、正能量的主阵地。

二、“计算机与程序设计基础(C++)”课程思政目标及设计

计算机技术是人工智能、5G时代人才不可或缺的基本技能,是学生未来职业技能的关键保障。在教学过程中深入挖掘“计算机与程序设计基础(C++)”课程的思政元素,以习近平新时代中国特色社会主义思想为指导,坚持知识传授和价值引领相结合,在教学中融入社会主义核心价值观,引导学生树立正确的世界观、人生观、价值观,提高学生明辨是非的能力,养成严谨的科学素养。

“程序设计”是一门实践性很强的课程,程序编写贯穿其始终,所以程序设计过程中所蕴含的“大道至简、严谨求实”的科学素养和“无规矩不成方圆”的做人原则也贯穿课程始终,可以真正做到潜移默化、润物无声。教学过程中将生活中的真实案例引入课堂,贴近学生生活,使学生通过课堂所学知识解决案例问题更能引起共鸣,然后以此为契机引导学生思考问题,挖掘人文内涵,培养学生的家国情怀、个人品格和科学观,学会做人做事的道理,达到既掌握课堂知识又及时消化知识并用于解决实际问题的目的。学生获得成就感的同时获得感悟并对照日常生活,从而达到思政育人和课程知识的互融互通。表1是“计算机与程序设计基础(C++)”课程中思政教育内容与专业知识点的对应关系。

三、“计算机与程序设计基础(C++)”课程思政的实施过程

(一)制订教学计划,全方面开展课程思政

“计算机与程序设计基础(C++)”课程是培养学生计算思维和课程思政育人的载体。该课程已成功申报国家一流线下本科课程,且在中国大学MOOC上已上线6期,已经建成了比较成熟完备的线上线下教学资源。在此基础上课程教学团队重新梳理教学内容,积极挖掘思政元素,丰富教学内容,在课程教学内容的设计、教学模式和方法等方面进行了全方位的探讨和革新,重新设计了包含课程思政内容的教学大纲,在中国大学MOOC的线上资源中增加了课程思政教学案例,综合运用案例教学、启发式教学、情景教学、小组讨论、小组合作完成项目等教学手段和方法,促进网络信息技术与专业教学的深度融合,开发并完善课程思政资源,实现线上互动和线下课程相结合的育人模式。注重教材、教师和教学三大要素,定期在教学团队中开展培训和教学研究活动,积极探讨课程思政教学方法和教学思路,共建共享课程思政教学资源。

在课堂教学中,集团队之合力深入挖掘蕴含在课程知识点中的思政元素,处理好在教学中引入课程思政的时机和方式、教学活动的组织等,真正做到潜移默化、润物无声。实际授课过程中经常采用问题创设、案例导入、故事导入等方式引导学生思考、讨论,灵活组织课程思政教学活动,提升思政融入深度和教学效果。通过线上学习平台,课前可以预先将学习资料和相关问题展现给学生,为学生预留出充足的思考时间和空间;课堂上进行有效讨论,形成终结性的、正确的、有意义的结论,在很多时候这里所说的正确的、有意义的结论往往就是代表正确价值引领的思政元素,课程思政目标同时达成[3]。

(二)课程思政教学实例

1.知识点1:计算机中信息数据的存储。计算机是一种能够存储数据并自动计算的信息处理设备。生活中的数据大都是用十进制表示的,那么计算中如何表示数据呢?在开始学习课程时,这是必须弄清楚的首要问题。

问题导入教学方式:课前在SPOC教学平台发布预习思考问题。(1)计算机处理的数据类型有哪些?为什么要分类存储和表示?(2)将十进制数13.3125和13.313转换为二进制数,思考计算机中要存储这样的数值数据必须解决哪些问题?具体是如何处理的?对后续的程序设计有什么影响?(3)同类型的数据为什么必须指定固定长度的存储空间来存储,是不是有浪费存储空间的嫌疑?这种处理方式带来的弊端是什么?(4)原码可以存储数值数据,为什么还要引入补码?

通过讨论得出的一致结论是需要解决如下问题:小数点的存储;正负号的处理;实现存/取的一致性;在考虑数据存储的同时,还要考虑数据计算的便捷性和可实现性。在此基础上,数据溢出问题带来的计算机处理数据的局限性、计算机中浮点数是不精确的和计算机中定点数是以补码形式存储的等关键问题也就不难理解了,而且可以入心入脑,留下深刻印象,为后续的程序设计做好铺垫。

故事导入:(1)课程中引用了一个非常著名的案例,1991年海湾战争中,美军Dhahran营地的“爱国者”导弹未能有效拦截“飞毛腿”导弹。(2)计算机中因数据溢出而导致的严重问题案例:美国阿丽亚娜5型火箭因溢出问题升空37秒后发生爆炸。

课后提供资源链接让学生详细阅读相关内容,学生也可以自行上网搜索更多相关信息,加强对知识点“计算机中数据存储”的认识和理解,为后续进行程序设计处理数据时了解需要注意的问题做铺垫。

知识点1蕴含的思政内容:(1)科学容不得半点马虎,培养学生“精益求精,严谨细致”的科学素养。(2)事情可能存在两面性,是把双刃剑,解决一个问题的同时可能会引出新问题,所以未来要依靠大家在此基础上继续研究,创新发展。(3)考虑问题要全面,要着眼全局,眼光长远。生活中我们不能只顾眼前,要用发展的眼光看问题。

2.知识点2:循环结构。程序设计就是根据算法使用某种程序设计语言编写程序的过程。算法是解决问题的方法步骤,是有流程的。任何复杂的算法都是由顺序结构、选择结构和循环结构组成的。其中,循环结构是解决复杂问题的核心步骤,它可以将复杂问题简单化。

情景教学方式:用视频的形式为学生展现社会上和校园里存在的各种不同名目的诈骗、“套路贷”等现象,然后聚焦具体的“套路贷”事件,如无抵押贷款10 000元,贷款期限1年,年息是5%(即每天只需支付1.37元的利息),附加条款是1年后如果逾期没有还款,利息翻番。

实践教学方法:用所学知识解决生活中的实际问题。请编写程序计算半年到期后一次性应偿还本金和利息共多少钱。如果1年后未能如期偿还本息,那么结果如何呢?该程序在设计过程中并没有难度,大部分学生可以很快写出相应的代码并运行。面对程序的运行结果,绝大部分学生不敢相信,引导学生分析讨论该案例的套路点在哪儿?通过课程资源平台表达各自的感想。

知识点2所蕴含的思政内容:(1)引导学生意识到“套路贷”的危害性,不能触碰。看待事物不能被表面现象迷惑,要养成勤思考的习惯,透过现象看本质。(3)引导学生发扬中华民族勤俭节约的优良传统,培养“学问勤中得,富裕俭中来”的传统美德。

3.知识点3:函数。使用函数是为了使程序的逻辑更加清晰,将相对独立的功能代码写成函数,可以增加程序的可读性,有益于代码的维护。结构化的程序设计方法就是利用函数将复杂的问题从上到下逐步分解,直到每个问题都变成容易解决的小问题为止,如果每个小问题都解决了,那么整个大的复杂问题也就得以解决。因此,函数在“程序设计”课程中具有举足轻重的地位,是学习程序设计者必须掌握的内容。

启发式教学:在选择结构部分,学生已经掌握了如何用选择结构编写程序实现求解一元二次方程根的数学问题;在《数组》一章又进一步学习了如何用程序设计方法求解多个一元二次方程根的问题。那么有没有比数组更好的方法来求解多个一元二次方程根的问题呢?通过讨论得出的结论是:求解一元二次方程根的问题是一个相对独立的功能,可以编写一个函数完成该功能,然后只要反复调用该函数就可以得到不同方程的根。下面以函数fun1( )和fun2( )为例讲解函数调用过程中入栈和出栈的过程。

经典小说推荐

杂志订阅