1. 引言
对分课堂教学模式 [1] [2] 是由复旦大学心理学系张学新教授提出的,对分课堂教学模式是将课时分为两半,一半时间让学生分组讨论上一次课讲授的知识,一半时间教师讲授新知识,同时给学生留出内化吸收的时间,该方法可以强化学生的主体意识,调动学生学习的积极性。对分课堂教学模式将学习过程分为了三个阶段:讲授(Presentation)、内化吸收(Assimilation)和讨论(Discussion)三个阶段,因此也称为PAD教学模式。对分课堂教学模式在高校多种类型的课程得到广泛应用,比如英语 [3] 、旅游管理 [4] 、化学 [5] 、物理 [6] [7] 、美育教育 [8] 等学科,文献 [9] 提出了将对分课堂和在线教学融合的教学模式,文献 [10] 针对对分课堂讨论环节的问题,提出了相应的对策。文献 [11] 从基于脑科学的人脑工作特性和基于心理学的认知负荷调控分析了对分课堂的有效性。多年的实践与理论证实了对分课堂是一种有效的教学模式,能够调动学生积极性,更好地内化所学知识,可以将其尝试引入到各种课程的教学中来。
目前,计算机程序设计课程的教学现状是老师讲得多,学生学得少,教和学存在脱节现象。由于计算机的编程知识比较枯燥难懂,即使教师讲得清楚,学生也很难集中注意力,容易听不懂,跟不上,破罐子破摔,最后,教师讲了很多内容,学生掌握的知识却比较少,期末考试成绩不理想。这种现象主要是因为学生没有及时地吸收了老师讲授的内容,继续讲后面的内容,会让学生越来越听不懂,时间长了,学生就跟不上了,失去了学习这门课的兴趣。
因此,我们将对分课堂教学模式引入到计算机程序设计课程中,并针对计算机程序设计课程的特点及教学环境等进行改进,使该方法适用于在计算机程序设计课程的教学,具体创新如下:
1) 将计算机程序设计课程的理论课和实验课都采用对分课堂模式,增加讨论环节,让学生及时地掌握所学知识,而不是一味地教师讲授新知识。
2) 根据学生的掌握程度精心布置讨论内容,难易适中,循序渐进地引导学生掌握所学知识,有时也让学生自己设计程序题目,这样,学生更有动力去编程实现。
3) 灵活安排讨论时间和课程进度,有些章节适当缩短讨论时间,有些章节不安排讨论,有些章节多布置习题,多安排上课的周数,通过反复上机操作和讨论,掌握所学知识。
对分课堂教学模式实施过程中,学生反响良好,并且在期末考试中,取得了较好的成绩。
2. 对分课堂教学模式在高级语言程序课程中的实践
计算机程序设计课程是一门比较枯燥、不易掌握的课程,掌握编程知识需要学生多上机操作,互相讨论来掌握编写程序和调试程序的思路,光听老师讲解是远远不够的。因此,针对这一特点,我们将对分课堂教学模式引入计算机程序设计课程的时候,将内化吸收和讨论的过程重复,减少教师的授课时间,使得学生得以掌握所学知识。
目前,在多数高校电脑设备完备,计算机高级语言程序设计课程一般安排在机房授课,一周上两次课,一次两小时,第一次为理论课,第二次为实验课。我们将对分课堂教学模式引入计算机程序设计课程的理论课和实验课中。理论课,120分钟,分为两半,前一半时间学生讨论上节课所学的内容,掌握上节课学习的难点,解决作业中遇到的难题,后一半时间老师对学生讨论过程中未解决的问题予以解答并继续讲授下一章的内容。实验课,120分钟,分为三段,前40分钟学生自主完成作业,中间40分钟,学生讨论,解决作业中的难题,根据学生的理解程度,老师要给予适当的点拨,讲授解决问题的关键点,最后40分钟,学生继续完成作业。这个时间之所以分为三个部分是从实际出发考量的,前40分钟是给学生独立思考的时间,中间40分钟让学生互相讨论,激发学生新的思路,从而解决问题,最后40分钟是为了让学生在讲授完毕后能马上编写、调试程序,及时完成课堂作业。
具体来说,我们在“C语言程序设计”课程中采用了对分课堂教学方法,班级里有50名学生,教学周数16周,第1周教师讲授程序设计和C语言的基本概念和运行程序的步骤与方法,实验课,学生上机进行操作,并完成简单的编程作业和简答题作业,第二周开始采用对分课堂教学模式,理论课前一半时间讨论上一周学习的知识和作业中没有解决的问题,后一半时间教师进行总结,可以让会的同学讲解难题,教师给予补充,也可以提一些问题,检查学生对知识的掌握程度,同时,讲授新课,并布置作业。实验课,前40分钟学生自主完成作业,中间40分钟,分组讨论,解决作业中的难题,教师可以给予适当点拨,后40分钟继续自主完成作业。第三周开始,重复第二周的教学过程,最后一周理论课不再讲授新课,实验课做期末测评。经过讲授、内化吸收、讨论、内化吸收、讨论的过程,让学生充分掌握计算机的编程技能。第二周到第十五周的对分课堂模式如图1所示。从图中可以看出,内化吸收和讨论的时间总和为180分钟,一周内内化吸收、讨论两次,有助于学生掌握编程技能。

