面向对象程序设计课程思政教学案例设计与实践探索

作者: 赵晓荣 陈传明 夏芸 陶涛

摘要:针对思政教育与工科专业课程教学有机融合的问题,结合新工科背景下计算机专业的新特点进行教学探索。以计算机类专业基础课程“面向对象程序设计”为例,围绕“立德树人”和“专业知识教学”进行课程思政教学案例设计和实践探索,做到知识传授和价值引领的共同推进。从知识点讲解和思维启发两个维度探索了润物细无声式的专业课程思政教学。

关键词:新工科;面向对象程序设计;课程思政

中图分类号:G642      文献标识码:A

文章编号:1009-3044(2023)25-0172-05

开放科学(资源服务)标识码(OSID)

0 引言

习近平总书记强调,各类课程与思想政治理论课通向同行,坚持教书和育人相统一[1]。由“思想政治教育课程”转换为“课程思政”[2],将思想政治教育融入各个专业课程的课堂教学中。工科教育改革中提出的“新工科”[3]推动现有工科专业的改革创新,探索符合工程教育规律和时代特征的新培养模式,同时要求计算机类专业教育过程中更加注重对学生应用能力和创新能力的培养。高等教育在“课程思政”和“新工科”背景下,遇到了新的挑战,计算机类专业课程教学过程中需要强调工程技术应用和创新能力的培养,同时挖掘课程思政元素,实现价值引领和知识传授同行。面向对象程序设计课程是计算机专业的核心基础课程之一,开设于大一下学期,选择Java语言进行课程教学。对于大学一年级的学生,课程教学过程中价值引领和知识传授同等重要。本文以面向对象程序设计课程为例,设计可行、有效的课程思政案例。

1 面向对象程序设计课程思政现状

在传统计算机专业课程的教学过程中,教师和学生均倾向于专业知识的学习和训练,对于课程思政的理解和学习较少。近年来,众多从事计算机专业教学的高校教师结合学科专业和课程特点,从不同的维度开展了一系列的课程思政元素的挖掘和探索[4-5] 。

面向对象程序设计强调以面向对象的模式来分析问题、设计程序,如何在教学过程中融入课程思政内容,学者们进行了相关研究,提出了自己的观点并进行了探索。张翔等人提出了从课程融合、师资培训、开展多样化课程思政活动促进课程思政的融合[6];李金忠详细分析了该课程的理论和实践教学内容中各个模块内容蕴含的思政元素,并结合多样化的教学方法和实践活动将课程思政有机地融入教学过程[7];高虎从教师自学、思政元素切入、课程资料、师生互动等方面进行了课程思政实践的探索[8] 。

随着研究的深入和思政教育的持续改进,面向对象程序设计课程的课程思政教学和相关建设取得了较多成果,但是仍旧存在思政案例融入不够自然、思政教育效果不理想等问题,这些问题可能对学生的专业学习和思政教育都产生不良影响。本文围绕“立德树人”和“专业知识教学”两个核心任务,设计符合专业特点和课程特征的思政案例,从知识点讲解和思维启发两个维度进行课程思政探索和实践,促进课程思政元素更自然地融入面向对象程序设计教学之中,实现价值引领和知识传授同行。

2 结合百年党史的课程思政案例

“类的继承”一节是本门课程中类与对象基础知识之后的重要内容,是以已存在的类作为父类、新增成员变量和方法建立新子类的特性。通过“类的继承”特性设计程序能够提升代码的复用率并减少程序中重复的代码量,在软件开发过程中能够大大缩短开发周期、降低成本。在中国共产党发展历程中,回顾百年党史,汲取奋进力量,续写辉煌篇章,是我们每一个人的时代使命。继承党的优良传统,结合时代特色续写新篇章,和“类的继承”思想一致,在“类的继承”教学过程中融入“百年党史的发展与传承”实例,加强课程的育人效果。

2.1 教学目标分析

“类的继承”之前主要讲授了Java的基础语法知识和类与对象,学生对Java语法、程序结构以及类与对象基本概念具有了初步的认识。“类的继承”是本课程中重要的章节内容,继承也是Java的重要特性,本节课程从知识、能力、育人三个方面设置了三个教学目标,详细的教学目标如表1所示,要求学生掌握“类的继承”基本知识并能够基于父类和类的继承性快速设计软件程序,同时引入思政元素,实现思想政治方面的教育引导。

