计算机程序设计“课程思政”的教学研究与探讨
2022-04-07张玉军
张玉军
(辽宁科技大学,辽宁 鞍山 114001)
1 课程思政的教学设计
1.1 课程简介
《计算机程序设计》是网络工程专业的专业基础课,也是专业核心课。本课程作为网络工程专业学生大学期间学习的第一门专业课程,重视学生对基础编程理论知识的理解和掌握,更加注重学生的实践动手能力,同时融入思政元素,高度契合国家所倡导的“思想引领”“协同育人”“资源共享”“能力培养”的新理念[1]。
1.2 课程目标
结合网络工程专业的培养目标,确定本门课程的教学目标。
学生学习《计算机程序设计》课程,能够将C++知识用于解决指定问题,掌握计算机编程学习的相关方法、锻炼学生的认知能力、实践能力、创新能力和团队协作能力,以及培养学生的职业道德、理想信念和终生学习的最终目标。
1.3 课程内容
本课程围绕C++语言控制结构、数组、指针、函数、类与对象、继承与派生、多态性、I/O流、异常处理等知识,并用于给定问题的分析、设计与实现。通过学习,使学生获得计算机程序设计的基本知识,培养学生程序调试能力、算法设计与分析能力、创新能力和自学能力,能够编写结构清晰、正确易懂,符合软件工程规范的程序,为后续课程的学习打好基础。
1.4 课程思政融入教学
课程思政融入教学要做到水乳交融,思政元素与教学内容要做到润物细无声,对学生进行思想的洗涤,获得他们的情感共鸣。就像盐要溶于水一样,对生活中的点点滴滴进行挖掘,让学生没有陌生感,不能生搬硬套。结合计算机程序设计基础课程的特点,从以下几个方面开展课程思政[2]。
(1)通过联系生活实际,挖掘生活的内在内涵。在本门课的教学中,需要让具体的课程知识和课程内容出发,具体深度挖掘蕴含在课程知识和内容深处的思维、价值和文化意义。
(2)通过举一反三,培养学生的创新精神。在整个教学过程中,通过对程序设计内容的讲解同时要培养学生举一反三的精神,要学生把前期知识和后期知识相互联系。让学生注重在教师讲解后进行创新应用,在实践实验中掌握教学内容,培养学生的创新能力。
(3)通过具体实例,促进学生的积极思考。通过典型程序实例,促进学生积极思考并且分析案例,帮助学生感悟人生,培养良好的品质,让学生成为有理想有信念的新人。
(4)通过制造氛围,引领榜样力量。注重课堂内外,实践教学线上线下,真切热爱学生,努力做到帮助学生解决具体的问题,制造积极向上的学习气氛,重点体现教师的人文关怀,目标是要做有温度的教学。
本课程积累了丰富的教学资源,完备的OJ程序在线测评系统,自编的案例贯穿始终的讲义,在以往教学过程中已经融入思政元素[3]。
2 课程章节的具体教学展示
2.1 教学目标
知识目标:能够写出各种循环结构的语法,讲述各自的特点。能力目标:能够根据具体问题描述进行分析,选择合适的循环结构;使用循环结构设计满足要求的程序,并能在OJ系统中正确提交。课程思政目标:能够加强对学生信息安全意识的培养,让学生明白日积月累、持之以恒对成长成才的重要性。
2.2 教学内容
以中国的传统教育说法进行引入,重点讲解for、while以及do-while三种循环结构的格式,特点和使用场景。利用实际案例项目对循环结构进行多角度融合式教学。
根据不同部分知识特点、难易程度,学生状态,采用多样的教学设计,注意将课程的专业知识与学生的日常生活和气场学习结合在一起,要明确的以学生为主,将传授学习技能的思想贯穿教学过程的始终。利用线上线下相融合的教学手段,设置相关内容,重点讲解for循环和while循环以及do-while循环结构特点和使用特点。
2.3 教学过程
2.3.1 创设情境,精心导入
教学中引用《庄子》中的一句话“一尺之棰,日取其半,万世不竭”作为导学,需要引导学生积极思考,努力调动学生参与课堂教学的积极性、主动性。生活中有一些具有重复操作的问题,具体的可以利用循环的知识点来解决,从而引出学生的哲学思考。强调成为有用之才,贵在持之以恒。引入周而复始的循环本质内容,形成从量变到质变的结果。这个引例目的是让学生对中国的历史文化产生兴趣,并且增加自己的自豪感。
2.3.2 知识讲授,形成概念
在课堂教学的具体过程中要提出与生活有关的问题,并且抽取出该问题的核心内容,进行具体的建模过程,并根据结果选取合理的实现结构,并且根据知识点编写代码并进行程序调试,然后把运行的测试结果进行对比。提出相似的问题,由学生自行进行选择结构进行程序调试。通过对实际问题的进行分析,建模,编程,测试等环节,让学生参与到教学内容的时间操作中来,当学生对问题产生疑问并想要寻找具体的解决路径,教师传授给学生的不只是教学内容,让他们被动接受,而是更应该充分相信学生的自主学习的愿望,鼓励学生要进行自主学习,要主动地进行交流,编程,测试,评价等教学活动,并且要最终达到真正地提高自主实践能力[4]。
首先讲授循环语句的一般形式,并分析其原则,之后介绍循环的执行过程,让学生通过这部分内容的学习,认识到循环的本质,达到掌握循环基础知识的要求。
复习与回顾:复习上节课的分支结构内容,对于if语句和case语句的使用,结构特点以及使用格式进行回顾。了解基本的程序设计步骤,提出选择问题的实际解决方案。
课程内容:要更好地掌握循环结构,并学会运用循环,我们要提炼出循环的要素,将抽象的问题具体化、公式化,以帮助学生更好地分析、掌握循环结构。
第一要素:设置“循环变量”,并对其赋初值。首先要解决循环10000次的问题,机器是如何知道10000次到没到?这里需设计一个计数器,通常用一个变量作为计数器,在没有循环使之前计数器为0,就是变量的初始值为0(即:i=0;),这里的“i”变量就是用来计循环次数的,我们也称它为“循环变量”。
第二要素:循环要有终止条件。要求输出100行的“####”,循环不能超过100次,循环只能在100次以内,则循环的终止条件为i<100。
第三要素:循环内容的实际。“循环体”是什么,如何找出循环体。“循环体”就是不断重复的动作用程序描述出来。如何找出循环体,是学习循环结构的难点。上例中:第一次要执行输出“####”,第二次要执行输出“####”,第三次还要执行输出“####";”,这句就是一个循环体。
第四要素:循环变量要趋向于终值而改变。经过循环之后i的值要改变,使之不断趋向于终止值,也就是要有步长的变化“i++/i--”,否则程序就成为一个死循环。
讲解循环结构的类别:for循环,while循环以及dowhile循环。
重点讲解各种循环结构的结构形式和特点。以for循环为例:
格式为:for(初始条件;结束条件;增量)
循环体;
实践环节安排:
讲解练习实现思路。
设计意图:讲解思路,旨在让学生理解程序逻辑。
案例实训:
在演示操作环节结束后,让学生以小组为单位进行编程分析。分为4个训练阶段:
分配任务:首先由每组的组长分配任务。
编码任务:按小组进行讨论,共同解答问题,并进行编码。
过程管理:教师负责巡查与指导。
提交程序:以小组为单位进行具体的程序提交。
设计意图:以学生为中心,主要锻炼学生自主学习能力与编程能力,并重点培养团队协作能力和学生的沟通能力。
(1)引经据典,增加兴趣。在课程讲授之初,利用经典古文导入中本节课需要解决的问题,同时激起学生的学习兴趣,思考“取10日后,棰余几何?”通过老师的具体分析,在重点重申循环结构的“三要素”——初始值,增长步长以及终止条件,解释问题需要编写循环来具体求解棰长度。在教学过程中教师主要采用问题驱动的教学方法,重点需要启发学生独立思考并且要明确问题中循环的终止条件是什么,特别注重对学生探究能力、思维拓展以及实践能力的培养。
(2)举一反三,解决难点。对阶乘问题的求解,需要仔细观察和分析数列,具体寻找发现阶乘计算的具体规律,完成主要的循环结构中循环体。在对阶乘问题本质的探索基础上,需要经过循环变量的具体变化,明确对循环结构的理解,最终能举一反三,解决难点的目的。
(3)注重实践,培养安全意识。利用生活中学生经常遇到的问题,进行问题提问:“注册对于密码设置一般会有什么样的要求?”让学生对于身边事,生活事有共鸣。试想密码设置具体情景,增加讨论热度和对于学习知识的兴趣,引发学生相关讨论。结合具体情境因为如果设置的密码过于简单,被电脑黑客利用攻击,导致自己的重要信息泄露,进而加强学生对信息安全的意识培养。
(4)完成任务,总结重点。完成各小组的编程任务后,提出学生思考的问题:需要学生掌握while和do-while两者循环结构使用过程中的具体的区别?学生可以分别利用 do-while循环和 for循环两个不同的训话结构来实现吗?学生自己总结for循环的具体特点?
设计任务意图:类别学习,利用同一任务案例使用不同的循环结构的程序具体实现,这样做不仅可以助于学生拓展自己的思维,而且又符合培养软件开发人员岗位对发散思维和逻辑思维能力的要求[5-6]。
学生在本节课中,要求对三种不同的循环结构有深刻的认识,特别是三要素在不同结构的具体使用和设计,是本节课的重点,需要学生深入理解和掌握。在此基础上,能够就任务进行解决,利用不同的循环结构,体会同一问题不同解决方式的优缺点,进行类比学习。从实际问题出发,具体到方法选择,将编程思维、优化选择、信息安全意识等思政元素融入具体的专业知识,课堂活动丰富,提升学习兴趣。
3 课程思政教学反思
3.1 修改完善教学大纲和教案,充分体现思想政治教育元素
将课程思政元素融入计算机程序设计课程实际教学中,修改课程教学大纲和教案,增加专业课思政学习目标,合理设计课程教学目标及其对毕业要求的支撑,在课程内容与基本要求中明确增加思政预期成果,考虑到思政目标定量考核难度大的问题,在课程考核方式与成绩评定办法中主要考核能力,从而间接检测思政育人效果。
3.2 将思政元素融入课程教学
仔细斟酌,反复提炼课程本身的知识内容与其中蕴含的思政育人素材,在C++简介学习中引申出我国信息化发展现状,鼓励同学为实现“中国梦”努力学习;在标识符命名规则学习中注重法纪观念的培养;在主函数学习中注重核心意识的培养;在运算符的优先级与结合性学习中让学生明白做事要分清主次,有轻重缓急;在选择结构学习中,让学生明确个人的选择要服从国家、集体利益;在循环结构学习中,让学生明白成为有用之才,贵在持之以恒;在数组学习中,注重集体主义思想的培养,要有看齐意识;在函数学习中,培养学生树立科学管理、调度的基本思想;在指针的学习中,让学生明白做事要注重效率,如何提高做事效率,中国能取得当前的国际地位,广大人民能过上幸福安康的生活,都是在中国共产党的领导下取得的;在类与对象的学习中,让学生明白在学习新知识的时候,与旧知识的类比,能够很好地解决对新知识的运用和理解;在文件的学习中,养成代码、数据要及时整理保存并定期维护的好习惯,努力成为精益求精的“工匠”。
3.3 形成“课程思政”典型案例,注重教师教学能力提升
注重与学生日常生活相结合,形成典型案例3个。教师能够以“课程思政”课程建设立项为契机,加强时政学习,提升教学水平;不断挖掘思政元素,改进教学内容;主动运用信息技术,改进教学方法;根据课程目标,改进课程评价,不断提高教育教学质量。
3.4 加强课程思政经验交流,推广改革成果
基于《计算机程序设计》课程的课程思政经验,进一步分析和挖掘网络工程专业其他专业课程尤其是专业核心课在课程思政方面的共性,切实做到以学生为中心,同时也为申请工程教育专业认证做好准备。