Figure 1. PAD class teaching mode from week 2 to week 15
图1. 第二周到第十五周的对分课堂模式
下面以“循环结构程序设计”一章为例,具体阐述对分课堂的实施步骤。理论课对分课堂的教学步骤如下:
步骤1:课堂讨论
给学生1小时的讨论时间,讨论上一节课的学习内容,为“循环结构程序设计”一章的5.1~5.4节,即C语言的三种循环语句,将学生五人分为一组,因为机房一排有十个电脑,五人分为一组比较合适,大家针对具体题目,讨论三种循环结构的写法,掌握三种循环结构的异同及循环语句的要点。
步骤2:教师讲授
教师集体答疑,回答学生最终没有解决的难题,并总结所学知识。同时,讲授5.5~5.8节内容,即循环嵌套,循环程序综合应用等知识。
实验课对分课堂的教学步骤如下:
步骤1:学生独立完成作业
给学生40分钟时间,让他们自己思考,独立完成作业,循环程序综合应用的编程题。
步骤2:讨论作业中的难题
给学生40分钟时间,5人一组,小组内的同学互相讨论,解决不会编的程序和调试不出来的程序。如果学生解决不了,教师要统一讲解解题要点,对学生做适当引导。
步骤3:学生独立完成作业
给学生40分钟时间,继续独立完成作业。
3. 对分课堂教学模式在高级语言程序课程实施的问题
采用对分课堂教学模式调动了学生的积极性,但是在实践过程中也发现一些问题,分别存在于教师讲授、学生独学和讨论方面。
3.1. 教师讲授存在的问题
教师讲的课过于细致,没有留给学生自己思考的空间,或者对有些知识引导不到位,学生没有自学的方向,不知道应该去学些什么知识。
3.2. 学生独学期间的问题
学生在独学的期间,不够积极主动,比较懒散,也有的同学不会学习这门课程,不知道从何下手,甚至有的同学还在记忆编程语法。
3.3. 讨论环节的问题
这个环节存在的问题比较多,也是需要重点把控的环节,讨论的效果好,学生可以学到知识,讨论的效果不好,会浪费学生的时间,一无所获。具体有以下几方面的问题。
1) 学生分组不合理
有些小组的同学平时关系过于生疏,他们很难讨论起来。有些小组的同学都爱发言,抓不住重点,讨论效率低。有些组内的同学都比较慢,遇到难题都不知道从何下手,有些小组全是掌握得比较好的同学,没有太多需要解决的问题。
2) 学生懒散
部分学生比较懒散,讨论时间做了别的事情或者和注意力不集中,没有真正抓紧时间参加讨论。
3) 讨论内容难易不适中
讨论内容有时布置得太难,大家都不会,讨论不起来,有时太简单,也没有讨论的必要。
4) 教学进度和讨论时间安排不合理
有些章节比较简单,讨论时间安排得过长,有些章节比较难掌握,安排的讨论时间不够,没有根据各章节的难易程度,灵活地安排讨论时间。
4. 对分课堂教学模式在高级语言程序课程中的创新
针对上一节中提到的对分课堂在计算机高级语言程序设计课程中存在的问题,采取以下措施改进对分课堂教学模式。
4.1. 教师讲授的改进
在对分课堂教学模式下,教师要引导性授课,对于学生可以自己看懂、琢磨会的问题留到实验课,让学生自学,这样可以提高学生的自学能力,将来可以自学更多的计算机编程知识。同时,教师可以提出问题,让学生课下解决,提高学生学习的动力,也可以让学生在已有的程序上做一个简单的修改,增加一些功能,来逐步掌握编程的技能。
4.2. 学生独学过程的改进
实验课留给学生独立完成作业的时间要加强监督,禁止看视频,打游戏,玩手机,同时,要给学生回答疑难问题,引导学生去上机编写程序,调试程序。
4.3. 讨论过程的改进
针对讨论环节存在的多个问题,采取的应对措施如下:
1) 合理分组
学生分组的好坏,会关系到讨论结果的好坏,同一组的同学应思维互补,性格互补,才能碰撞出思想的火花,否则,大家思路相近,可能一起走进死胡同,解决不了问题。性格上都内向或都外向,可能会讨论不起来或者太乱,没有章法,达不到预期的讨论效果。因此,本着组内互补的原则,在学生自愿报名的基础上,做出适当调整。同时,兼顾学生的成绩,每个小组里要有尖子生、中等生和后进生,5人一组的话,1名尖子生,1名后进生,3名普通生,这样,好学生会带动普通生和后进生,提高学习成绩。
2) 完善考核机制
为了避免学生懒散,要加强监督,教师授课时,要随机抽取小组,回答一些问题,了解学生的掌握情况,或者是让小组派代表总结所学知识。根据学生的课堂表现,给出学生的平时成绩,按比例算入期末成绩。期末成绩的比例为60%为期末考试的成绩,40%为平时成绩,将平时成绩的比例加大,使学生更注重平时的学习态度而非最后的成绩。
3) 精心布置讨论内容
根据学生的掌握程度精心布置讨论内容,要难易适中,循序渐进地引导学生掌握所学知识。比如,数字的排序程序可以分成如下阶段:两个数排序→三个数排序→多个数排序,在这个程序的编写过程中逐渐地掌握选择结构语句、循环语句、函数语句、指针语句。不能一开始让学生编写多个数排序的程序,要逐步引导掌握。
4) 灵活安排讨论时间和课程进度
根据课程内容的难易程度,灵活安排对分课堂的讨论时间和课程进度,比较容易掌握的章节要减少讨论时间,比较难掌握的章节要多安排周数,多布置作业,延长讨论时间。比如,常量、变量、表达式等一些内容,因为它没有理解的难点,不需要讨论,讲一下就可以了。程序设计的选择结构,也比较容易理解,难点较少,也不需要太长的讨论时间。而有些章节的知识有一定的难度,需要多布置作业,多次讨论才能掌握,比如程序设计的循环结构、数组、指针等知识。
5. 教学效果
通过企业微信群和学生互动,随时接受学生的反馈信息,调整对分课堂教学模式中的一些细节,同时,采用调查问卷的方式,考察学生对对分课堂教学模式的满意程度,大部分学生比较满意,能适应这种教学模式,能从讨论中学到了更多知识。
从期末考试成绩来看,学生的成绩达到了预期的效果,参加考试的人数49人,1人缺考,90~100分的学生13人,60~89分的学生35人,不及格的学生1人,期末成绩的分布表明大多数同学掌握了高级语言程序设计课程的基础知识和基本技能,达到了较好的教学效果。
6. 结论
对分课堂教学模式在计算机高级语言程序设计课程中初见成效,该教学模式能调动学生的积极性,更好地内化吸收所讲知识,改善了计算机程序设计课程的教和学的脱节问题。但是,该教学模式仍然存在一些问题,有一些同学发言不是很积极,下一步要继续改进,探究如何能激发学生的讨论热情,让更多的同学活跃起来,也准备尝试采取分层布置作业,阶段性调整分组等措施,让不爱发言的同学放下包袱,参与进来,进一步提高学生的学习效率。
基金项目
2020年山西省教育厅高校科技创新项目(项目编号:2020YJJG031)。