以成果为导向的“程序设计基础”课程教学改革研究
2023-12-22李晓君曹俊斌庞丽英
李晓君,曹俊斌,庞丽英
(山西工学院 信息产业学院,山西 朔州 036000)
引言
“程序设计基础”课程是计算机类专业学生接触的第一门专业基础课程,不仅对学生动手实操能力和计算思维的培养起着至关重要的作用,同时也是后续专业核心课程如“数据结构”“算法设计与分析”“离散数学”“编译原理”等课程的先行课,程序设计能力将直接影响到后续专业核心课程的学习[1]。
传统的教学方式主要以教师为中心[2],教师围绕着一本教材在规定的学时完成相应知识点的讲授,学生只是被动地接受知识,被动地完成教师所布置的作业、实验等教学任务,进而导致学生学习枯燥乏味,积极性不高。在课堂之外,学生的编程练习得不到督促,多数学生遇到困难不进行深入分析,问题越积越多,耽搁时间越来越长,最终导致后面的课程完全听不懂,作业和实验流于形式,抄袭他人现象越来越严重[3]。另外,传统教学的课程考核方式过于单一,只通过期末考试成绩评定学生对知识的掌握程度,学生的实践动手能力得不到有效测评,这也是很多高校在研究生复试阶段会设置上机实践考查环节的原因之一。本文以山西工学院“程序设计基础”课程为例,介绍教学改革的目标及具体措施。
一、教学改革目标
不断提高教育质量是高等教育追求的永恒不动点,以教为中心、面向课程的教育模式不再适应当今的大学教育[4-5]。教学改革目标的制定要从学生应该学会什么为出发点,重点关注学生怎么学、教学过程如何准备,以及教学效果如何评价。“程序设计基础”课程是学生从高中进入大学最先接触的程序设计类课程,对学生编程思维、编程能力的培养起到十分重要的作用,因此教学目标的制定显得尤为重要。在传统的教学目标中,教师对教学目标的制定大多以不可量化的词进行表述[6],如“了解计算机的基本工作原理”“理解结构化程序设计的方法”“掌握冒泡排序的算法设计思想”等。这种不可量化的表述很难衡量是否达到教学目标的要求。为了避免上述情况的发生,教学目标的制定要可量化,使学习目标达到可衡量的标准。结合学校学生的特点,制定了如下课程教学目标:(1)可以熟练使用2~3种比较流行的编程工具,利用编程工具可对程序进行编辑、编译、调试和执行等操作;(2)能够针对实际问题画出算法的流程图,并可用结构化程序设计方法对其进行程序编写;(3)可通过网络资源对课程中涉及的知识点进行自主学习。通过以上三个可量化的教学目标,实现对学生编程工具使用能力、程序设计方法和自学能力的培养。
二、教学改革措施
通过对“程序设计基础”课程重新设计教学内容及方法、构建优质的课程资源平台、精选实验内容,构建“帮扶”团队、深耕教学内容,教学与育人协同发展、设计多维度的考核方式进行教学改革。
(一)以提高学生程序设计能力为目标,重新设计教学内容和教学方法
“程序设计基础”课程在改革前总学时为64学时,其中理论48学时,实验16学时。教师上课通常在多媒体教室进行,上课时以教师的讲授为主,学生对课程知识的理解只能抽象地停留在课本和教师的PPT上,较为片面,不够深刻。
目前,对“程序设计基础”课程的学时分配进行了调整,总学时不变,理论学时调整为16 学时,实验学时为48 学时,加大了实践环节。授课地点从多媒体教室转移到实验室,采用“边讲边练”的实践教学模式,让学生在动手实践过程中边练习边体会其中的知识点,加深学生对知识的理解。
将教室课堂教学转向实验室实践教学过程中,需要对教学内容和教学方法进行重新设计,利用更少的时间,获取更多、更有价值的知识,进而提升学生的程序设计能力。在授课内容方面,教师重点给学生讲授的是编写程序的思路、实现过程,对不重要的知识点和语法不再讲解,把简单易学的知识点全部安排在课下让学生自主完成。同时为了保障学生课下能够顺利地完成教师要求的内容,建立了“程序设计基础”答疑群,学生有问题可以直接在群里提出,授课教师负责解答。此外,在相应知识点讲授完毕后引入了游戏编程,不仅增加了学生的学习兴趣,更能激发学生课后自主学习的积极性(如表1所示)。
表1 知识点名称及其对应的编程游戏
(二)利用成熟的教学辅助软件,构建优质的课程资源平台,让学生课下学习无忧
通过成熟的教学辅助软件(如“学习通”“云班课”等),建立以课程资源为主的共享平台,内容以“程序设计基础”课程的教学视频为主,结合各种练习题,之后可以推广引入Java程序设计语言、Python语言、数据结构等的视频教学资源。视频资源前期以网上适合学生学习的视频教学资源为主,后期任课教师可自己录制教学视频。借助这些教学辅助软件,根据课程的进度安排,教师可以很便捷地开展课程内容相关各个环节的教学,如讨论交流、头脑风暴、测试、作业,或发布一些专业相关的信息。教师通过软件可以很方便地收集到各个学生的学习情况、共性问题,以便有针对性地调整教学内容,督促学生学习。目前,绝大多数学生有智能手机,基于全覆盖的校园网络,学生可以通过手机随时随地利用零散时间进行学习,遇到问题可以查阅资料、看视频讲解或者线上问教师,通过这种方式让学生做到课下学习无忧(如图1所示)。
图1 线上线下结合学习方式
(三)精选实验内容,创建“帮扶”团队
“程序设计基础”课程的主要教学目标是提高学生的程序设计能力,只有不断地动手实践,才能对编程的思维方式、结构化程序设计方法熟练应用。由此可见,实践内容的选取显得尤为重要。实验内容的选取并不是简单地出一道程序设计题,而是要从日常生活中提炼出与所学知识相关的问题,比如让学生利用数组对一些数据进行排序的问题,要从购物网站中按照价格排序的要求来进行实验内容的设计。这样不但可以引起学生解题的兴趣,还能让学生关注到利用所学知识解决生活中的哪些问题,提升学生分析问题并利用计算机解决问题的能力。
在实验过程中,通过建立专门的“帮扶”团队,让计算机创新实验室的学生加入课堂进行辅助教学,不仅可以帮助教师缓解实验过程中解答问题的压力,也可以让实验过程中遇到问题的学生尽快得到解答,还可以进一步提升创新实验室学生的解题能力和思考问题的能力。此外,通过建立“帮扶”团队,可以让低年级的学生尽早接触创新实验室,激励他们更加努力学习,同时可以让创新实验室的学生在解题的过程中挖掘优秀的低年级学生加入进来,一举多得。
(四)深挖思政元素,教学与育人协同发展
不同学科开展课程思政难度不同,如何避免形而上的说教,让思政教育润物无声,是每位教师需要思考和解决的问题[7-8]。在教学内容上,要深挖课程知识点所蕴含的思政元素,以培养学生的科学思维、人文素养和工匠精神,要促使学生进行深入透彻的学习,学习知识点背后的深层含义,让学生明白知识点背后所含的价值观。
例如,在集体备课时,所有教师要讨论出每一章节需要融入的思政元素,从生活中找例子。例如在男子100米比赛中,中国选手苏炳添排名第8,这里面就涉及排序问题。如何排序,怎么让计算机实现排序,这样更能激发学生的专业爱好与职业精神,进而帮助学生树立崇高的职业理想。在讲解字符串知识时,字符串以“ ”来表示结束,在教学过程中引导学生建立底线意识,让学生从自己做起,遵守学校的各项规章制度。通过这种方式,将课程教学与思政进行有机融合,进而全面提升学生的综合素质(如表2所示)。
表2 部分授课内容与思政元素
(五)设计多维度的考核方式,促进学生自主学习
以往课程的考核主要依赖于期末考试,缺少教学过程的考核。这种考核方式中,教师无法及时得到学生学习效果的反馈,不能有针对性地督促学生,导致多数学生的程序设计能力和考试成绩不理想[9]。为了帮助学生形成“学习—总结—再学习—再总结—再学习”循序渐进的、闭环式的学习习惯,设计了多维度的考核方式,不再以期末考试成绩为主,而是更加注重学习过程的考核,将课堂上和课堂下的学习活动都纳入考核的范围,针对学习内容设置了不同的成绩占比。
课程成绩考核由四部分组成:(1)线上学习成绩(10%)包括视频学习、测验、作业提交;(2)线下课堂表现成绩(15%)包括课堂互动交流、实验;(3)五次阶段性实验考核(15%);(4)线下期末考试成绩(60%)。通过多维度的考核方式,可帮助教师及时发现问题并查漏补缺,提高教学效果,学生也可通过过程性考核尽早发现自己学习过程中存在的问题,在短时间内弥补不足,促进学习成绩的提高。
三、改革效果
通过对教学过程的不断改革,使学生在课上和课下都有发现问题和解决问题的空间,期末考试平均分逐步提升。与此同时,学生的程序设计能力也有了很大进步,参加学科竞赛的获奖率和获奖层次显著升高。图2为近三年学生参加学科竞赛的获奖比例。可以看出,2021年获得国奖和省一等奖的学生比例相比2019年和2020年要高,教学改革效果很明显,为专业后续其他课程的学习奠定了坚实的基础。通过问卷调查可知,学生的反馈也较好,表示课程和实验内容很有吸引力,尤其是每章节的游戏编程。当用程序设计语言完成某个小游戏时,学生觉得很有成就感,学习的主动性和积极性越来越强,教学改革获得了学生的认可。
结语
教学改革的最终目的是培养学生的编程思维,提高学生的编程能力。在互联网背景下,学生的学习行为和网络已经紧密联系在一起,优质的网络资源和教学辅助平台为教学改革提供了良好基础。本文针对传统教学模式存在的缺点和不足进行了改革,通过创设优质的教学资源平台、重设教学内容、精选实验内容、深挖思政元素和运用多维度的考核方式,让“程序设计基础”课程的学习不再枯燥、乏味,而是有趣、生动。实践表明,通过上述一系列的改革,达到了最终的培养目标,同时也为后续其他课程的改革奠定了良好基础。