基于对分课堂的程序设计基础教学探索与实践

作者: 曹俊斌 高俊

[摘           要]  为探索线上教学方法,提升教学效果,以程序设计基础课程线上教学为研究对象,通过学情分析、存在问题分析、适用性分析等,将对分课堂教学方法引入程序设计基础课程教学中。按照讲授、独学、讨论和对话等环节对线上教学进行设计,并选择尚未入学就进行线上学习的大一部分班级进行实践。从作业完成情况、程序设计实验完成情况、小组讨论和交流情况、期末考试成绩情况等多维角度,对教学实施情况进行评估。经与之前该课程传统教学效果对比,基于对分课堂的程序设计基础课程线上教学取得较好效果,可为其他程序类专业课的线上教学提供借鉴。

[关    键   词]  对分课堂;程序设计;教学探索

[中图分类号]  G642                   [文献标志码]  A                   [文章编号]  2096-0603(2023)21-0057-04

一、引言

随着信息技术的发展,教学方法也发生着显著的变化,如何将一些优秀的教学方法从线下应用到线上,以保证教学质量和教学效果,是需要考虑的问题。此外,不同高校、不同学生群体,体现出的特征不同,需要因校而宜,因生而宜。本文研究对象为本校信息产业学院2022级学生,为尚未到校就直接进行线上学习的大一新生,在授课过程中,除教授课程知识外,还需考虑如何引导学生逐渐适应大学学习方式、保持学习兴趣,如何有效组织教学、保证教学质量,如何维护学校形象,提升学生对学校的认可度等,这些都是需要在教学过中认真探索与研究的事宜。

二、程序设计基础线上教学学情分析及存在问题分析

(一)学情分析

程序设计基础是全校所有专业都开设的通识课程,在教学中,不仅关注学生对程序设计知识的掌握,更注重学生程序设计能力的培养。对于还未入学的大一新生来说,学习本门课程具有以下特点。

1.学生学习兴趣普遍偏高,学习动力强

因有别于高中课程,大学课程内容新、领域广,大一新生普遍对此感兴趣,有较强的学习欲望。加之受网络游戏、App和其他应用软件使用情况的影响,学生对程序设计基础都比较感兴趣,想通过学习程序设计基础,逐步接触和进入神奇的IT领域,求知欲强、探索性高、学习动力足,愿意在此课程中投入更多的精力。

2.程序设计基础课程理论知识难度适中,但实践操作要求较高

不同于其他课程,程序设计基础课程的知识要点在学习时看似简单,也容易理解,但实际操作起来却不容易,学生在学习过程中往往因一些小问题得不到及时解决而卡在某处,从而影响后续知识的学习。学生只有在不断地在程序编写、调试、运行等实践操作过程中,也就是在逐渐遇到问题、分析问题、解决问题的过程中,才能深刻理解和掌握所学的知识要点。此外,教师在指导学生实践操作、解决问题的同时,也需逐步提高程序设计的难度和复杂度,让学生在实践操作中不断提升其程序设计与开发的水平,更重要的是,让学生在此过程中不断培养和锻炼编程思维。

3.师生间、学生间相互了解程度不高,教师教学压力较大

在新生未到校报到的情况下就安排学生进行线上学习,存在两个问题:一方面,学生之间、师生之间彼此未见面,只是在网络中一起交流,相比实际相处,彼此间缺乏了解和相互磨合,学生在学习方面交流较少,遇到问题时更愿意求教于教师。另一方面,由于是大一新生,教师对学生了解程度不够,学情掌握不准,加之在新生大学生活刚开始之初,需要正确引导学生,加倍维护学校形象,教学压力相比线下较大。

(二)存在问题分析

程序设计基础,一般作为高等教育中的基础课程,对于一些工科、理工专业尤为重要,可培养学生程序设计思维、编程能力,也可为学生在程序设计与开发方面的进一步发展奠定基础,是学生必须要掌握的一门基本课程。因此,学好程序设计基础课程,对于刚入学的大学生来说尤为重要。在前几周的线上教学中,发现了一些比较明显的问题,具体如下:

