程序设计类课程,是所有计算机专业学生的必修专业基础课程,可以称得上是初窥计算机世界的第一步。在多年的教学过程中,笔者发现在本科二年级结束后,依然有部分学生代码编写能力低下,甚至在传统的C语言与面向对象类型语言中产生了混淆,无法将程序设计语言与专业课程相结合,例如数据结构、操作系统、数据库原理等这些专业必修课程,更有甚者严重制约了后期的专业方向课程的学习,以及相关的实训课程。究其原因从教师和学生两方面分析有如下几点:
(1)课程结构——简单固定
在传统的程序设计类课程教学中,更关注于课程的结构本身,其教学的安排、日程都是固定的。大多数理论教材中针对每个知识点仅仅给出了简单的例程,告诉学生怎么用,但并没有讲解什么时候用。大多数的实例教材,程序都是大段出现,与每个知识点脱钩,学生很难从整体上把握。
(2)教学方法——易滋生惰性
课堂教学方法虽有改进,但主体上依旧是以教师为中心,以语法、以理论教学内容为主,在创新思维上还是略有欠缺。虽然在近几年倡导线上线下教学、翻转课堂等教学模式,因缺乏有效的评价机制,实施效果其实并不理想。学生的学习方法单一,过分依赖老师的课堂教学,容易产生“惰性”:我可以不会,但是老师你不能不讲。
(3)实践教学——缺乏分析能力、工程意识
虽然一直在致力通过实践环节提高学生的编程能了,培养学生理论联系实际的能力。但是在真正的实验教学中,部分学生表现出调试代码过程中碰到最低级的拼写错误都能花费半天的时间;不能根据错误提示来跟踪和调试程序等。效率低下,充分说明学生缺乏最基本的程序调试能力、缺乏分析能力,而这些往往是计算机编程中最需要的环节。
其次,工程意识不强。具体表现在在编写代码过程中没有注重程序的可读性、命名不够规范、缺乏对整个程序的模块化进行规划。整个实验内容因考虑到学生教学效果的参差不齐,多以验证性实验为主,综合性实验完成的不理想,尤其是当代码量大的时候,抄袭现象屡有发生。
(4)能力评估方法——单一片面
旧的考核方式往往是70%卷面,30%平时(作业+实验),这样的考核方式过于单一和形式化。导致学生在学习过程中过于关注结论,并没有把握教学内容的重点,教学效果不明显,导致教师对学生知识点掌握的实际情况并不全面。
2020年初,由于新冠肺炎疫情的影响,为全国高校意外带来了一场大规模在线教学实践。通过这次实践,即让任课教师有了实实在在的线上教学经验,也迫使学生改变了学习的方法,让线上线下教学能够完全落到实处。以此为契机,针对上述问题,根据工程教育理念制定新版数字媒体技术专业人才培养方案后,依据指标点以学生为中心,以成果为导向,结合学生毕业要求,修改 “Java程序设计”课程教学大纲,完善课程评价体系,形成教学反馈。最后能够以OBE概念培养出符合工程认证的学生,形成持续、动态调整的人才培养机制。