2.2 学情分析

学生已经掌握了Java中if、for等语句和基本语法的使用,对于类的定义以及使用具有了基础的认识和应用能力,但是面向对象程序设计思想以及“类与对象”概念知识运用不够熟练,所以在“类的继承”章节中需要在巩固“类与对象”思想的编程应用,然后再引入继承和子类的概念,结合对比分析、情景案例、案例实现等教学方法,使学生掌握“类的继承”相关知识以及编程应用,增强代码的编写能力以及复用性,同时通过课程思政元素融入课堂教学增强学生的思想政治觉悟和学习的主动性。

2.3 课程思政元素分析

“类的继承”是类与对象相关知识扩展的内容,所以通过实例中类的定义和对比分析的方式让学生自主总结什么是类的继承以及子类的定义等基础知识,同时增强学生独立思考和自主学习的能力;然后结合党的指导思想发展史进一步讲授类的继承特性,运用案例引出、对比分析、案例实现等教学方法使学生更深刻地理解“类的继承”,引导学生使用发展的眼光认识党的发展历史,进一步引导学生用发展的眼光对待自己的学习与成长,实现“立德树人”和“专业知识传授”两个核心教学目标。

2.4 教学实施

本节课主要分为新课导入、知识讲授和案例讲解、应用实践、回顾总结四个阶段。

1) 新课导入

导课阶段采用之前的Person类实例进行新课内容导入,既可以帮助学生复习巩固类与对象的知识,又可以自然过渡到新课内容。首先基于表2中左边一列的Person类引导学生分析定义右边一列的Student类,进行对比分析总结这两个类的异同点——两个类的定义中第2-15行代码是相同的。相比于Person类,Student类仅新增了一个成员变量school(第4行)和两个成员方法(第17-22行),这种情形下使用类的常规定义会产生很多重复的代码。在程序开发过程中可以利用“类的继承”减少重复代码的编写、提高程序开发效率。本阶段总结分析了为什么学习类的继承,能够较好地激发学生的学习动力。继而引出“类的继承”和“子类的定义”的基本概念。

2) 知识讲授和案例讲解

结合Person类和Student类实例讲解“类的继承、子类和父类”的基础概念,然后介绍子类的定义以及extends关键字的使用方法,引导学生基于继承的概念重新定义Student子类,利用实例辅助新课内容的讲授和知识点的理解。

然后以党的指导思想发展史为例,从马克思主义到习近平新时代中国特色社会主义思想的不断探索和完善,讲述指导思想的继承和创新,选择“毛泽东思想”和“习近平新时代中国特色社会主义思想”类绘制其UML图,如图1所示,引导学生理解“类的继承”概念和使用方法,同时进一步巩固对于百年党史的认识,增强学生的政治素养。

3) 应用实践

根据图1所示的UML图进行代码设计和实现。这个阶段充分体现学生的主体地位,借助于课件上展示的“类的继承UML图”,引导学生独立思考如何定义 “毛泽东思想”类,基于该类和类的继承性如何设计实现“习近平新时代中国特色社会主义思想”子类,从编程实现的角度进一步理解类的继承,增强学生的实践应用能力。

<G:\飞翔打包文件一\电脑2023年第二十五期打包文件\9.08xs202325\Image\image34.pdf>

图1 类的继承UML图

4) 回顾总结

然后结合上述的应用实例总结类的继承特点、子类的定义、子类中成员的访问,帮助学生进一步巩固类的继承等知识点以及使用方法,增强学生在编程中运用继承和持续发展的思想,提高软件程序设计的效率,在自我成长过程中同样需要保持持续发展的状态,成为更加优秀的自己。

2.5 教学效果总结

在本次教学过程中利用案例增强知识点的趣味性。首先选择熟悉的Person类和Student类代码实例对比分析提出“类的继承”相关基本概念,重写Student类的代码理解“类的继承”的应用方法实现了本节课程教学的知识目标。应用举例环节选择党的指导思想发展过程实例,分析党的指导思想发展史中继承的优良传统和创新发展,引导学生更深刻地了解党的历史和持续发展的特点,并从代码实现的角度巩固“类的继承”知识的应用实践,实现了本次教学的能力目标。在课堂上的知识总结阶段引导学生用持续发展的眼光对待自己的学习与成长,帮助学生形成良好的学习观,实现了育人目标。