1.课上互动性不高,课后答疑分散

线上教学以教师讲授为主,单向信息传递为主要方式,学生反馈信息较少,与线下教学相比,线上教学学生的互动性较差,信息接受程度降低。教师在讲授完某一部分知识要点后,一般都会询问学生有何问题,但多数情况下学生是沉默不语,有的可能由于害羞,有的可能担心其他同学笑话。而在线上授课结束后,学生就可以私下通过微信、电话等方式请教,有些问题已讲解过,但学生未注意,有的是个性问题,需要指导解决,有的是共性问题,需要共同讲解。由于问题的分散提出,导致教师在课外也耗费精力较多。

2.学生有效反馈不足,教师对课堂情况掌握不够精准

线上授课,教师相当于“主播”,学生相当于“粉丝”,教师对于学生在网络端的具体情况难以知悉,部分学生虽然“在线”,但其实已“分身”,听课效果难以保证。在线上教学过程中,教师会带领学生做一些编程练习和实验,会留有一定的时间让学生进行自主练习,同时也会给学生安排线上程序设计实验,部分学生能紧跟教师的节奏,在发生问题时及时与教师进行沟通和交流,完成课堂任务,但仍有一部分学生表现平平,反馈较少,教师无法了解其实际听课情况。在随堂学习、程序练习、作业完成、程序设计实验等过程中,学生主动请教和咨询的比例较少,反馈也不够及时。由于网络的便利性,部分学生在完成作业、程序设计实验等过程中存在抄袭现象,教师难以监管,并且难以根据其所提交的作业和程序设计成果来准确判断其对知识要点的真实掌握情况。此外,在线上授课过程中,教师难以通过传统的眼神交流、表情观察、课堂巡查等手段,了解学生知识要点掌握情况,难以根据实际情况来调整授课内容及难易程度。

三、解决对策及对分课程适用性分析

(一)解决对策

1.选择合适的网络教学平台和教学工具

目前线上教学的平台有腾讯会议、钉钉、学习通等,其各有优势,总的来说,选择学习平台时,应尽可能选择大家所熟知的、使用效果良好的,能在电脑、手机、IPAD等终端上使用的、便于操作的平台进行线上授课。此外,需要使用一些其他软件做辅助,如雨课堂、微助教、微信、QQ等,便于课件上传、作业布置、课堂点名、交流互动。学校里教师所使用的平台和软件尽量统一或集中于少数几款,建议在学校层面,将使用的教学平台和教学工具进行统一,并通过付费等方式将平台中的一些功能进行升级,便于全校师生使用。此外,这些平台应保留线上教学过程信息,一方面便于学生复习和回看,另一方面也可提供教学考核过程和印证资料。

2.采取合适的教学方法,提升课堂互动性

程序设计基础,关键在于实践操作,而课堂互动性非常重要,只有在互动交流讨论过程中,学生才能理解和掌握知识要点,因此,在选择教学方法和设计教学内容时,一方面要考虑增加学生互动和反馈的比重,让学生从单纯的“听讲”转变为“听讲—实践—思考—提问—吸收”,在授课过程中,采取引导、规范、提问、分享、交流等方式,努力营造出活跃的互动氛围。另一方面,要增加实践操作比例,通过线上观看、随堂练习、线上测试等方式,带领学生由浅入深,由易入难。

3.加强检测手段,增强学生反馈

学生对知识要点的掌握程度、学习效果的好坏,只有在其有效反馈的情况下才能准确掌握,需要有评估和考核方法。在程序设计基础课程中,教师不只需要学生提交作业,而且需要反馈程序练习结果、上机操作结果,通过对作业和程序设计实验完成效果的检测,判断学生对所学知识点的掌握程度,以此安排后续授课进度和课程难易程度。此外,为保证学生反馈的真实性和有效性,应该选取和设置一定规模的程序设计习题库和实践操作练习题库,将实际校企合作项目、大学生程序设计竞赛、计算机等级考试等内容融入程序设计基础教学中,以增加课程知识点的挑战性和实用性,学生在进行作业练习和程序实验时,随机出题,可以相互讨论、交流,但不允许相互抄袭。

