突出实践能力培养的《计算机程序设计基础》课程改革与实践
2017-12-15胡斌黄松雷小宇史涯晴张赛男
胡斌++黄松++雷小宇++史涯晴++张赛男
摘 要:针对解放军理工大学计算机程序设计课程教学实际,提出了突出实践能力培养的计算机程序设计课程改革方案。重组了理论和实践教学内容,构建了集教、学、训、考、赛“五位一体”的课程教学支撑平台,改革了融“学训用”于一体的实践能力培养教学组训方式,探索了基于SPOC的在线与课堂混合学习教学模式,创新了突出实践能力评价的多元考核体系,并取得了较好的实践效果。该改革方案可为其它计算机类课程的教学提供借鉴。
关键词:计算机程序设计;SPOC教学;混合学习
中图分类号:G642 文献标志码:A 文章编号:1673-8454(2017)22-0041-03
一、引言
《计算机程序设计基础》是解放军理工大学面向全校所有专业学员开设的一门重要公共基础课,主要讲授程序设计语言的基本知识和程序设计方法,使学生了解高级程序设计语言的结构,掌握程序设计的思想和方法,以及基本的程序设计过程和技巧,具备初步的分析问题和利用计算机求解问题的能力[1]。对大多数非计算机专业的学员而言,学习程序设计的目的是学习计算机分析和解决问题的基本过程和思路,而不是成为程序员。因此,程序设计课程教学应该避免陷入语言表达形式的误区,特别注重实践能力的培养,要使学生通过实践确实感受和领悟计算机问题求解的基本方法和思维模式[2]。
在近年的教學中,笔者发现有相当一部分学员在学习这一课程后反映, 他们尽管已经熟练掌握了语言的每一条规则和语法,却无法灵活运用,不知该如何应用所学过的编程知识来解决具体的问题。这种现象的产生, 说明学员过多的注重理论知识的学习,而缺乏程序设计实践能力的训练与培养。造成该问题的主要原因分析如下:
(1)传统的教学以语言知识为主线来组织教学内容,虽重视了语法知识的完整性,但却限制实验内容的设计也只能围绕这些知识点安排一些不相关的、零散的实验,难于从系统的角度培养学员利用计算机求解实际问题的能力。
(2)学员缺少贯穿课堂和课后的实践平台,课内教学与课外训练无法有机衔接,导致 “学无所练”,难以及时消化所学知识点、提高实践能力。
(3)课堂教学组织形式上未考虑该课程实践性强的特点,理论教学与实践分离实施,通常是实践环节滞后于理论教学,容易造成理论与实践脱节,致使课堂教学效果不尽理想,无法突出对学员实践能力的培养。
(4)对学员实践能力缺乏有效的考核手段,难以检验学员实际运用程序设计语言的能力,考试中侧重对语法知识的检验,实验成绩比重低,甚至出现为应付考试“死记硬背”程序的现象,造成“高分低能”的窘境。
依据教学实际中存在的上述问题,笔者所在的课题组围绕实践能力培养,从教学内容组织、实践平台、组训方法、教学模式、考核评价等方面开展了《计算机程序设计基础》课程改革与探索。
二、以程序设计实践能力培养为主线,重组教学内容,设计配套实验
传统的教学内容组织多采用以语言知识为主线来组织教学内容,其基本教学内容组织和知识点教学顺序一般为:概论→数据类型和表达式→分支→循环→数组→函数→指针→结构→文件。这种教学内容组织形式虽重视了语法知识的完整性,同时却限制了课程配套实验内容的设计。为了保证理论教学与实践教学的同步性,课程的实验环节也不得已分别围绕这些知识点零散展开;与此同时,学员的实践训练往往变成了编程语言的语法正确性验证与体验,难于培养学员利用计算机从系统的角度求解问题的基本方法和思维模式,学员实践能力得不到有效锻炼。
笔者围绕学生程序设计能力培养,以程序设计的学习进程为主线,打破传统语言模块的完整性,由浅入深,由简单到复杂,循序渐进地组织相关教学内容。新的课程内容组织按照:概论→初识程序设计→分支与循环→数组应用→函数→指针、结构应用→递归、链表结构→文件应用的方式进行教学。为使实验课与理论课程相配套,课题组设计了多个贯穿课程始终的、功能逐步细化的系统性综合实验课题。首先,在“初识程序设计”部分,通过简单、完整的程序使学员认识程序设计的基本概貌、并使学员能尽快进入编程实践环节。然后,依托实验课题的需求牵引,在实验中逐步引入分支与循环、数组以及函数的学习,使学员深入理解语句级控制以及模块化设计基本思想,而有关数据类型和表达式方面有关的内容则通过案例分散到有关章节中。最后,在程序设计进阶部分引入指针、结构、递归和文件等高级内容,引导学员通过自己的实践、一步一步得到了一个功能丰富、处理优化的中等规模软件产品,将部分难点内容放到课程的后期教学中,避免内容难点干扰学生对程序设计基本思维方法的理解,突出了对学员实践能力的培养。
三、构建基于SPOC的教学和实践支撑平台
针对课程实践操作性强的特点,课题组从教、学、训、考、赛等五个方面统筹教学资源和平台设计,以解放军理工大学SPOC(Small Private Online Course)网络教学平台为基础,集成整合了极域电子教室软件、以及旨在于解决程序设计在线评判的自化系统(Online Judge,简称OJ)。借助于SPOC网络教学平台,为教员和学员提供课前导学、课中研学和课后练学的在线教学支撑平台[3];线下教学过程中,充分利用“极域电子教室软件”的交互教学功能,将教员讲与学员练紧密结合,学员实践操作紧跟理论教学,教员依托系统监控学员的随堂实践,及时引导学员自主解决问题,进而使其加深对课堂知识点的理解,提高课堂教学效果;“OJ系统”为学员进行课后自主训练,巩固课堂教学效果和课程考核提供技术支撑,继而依托该系统为学员创新竞赛提供条件保障,定期举办校内比赛,并以大学生程序设计竞赛为驱动,激发学生学习程序设计的兴趣,提高学生程序设计能力。形成了覆盖教员授课、学员学习、课外自主训练、各阶段考核、系列创新竞赛等五个既自成体系又相互关联的教学环节的“五位一体”的线上线下教学支撑平台。将学员的课前预习、课堂学习、课后训练考核和创新竞赛等有机衔接,真正达到了“学有所依、学有所练”,为学员能力培养提供教学和实践平台。endprint
四、改革融“学训用”于一体的实践能力培养教学组训方式
传统的程序设计课教学组训方式一般以课堂理论教学为主,实践教学为辅,采用先理论后实践的方式进行教学,且实验课时比重往往只占总课时的25%甚至更少,容易造成理论与实践脱节;同时由于程序设计语言内容较为抽象、逻辑性强,尤其是数组、指针、递归等内容难点较多且容易出错,学生在有限的实践课中难以掌握实际编程的应用,亦难以加深对理论知识的理解,教学效果不尽如人意。针对这一现状,课题组开始探索“学训用”一体的课程教学组训方式[4],打破传统教学中理论与实践课独立开设的局面,使课程全面进机房,将线上学习、线下训练、实践应用三者融为一体。(1)“学”。依托SPOC 平台,使学员拥有更多的学习时间和地点自主选择权,学员在网络学习中有充分的时间思考和发散思维,以便在面授教学中发生思想碰撞,产生更多新看法。(2)“训”。采用情境化的SPOC 培养实践应用能力。教员将工作中的实际问题寓于有意义的问题情境中,学习者在实践中运用所学知识解决具体的应用问题,更有助于实践能力的培养。(3)“用”。通过SPOC 和OJ系统跟进和反馈学习者的实践过程,将理论知识与实际应用结合起来,立竿见影的学习效果有助于保持学习者的持续学习兴趣。通过“学”、“训”、“用”一体化教学,将理论知识和实际技能相互融合,辅以前文中介绍的以“程序设计的学习进程为主线”的内容改革,极大促进了理论与实践教学的融合,提高了学员实践能力的培养效果。
五、探索基于SPOC的在线与课堂混合学习教学模式
教学组织上,课题组依托 “五位一体”的教学支撑平台,探索了在线学习与课堂面对面学习的混合学习(Blended learnning)模式[5]。采用翻转课堂的模式进行教学设计,将SPOC与传统课堂教学相融合,实现线上线下结合、课内课外互补的混合式教学[6]。教学准备阶段:教员依据在线掌握的学员学习需求、SPOC 平台应用的熟练程度以及混合学习的态度,围绕教学目标进行课程设计,将教学目标按知识、能力、素质要求进行分解,确定教学知识点,区分适合线上线下学习的内容单元,并针对每一知识点制作学习任务单、精选SPOC视频脚本、设计课堂及课外教学内容和过程。课前导学阶段:依托SPOC 课程视频以及学习任务单进行课前导学,借助视频学习可将课堂中的浅层学习向课前转移,使学员在完成课前任务单的过程中了解学习疑难和自身先备知识的掌握情况,还可利用SPOC 论坛、微信等交流平台快速组建讨论小组,交流彼此的收获以及疑问。课中研学阶段:教员根据SPOC 平台记录的学生课前探究路径和数据分析结果了解学习疑难,引导学员对核心知识及其重要问题进行多维度探讨,对于难以解决的问题,教员适时加以点拨,能够促进学员学习的触类旁通。此外,研学内容的设计一般以具体应用为牵引,突出程序设计思想和方法的培养,例如, 二重循环对初学者来说是比较难理解的, 但如果以 求 x2 + y 2 = 2000的正整数解!这个例题来要求学员研学就要容易得多。这样既能在较大程度上避免枯燥的语法知识,又能引起学生的兴趣,引导他们接受和理解这些思想和方法,达到实践能力培养的目的。课后练学阶段:教员利用SPOC 平台布置课后作业后,学员依托“OJ系统” 在线提交编程作业,利用系统的自动评分功能,可以及时测试代码的完整性和正确性,显示详细的评分结果;学生甚至可以获得比助教更加详细的信息反馈,还有机会重新提交、不断完善设计应用程序,提高对课程知识和技能的掌握程度。
六、创新多元化综合考核评价体系
原有的课程教学中,缺乏对学员实践能力进行考核的有效手段,考试中侧重对语法知识的检验,甚至出现为应付考试“死记硬背”程序的现象,造成“高分低能”的窘境。课题组改变以往重知识、轻能力考核方式,强调实践能力考核,将考核重点由语法规则转移到语法运用与编程实现上,促进学员将学习的重点转向实践能力的提升。课题组构建了“语法+思维+实践+创新”评价体系,综合以语法为主的理论考试、思维锻炼为主的平时在线作业、能力为主的实验考核以及拓展提高的创新竞赛的表现,对学员能力进行全方位考核。将原有的理论80%+实验20%的分值比例调整为理论30%、平时10%、实验60%+创新竞赛10%(附加分值)。在实验考核方面,提出了“自动评价+质询”的考核方式。依托“程序设计在线自动评判系统”,学员通过在线提交答卷,系统进行自动评测和代码相似性检查,提高了考核与评卷效率,杜绝了实验考核中相互抄袭的现象;同时,辅以教员质询,杜绝了学员死记硬背语法规则和程序代码的应考方式。
七、结语
《计算机程序设计基础》课程改革与探索,紧扣军队信息化建设对人才培养的需求,正确把握计算机程序设计课程的发展趋势,紧密围绕实践能力的培养,探索出了一条适合本课程教学的改革之路。本改革方案从2015年秋季学期开始试点,在学期末对该课程的问卷调查中发现100%的学员认可新的教学模式和教学方法,希望加以推广;教学改革试点班中8名学员参加2016年 “蓝桥杯”全国软件专业人才设计与创业大赛获江苏省赛区一、二等奖;试点班学员在二年级参加2016年全国计算机等级考试的通过比例为94%,而同期其他班次通过率为27.5%。因教学成果显著,该课程分别获评2015、2016年度解放军理工大学优秀教改课。因此,该改革方案可为其他计算机类课程的教学提供借鉴。
参考文献:
[1]何钦铭,颜 晖,苏小红,等.“程序设计基础”课程教学实施方案[J].中国大学教学,2010(05):62-65.
[2]何钦铭,陆汉权,冯博琴.计算机基礎教学的核心任务是计算思维能力的培养——《九校联盟(C9)计算机基础教学发展战略联合声明》解读[J]. 中国大学教学,2010(09):5-9.
[3]陈然,杨成.SPOC混合学习模式设计研究[J].中国远程教育,2015(05):42-47.
[4]林晓凡,胡钦太,邓彩玲.基于SPOC 的创新能力培养模式研究[J].电化教育研究,2015(10):36-51.
[5]黄荣怀,马丁.基于混合学习的课程设计理论[J]. 电化教育研究,2009(01):9-14.
[6]苏小红,赵玲玲,叶 麟,等.基于MOOC+SPOC 的混合式教学的探索与实践[J].中国大学教学,2015(07):60-65.
(编辑:郭桂真)endprint