在程序设计中运用这种继承和持续发展的思想,才能更好地提高代码的复用率,继而提升面向对象编程的效率,课堂上使学生参与到该实例的编程实现过程中,符合了“新工科”背景下对于计算机专业学生的新要求,能够增强学生的应用实践能力。讲授“类的继承”知识方法的同时使学生进一步加深对于百年党史的了解,实现了“立德树人”和“专业知识教学”同行达,到润物细无声的课程思政教学效果。经过教研,学生在课后的实验题目上也取得了较好的成绩。

3 结合工匠精神的课程思政案例

软件的使用过程中会遇到很多异常的情况,在实际的软件开发过程中,“异常处理”在处理用户的各类异常操作、提升软件的鲁棒性和用户的体验方面至关重要。“异常处理”是帮助程序在解决问题的过程中捕获和处理发生的异常情况,使得程序能够正常运行。只有对所解决的问题进行各类异常分析,才能提高程序的鲁棒性和安全性,同时在这一节教学过程中引导学生不断精益求精,在专业学习和实践过程中发扬工匠精神,提升职业素养,为进入软件行业夯实基础。

3.1 教学目标

“异常处理”之前已经学习了和类与对象、封装与继承、接口实现等内容,学生已经具备了面向对象编程的基础知识能力,本节是软件开发过程中重要的应用知识。本节课程从知识、能力、育人三个方面设置了三个教学目标,详细的教学目标如表3所示,不仅要求使学生掌握在编程中使用异常处理机制以及异常类的应用方法,同时在编程过程中发扬工匠精神、精益求精,设计鲁棒性更强的程序,增强面向对象编程的成就感和自豪感。

表3 “异常处理”教学目标

[知识目标 能力目标 育人目标 掌握Java中的异常处理机制、相关异常类的使用方法 掌握程序设计中对于异常情况的处理方法,提高程序的鲁棒性 培养学生精益求精的精神,不断提升程序鲁棒性的同时也不断提升自己,设计更好的软件应用程序,为国家的软件事业做出贡献 ]

3.2 学情分析

学生已经掌握了基于Java中类和对象进行面向对象编程的基本能力,也在实验中强化了编程实践能力,但是设计的程序仅仅能满足实验室环境的应用,不具备较强的鲁棒性。本节的“异常处理”机制能够增强程序的鲁棒性,结合情景案例、对比分析、案例实现等教学方法,使学生掌握类的异常处理机制以及应用方法,同时通过在教学过程中引导学生不断精益求精,设计更好地软件,成为更好的自己。

3.3 思政元素分析

结合日常软件使用的体验和问题,引入本门课的知识,将枯燥的理论知识和实际问题联系起来,激发学生的学习兴趣,学完后也能增强学生的成就感和获得感。同时异常处理机制能够提升应用程序的鲁棒性,引导学生需要不断地精益求精、发扬工匠精神,设计使用便利、用户体验良好的软件,在学生心中深植一颗“软件工程师”的种子。

3.4 教学实施

本节课的教学过程主要分为四个环节:新课导入、知识讲授、应用实践、回顾总结。

1) 新课导入

首先由学生熟悉的语音助手相关图片开启本节课程教学,提出问题引导学生主动思考参与课堂教学:我们平时会利用语音助手帮助定闹钟、到电话等,但是大家回忆一下你的手机助手在遇到它不知道的问题是怎么处理的呢?有些会告诉你正在学习中或者帮你打开浏览器搜索,大多数的语音助手遇到异常问题时均会给予我们一定的反馈,这也是提升用户体验的设计。现在大家思考一下之前编写的程序,如图2所示,如果遇到用户的异常输入比如“6 2.4”,会发生什么结果呢?此时结合代码运行演示,根据异常的运行结果引导学生——我们应该发挥工匠精神不断精益求精,设计适用性更强的程序,在编程过程中如何提升程序的鲁棒性呢?继而引出本节课的主题——异常处理。

上一篇 点击页面呼出菜单 下一篇