(二)对分课堂情况适用性分析

对分课堂在许多课程和场合中已经得到了应用,且取得了不错的效果,主要流程分为讲授、独学、讨论、对话四个环节。而程序设计基础课程在授课中采用对分课堂教学方法,能与课程的内容与特点有较高程度的吻合。

1.理论讲解与“讲授”环节对应

程序设计基础课程的理论相对简单,不需要花费大量的时间进行讲解,只需要将每章节的知识要点进行总结和凝练,并设计成授课内容,占用较少的授课时间,其与对分课堂中的“讲授”环节相适应,即教师先讲,充分而不过分地引导。

2.上机操作与“独学”环节对应

程序设计基础课程知识要点的掌握,关键在于学生自己的实践操作和学习体会,在实践操作过程中“遇到问题分析问题,解决问题”,学生只有经过独立思考、个人理解、内化吸收等,才能加深对知识要点的理解和掌握。这与对分课堂中的“独学”环节要求一致,即独立思考,个人理解,形成成果。

3.请教解惑与“讨论”环节对应

学生在知识要点学习及实践操作练习过程中,遇到的问题大同小异,在学习过程中,有时某位学生遇到的问题,也是其他同学所遇到的或是已经解决的,通过学生之间相互交流,不仅能增加学生对知识要点的理解,而且也能促进学生之间相互学习和了解,锻炼学生的沟通与交流能力,加深学生对所讨论知识的掌握。此外,讨论可以培养锻炼学生的组织能力和表达理解能力,教师可以通过观察学生的讨论,发现一批优秀拔尖学生,为后续组织参加全国性程序设计大赛、校企合作项目、科研纵向项目等储备人才,而对分课堂中的“讨论”能很好地应用其中。

4.集中交流与“对话”环节对应

对于小组讨论中出现的一些共性难题,教师可以集中讲解,促进学生整个听课群体的理解和掌握。此外,集中交流时,教师可以结合授课内容,将一些课外知识进行延伸和扩展,有利于激发学生的兴趣,培养学生的自学能力,同时,通过抽象与凝练,结合实际,将一些思政元素融入,有助于提升对学生的思政教育。而对分课堂的“讨论”环节,可以把教师的精力空闲出来,使教师可以凝练一些更高层次问题,在“对话”环节进行讲解,即教师答疑,解决高层次问题。

四、线上教学的设计

(一)腾讯会议+微助教+CodeBlocks

在线上教学过程中,选择使用范围较为广泛的、软件稳定性的腾讯会议作为授课软件,同时,选择钉钉软件作为备用平台。与此同时,选择微助教软件作为课堂管理辅助软件,此软件可以使用微信直接登录和加入课堂,不会给学生造成额外负担,并且授课过程中,可以结合腾讯会议,进行布置作业、课堂提问、现场签到、分享课件等操作。此外,在进行程序设计基础练习时,选用Codeblocks软件,该软件功能强大,相比于其他软件,界面友好、操作简单,而且占用存储空间较少,适合学生程序实践操作。

(二)线上对分设计

在对分设计时,按照“讲授、独学、讨论、对话”等环节对教学内容进行组织和设计。

1.讲授环节设计

程序设计基础课程在授课中使用的编程语言为C语言,该语言语法规则简单,便于学生学习。在讲授过程中,根据教学大纲将每一章节的知识要点进行凝练,形成讲授内容,并根据学生情况和授课进度进行认真设计。一般在2个学时的每节课中,每个知识要点讲解10分钟左右,每次安排2~3个知识点,每个知识要点都要将语法规则、易错地方、注意事项等内容讲授清楚。在讲授完成后,就安排学生进入“独学”环节。