王炳鹏,高 丽,刘素君,山青青
(兰州石化职业技术大学,甘肃 兰州 730060)
长期以来,高职院校中编程语言类课程都是教师教学的一个难点课程。随着教育信息化2.0 时代的到来,信息技术与教育教学深度融合,很多编程语言类的课程也采取了线上线下混合式的教学方式,但实际的教学效果却不如人意。根据不完全统计,在真实的教学过程中,60%的同学在学习初期就会出现“听不懂、跟不上”的问题[1]。随着教学的持续深入,这个比例会不断提高。最后只有寥寥无几的同学能够掌握教师传授的全部知识内容,极个别同学可以在教师教学的基础上扩展学习。线上内容往往会成为学生的打卡资料,对于实际的教学帮助几可以忽略不计。为具体了解学生对语言类课程的理解和掌握程度,2020 年12 月份,针对78 位2020 级大一学生进行了一次无记名的投票调研,主要调研学生对自身掌握C 语言程度的认知。调研结果如下表1 所示。
表1 学生对C 语言的掌握情况的自评
此表反映的现状,对希望提高教学质量、进行有效教学的老师无疑提出了一项严重的挑战。有效教学是教师通过有效的教学准备、有效的教学活动和有效的教学评价来促进学生学习和发展的教学[2];是符合教学规律的“有效果”“有效率”“有效益”的教学[3]。为了实现这样的目标,2021 年3 月份,本校面向2020 级学生具体学情,设计在整个教学过程的各个环节中融入分层教学,充分考虑混合式教学的应用,开展了一次“Python 编程基础”课程的教学实践。通过前后的数据对比,本校实现了相关高职类编程语言类课程的有效教学。
李长勤认为,教学还是分层教学主体,是学校实现教育目的的基本途径;其次是分层次,教师在学生知识基础、智力因素和非智力因素存在明显差异的情况下,分类设计教学环节和进行教学;再次是应达到教学效果的最优化[4]。分层教学是教师根据学生现有的知识、能力水平和潜力倾向把学生科学地分成几组各自水平相近的群体并分别教学[5]。分层教学基于学生个体的差异性以及指向学生个体的发展性,具有教学目标的分层性。其中学生个体差异性是教学的基础,教学目标分层性是策略,学生个体的发展性是目标。教师在线上线下混合式教学过程中应用分层教学,首先要分层教学目标,其次在教学内容、教学实施、教学评价等各个环节融入分层教学。
参加“Python 编程基础”课程的3 个班学生,总计103 人;其中来自中职的学生64 人,来自高中的学生39人。整体上看,高职学生学习积极性不高,逻辑思维能力偏弱,不具有良好的学习习惯,遇到难题容易退缩;但积极性高,乐于实操、尝试、探索,,对于新鲜事物的接受能力强。为了实现学生最佳的学习体验,调研人员在课程开始之前发布了学生学习习惯的自评投票,主要就学生自学能力、课前学习量、学习方式等问题进行调研。结果显示,同学们目前比较认可线上线下混合学习方式(占比75%),课前预习的自测题量以5 道为宜(占比47%),课前预习时长在20 分钟左右为宜(占比47%),比较受欢迎的课堂教学方式是项目案例式教学(占比72%),对于在线视频教学内容更喜欢实际编程演示(占比72%),对于存疑的问题希望通过“课堂沟通”(41%)、“线上讨论”(41%)、“查资料、自主学习”(44%)的方式解决。支持“课后咨询”方式来解决问题的同学只占13%。
从课程本质来看,整体教学目标应当是培养学生Python 编程的主体思想,掌握python 的基本特色表达和利用计算机思维分析问题、解决问题的能力。在前述的基本学情之下,这也成为课程的教学难点。再详细分析课程教学知识技能的难度,体现在两个方面:一方面是知识技能本身理解难度比较大;另一方面是应用描述复杂,但使用知识技能简单,难点在于学生无法将复杂的问题描述与计算机语言结合起来,无法用计算机思维来解决问题。
从行业应用的角度出发分析可知,分析课程所在专业对Python 学习的要求,对培养学生的目标更多的是对基本编程技能的掌握和对具体问题的分析解决能力。因此重点是第二方面的难度考量,教师以实现不同难度和复杂程度案例任务为分层教学目标,应对不同特点的学生实施教学。
Python 编程语言应用广泛,无论是计算与数据分析、人工智能、自动化运维、云计算、网络编程还是游戏开发等方面都得到了应用。为调动学生学习的积极性,考虑到基本学情,本文整合基础行业应用和竞赛案例,在人才培养方案和课程标准的指导下,遵循学生认知规律,基于教材层次化递进关系设计了五大项目整合Python 编程基础的教学内容。具体项目单元中,继续使用细分任务串接各知识技能点,最后综合知识技能点完成项目单元综合案例,实现具体项目效果。课程教学内容最终如表2 所示。项目和任务的设计,搭建了“项目引导,任务驱动”的前提,对接了行业应用,调动了学生的学习兴趣,培养了应用计算机思维解决实际行业问题的能力,为课程的持续有效推进奠定了基础。
表2 教学内容项目任务设计
教师根据“实现不同难度和复杂程度的项目任务”的教学目标,设计难度和复杂程度不同的教学案例,以供拔尖学生、普通学生和落后学生的学习需要,进一步提升拔尖学生的知识技能水平,激发普通学生学习兴趣,逐渐引导落后学生投入课堂、积极参与课堂教学。分层案例根据单元的知识技能特点和教学进程,逐步引入课堂。以项目二为例设计的分层案例如表3所示。
表3 项目二分层案例
课程总体采用6 个步骤的“行动导向教学”实施方式。教学实施的难点是正确分析项目中各个实际任务,运用计算机语言解决实际问题。因此,在面向具体任务时,教师在“发布实训任务”环节使用体验法、讨论法等引导学生体验任务功能和分解任务功能。在“实施实训任务”环节,使用对比法、启发法等引导学生使用计算机语言表述实际问题基本元素;使用讲授法配合学生的认知规律逐步展示任务核心代码;使用练习法、验证法完成任务。在“任务结果展示”环节,使用学生演示法、评价法引导学生优化代码、认识编程中出现的问题。在“分层案例测验”环节,提供不同难度和复杂程度的案例,采用小组讨论法由小组根据自身情况选择分层案例,使得每位同学都可参与、完成相应案例,从而提升拔尖学生知识技能综合运用能力,强化一般学生知识技能基础运用能力,督促落后学生继续理解、熟悉知识技能。在“分层案例评价”环节使用案例在线评价、组内评价、组间评价和教师评价的应用方式帮助学生全面认识知识技能。在“课后实操拓展”环节,使用在线实操视频教学、增值评价鼓励继续深入学习。
在整个教学过程中,线上教学方式作为整个教学的必要环节出现。主要实现课前预习、课中实时反馈并检查学习状况的任务。所有分层案例资料以在线展示作业的形式,不同案例分值不同,基础案例2 分,中级案例4 分,复杂案例8 分。除分层案例之外,还提供竞赛相关资源和计算机等级考试资源,也由学生自主选择完成。在课堂上,拔尖学生可以课上展示,普通学生可以课下自选完成、线上提交,教师实时进行线上评价。
在各个环节中最大化学生参与度,尤其在自选问题环节,教师只负责公布自选问题、组织学生展示程序结果、开展评价。教师在关键核心代码的讲解上,注意知识技能点的层次化递进,采用学生讲解和教师讲解相结合的方式。提供丰富的教学形式,包括课前测验、课后作业、课中头脑风暴、讨论;教师提供丰富的教学资源包括参考教材、编程实操视频、任务分析流程等对学生进行引导、鼓励自主学习。对于拔尖学生,形成了“岗课赛证”融通的培养方式,学生在知行合一中获得了有深度的“真功夫”,实现在学校所学知识、技能与企业岗位需求无缝对接。对于一般学生,教学方案也提供了课后持续发展学习的空间,通过增值评价充分发挥评价的诊断、激励和调节作用。
教师需关注学生形成知识理解、技能掌握以及情感态度、行为习惯等素养,按照职业岗位要求建立以能力为中心的考评体系,坚持将结果评价和过程评价相结合,发挥教师、学生多元评价主体的评价作用。评分点包括学习态度、行为养成、规范编程、完成效果和程序优化简洁程度等评价指标,尤其注重学生在课下完成在线自选案例的考评,以激励、督促学生更广泛、积极地参与各种学习活动。
总体来看,整个教学过程中,线上线下不断交叉进行,突破了课前、课中和课后的限制,通过“项目引导、任务驱动”教学,以学生为中心,从学生基本情况出发分层教学,及时评价反馈,激发学生学习兴趣和积极性;从教学效果来看,班级学习氛围浓厚,学生参与度明显提高。拔尖学生完成了所有课堂和线上教学资源和活动,在各种竞赛和取证中屡获佳绩。普通学生整体成绩也在以往基础上有了明显提升,如表4 所示。
表4 Python 编程基础期末考试成绩分布统计