程序设计类课程群主要包括C、C++、Java以及相关的实践课程,其最重要的教学目标是培养学生的计算思维和上机编程的能力,而传统的教学方法具有如下缺陷,难以实现上述目标:首先,传统教学模式存在“重知识、轻技能,重语言,轻思维”等问题;第二,传统考试方式主要考查学生对基本原理、思想、方法的掌握,却难以考查学生真实的编程能力;第三,传统的教学手段缺乏信息化技术的支撑,教师人工批阅程序的工作量很大,难以采集、积累、分析和利用教学过程中产生的教学数据,教与学缺少有效的互动平台。
于是,“程序设计类”课程群教学团队总结教学经验,围绕课堂教学、实践环节、考核方法、教学过程监控等关键教学环节,通过多年的教学改革,不断学习和借鉴先进的教学理念和方法,利用信息化等先进的教学手段,总结优秀教师最佳的教学经验,积累优秀的教学资源,不断优化与改进教学过程和考核方式,解决了程序设计类课程教学中存在的突出问题,大大提高了教学质量。
首先,团队自主开发了《程序在线评测系统》(Online Judge,OJ)。OJ通过自动评判程序的正确性,解决了学生作业、实验和考试的批改检阅问题,并通过平台的相似度检测功能发现学生作业中存在的抄袭现象;同时,学生可以利用任何碎片化时间进行学习、完成题目并及时获得反馈。通过OJ系统的使用,不仅大大减轻了教师人工批改程序的工作量,提高了程序判识的速度和质量,而且调动了学生编程实践的兴趣和主动性。在项目实训方面,与睿亚训公司联合开发了《教学过程与案例管理系统》(TPC)。系统具有教学过程监控和教学案例管理的功能,包括来自企业实际项目的Java日常教学案例和软件工程综合实践项目案例,对于教师及时了解学生的学习情况,开发和利用教学资源,具有重要的作用。
第二,针对程序设计课程群长期存在的“重知识轻技能,重语法轻思维”的落后教学理念,借鉴“翻转课堂”“项目驱动”“探究式”等先进的教学理念,借助OJ和TPC两个平台,设计并构建了优秀的教学资源库,部分教学内容由学生个人通过教学平台(视频、课件和在线指导等)进行自学,或者通过“分组式合作学习”,老师只负责答疑和考核,逐步营造“个性化、主动自主、合作式”的学习氛围,培养学生的学习主动性和正确的计算思维模式。
第三,构建了“课内实验———课外作业———综合实践———科技竞赛”多层次的实践教学链,以满足不同水平、不同年级学生对编程实践的不同要求,实现了个性化实践教学。借助OJ平台,进行了程序设计相关课程的考核方式的变革,实现了“变主观考核为客观考核、变知识考核为能力考核、变一次性考核为连续性考核”的新的考试考核方法。
第四,为了充分利用学生的特点,因材施教,组建了“程序设计互助与提高群”“程序设计协会”“ACM集训队”等三个不同层次的学习群体,团队教师分组指导,极大丰富了学生的第二课堂。其中“程序设计互助与提高群”面向一年级新生,主要由任课教师和优秀的高年级学生组成指导小组,通过“命题、实践、讲评、合作学习”等方式,帮助基础差的学生尽快提高编程能力;“程序设计协会”面向编程兴趣高、有一定动手能力的学生,让他们组建程序设计协会并委派专门老师进行指导和帮助;面向高水平、高年级学生,通过选拔成立ACM和蓝桥杯等竞赛集训队,由团队专职教师负责,组织并指导学生参加各种程序设计大赛,培养高水平的编程人才。
目前,OJ系统已上线使用了6年,累计开发了C与C++程序设计案例1000余个,累计服务于计算机、数学、电子、材料等4个学院15个专业的学生近6000余人,学生通过OJ提交程序累计达166万余个,累计完成在线考试25次,参与人次近4000;2016学年,服务学生人数达2493人。同时,OJ平台开始辐射到《数据结构》等课程的实践教学与考核环节。TPC系统上线使用了2年,累计开发了Java程序教学案例100余个,基于Java的软件工程综合项目案例10个,目前主要服务于计算机学院的6个专业学生的Java程序设计和软件工程综合实践的课堂和实践教学。两个平台已经成为团队教学和学生学习不可或缺的重要的信息化工具。
学习从来无捷径,循序渐进登高峰。教会学生学习,就是将开发文化宝库的钥匙交给了学生。“程序设计类”课程群教学团队的用心改革,如春风化雨,润物无声,催开满园桃李,塑造栋梁之才。(作者:赵卫东)