梁婷婷,李春青,黄勇萍
(广西民族师范学院 数学与计算机科学学院,广西 崇左 532200)
混合式教学(B-learning)是在线(online)和离线(offline)教学的一种整合,它是一种由面对面课堂教学和网上交互辅助教学形成的混合模式[1]。
美国教育部做过一个大规模在线调查,对比高校教学中开展的三种教学模式效果,分别是:B-Learning模式、E-Learning模式和传统课堂教学模式。结果发现最受欢迎的是B-Learning,效果最低的是传统大学课堂面对面教学模式。国外很多知名学者一致认为,“混合式学习是最有效的学习方法,它增加了传统课堂的趣味性,又解决了在线课程高退学率的尴尬处境。”[2]
混合式教学既可以保留传统教学的面对面互动交流模式,又可以合理利用在线MOOCs 和微课等资源,它结合线上和线下教学的优势,对推进高校课堂教学改革有重要意义。
文献[3]指出:“混合式教学的成功与教师、学生、教育资源以及高校的支持息息相关,在不同的教学环境与教学阶段中,混合式教学模式也有所不同,并且会面临不同的问题”。影响混合式教学效果的因素有:在线学习平台使用不充分、技术应用困难、线上和线下答疑缺失、学习资源的不同步等因素,这些都会影响学生在混合式教学中的表现。教师需在现代教育技术的支持下,通过线上或者面授过程,获取学生的学习行为及学习特征的数据,了解学生的需求,重构和调整教学过程和方法,确保学生的专注度与学习的有效性。
充分利用新媒体和混合式教学的优势,构建合理有效的新媒体环境下的混合式学习模式,并对程序设计基础课程C语言程序设计进行教学分析、设计和改革实践,从而取得最优化教学效果。主要的改革目标包括以下3方面。
(1)做到4个转变:以课堂教学为主转变为课内外结合、以教为主转变为以学为主、以实验验证为主转变为实例开发训练为主、以结果评价为主转变为结果过程评价结合。
(2)做到4个适当:提供适当的教学资源,设计适当的教学活动,在适当的教学阶段,应用适当的新媒体技术。
(3)提高学生4个能力:编程能力、合作和沟通交流能力、自主学习能力、创新能力。
新媒体环境下的混合式教学研究是一个非常值得研究的课题,新媒体技术的应用影响着混合式教学的成功。新媒体技术支持师生间的多元互动、资源的筛选和有效利用[4]。师生间的多元互动,会提高学生的合作和沟通交流能力,资源的合理选择和利用则有利于扩大学生知识面、拓展思维空间,提高科学探索能力。
教学改革的主要内容有:构建适合新媒体环境下的高校混合教学设计模式,并对此模式和程序设计课程进行分析和教学设计,主要包括分析、设计、开发、实施和评价5个步骤,将传统的物化学习环境和网络虚拟环境相结合,实现两者的相互补充、相互促进,改善学校的教学效果。
应用新媒体技术的教学模式设计主要分三大模块,如图1所示。
(1)教学分析阶段,通过分析教学对象,将知识分为事实知识、原理知识和技能知识3种类型,针对不同类型的知识选择合适的教学媒体与技术。
(2)教学设计阶段,包括4个部分:①重构教学目标与教学内容:正视学生的水平差异,针对教学目标,注重问题的普遍性,梳理各章节的教学重难点,适度拆解、增删、选用、调整和加工知识点,二次整合教材。②制定教学策略:设计多样化的教学组织形式,综合运用任务驱动、分组协作、讨论辩论等教学方式。③设计教学过程:设计课前、课中和课后3个阶段教学活动。包括筛选网络教学资源和设计自主学习任务单;设计教学内容和策划研讨活动;编排测试内容、学习反馈和形式设计。④调整学习评价:综合考核工程素养、自主学习、协作学习等方面的表现,结合教师评价和小组内学生互评,进行多元化评价。
(3)教学实施阶段,包括教学资源的建设和共享,课前推送的自主学习清单,课中保证学生所学知识体系完整性的基础上,引导学生自主探究,指导学生合作学习,引入随堂测试,检验学生学习效果,课后鼓励学生沟通,通过投票调研、知识测试、实验作业等形式反馈教学效果,并最终对学生的学习进行评价。教学实施流程如图2所示。
以受众面最广的《C语言程序设计》课程为例,应用上述的教学模式,进行教学改革实践。采用项目驱动进行讲练一体化,教师引导学生探究式地进行实例开发测试。筛选或制作优质的教学资源,利用当前的数字化平台或云盘共享所有的教学资源,利用智慧教学工具雨课堂或者超星学习通APP等,推送教学资料,包括课前预习任务单、面授的课件和课后习题测试等。同时,记录和统计师生实时互动的数据。最后,收集和整理教学实践过程中的各种信息,主要包括混合教学前后学生课堂表现、学习能力和小组协作评价,师生对混合教学方式的满意度等,探讨不同新媒体技术在程序设计基础课程混合式教学中辅助学生自主学习、师生沟通、资源利用、学习评价等方面的经验和价值。最后完善教学模式设计,再次选择实践对象,实施教学改革实践,分析、总结并推广成果。
图2 新媒体技术应用于课程教学的实施流程
函数的定义和调用是编程人员的必备知识,教材上“函数的定义和调用”这个内容只是给出了格式及说明,虽然有相应的实例,但是实例间没有联系。笔者在教学过程中发现,学生即使很清楚函数的定义格式,在碰到实际问题时,对于具体怎么定义函数的参数、返回值、函数体,调用函数时如何写实参及接收返回值等知识的应用还是比较混淆的。
笔者设计了一个微课作品,重新编排了教学内容,结合情境教学法和任务驱动法等教学方法,引导学生一步步的定义和调用函数。首先是以讲故事这种有趣的方式引出函数的作用,然后结合实际生活中的几个场景,由简到繁分析定义函数的三种形式,突破教学重点,同时用模型和多种动画来形象地说明函数的参数、返回值、函数体等部分的关系和运用,从而突破教学难点。教学环节和内容见表1。
笔者在课前将9分钟的微课发送给学生,并让学生跟着微课的实战演练,编写函数的定义和调用的程序,并自主编写程序完成思考题任务。课中,分3个阶段进行教学。
(1)面授答疑:针对学生的疑问进行解答。
问:为什么明明有输出代码,却没有看到相应输出的内容?
答:因为输出代码在函数的定义部分,主函数中没有调用该函数。打比方:员工具备烹饪功能,但不是时刻都在烹饪,而是在老板发出指令,让员工去烹饪的时候,才获得烹饪功能带来的成果。
(2)随堂测试:利用雨课堂发布测试题,如给出三段语法有对有错的代码,请选出语法格式正确的代码,待学生答题完毕后,根据反馈,实时解答学生存在的问题。给出一段程序,让学生提交程序执行结果。点名学生,让学生回答哪些是形成、实参、返回值等部分。
(3)展示课前学生完成的主题实验的代码,讨论和点评。对学生编写的程序进行简单分类:无参无返回的函数、有参无返回的函数、有参有返回值的函数。将不同的程序展示给其他学生,让学生讨论和思考各种写法的函数的定义和调用代码的区别。
冒泡排序法是一个经典的排序算法,涉及一维数组定义、引用及初始化的相关语法规则,并综合应用双重循环及冒泡排序法的原理来解决问题。教材上关于本节的内容只是简单地介绍了冒泡排序法的原理,然后直接给出程序。若依靠教材的教学方式,学生往往不明白代码如何得来,即使再碰到类似问题又不知该如何使用相关知识进行分析及应用。
笔者通过对教材上的内容的深度挖掘和扩充,设计与制作了一个微课视频,以“创造问题情境—确定问题(任务)—制定解决方案—尝试解决问题—发现新问题—改进解决方案—解决问题—拓展问题”为基本思路,充分利用动漫人物和动画形象的展示知识点,突破教学重点,以“做中学,学中做”来引导学生观察、思考和实践,突破教学难点。通过约简、转化、仿真等方法,分解复杂任务。教学环节和内容见表2。
表1 函数的定义与调用微课视频教学环节和内容
同样地,笔者在课前把微课发给学生,并让学生编写和运行5个人的身高升序程序,并自主编写10个财富数据降序程序。课中,分3个阶段进行教学。
(1)面授答疑:针对学生的疑问进行解答。
问:双重循环的外层变量i为什么从0开始?能不能从1开始?
答:变量i的值代表排序的趟数,从0还是从1开始都可以,只要变化的次数是n-1次,并且内层循环j的终值匹配上就好。
(2)随堂测试:利用雨课堂发布测试题,如存储5个人身高数据的一维数组的定义和初始化代码正确的是?如何利用循环逆序输出一维数组的所有数据?给出一段降序排列的程序,让学生提交该程序的执行结果。检验学生对基础知识的应用。
(3)主题实验及分组讨论:分组学习插入排序法代码,讨论代码的相似和不同之处,派不同的学生上台简单讲解插入排序法的原理和代码执行过程。
表2 冒泡排序法微课视频教学环节和内容
当学生对插入排序法有了一定认识后,课后再给出插入排序法的微课视频,让学生自主学习,翻转了常规的教学过程,让学生对知识的掌握更加的深刻。
3个微课作品分别获得第15—17届广西高校教育教学信息化大赛的二等奖和三等奖,说明微课作品得到了同行教师的认可。在给学生观看和学习的过程中,学生表示作品兼具实用性和趣味性,并能够主动参与,学会运用计算机解决专业问题、学以致用、活学活用,提高了自己发现问题、分析问题、解决问题和动手实践的能力。笔者立足于程序设计基础课程的教学现状与新媒体环境的特点,充分结合各种新媒体技术的优势,教学方式多样且灵活,将程序设计教学渗透到日常网络和智能终端的使用中,而不仅仅局限于面授课堂,实现学习空间、学习资源、学习方式的混合。
为培养应用型创新人才,对程序设计基础课程进行教学设计,合理利用新媒体技术,根据新教学模式设计的课件、案例素材、源码等资料共享在数字化学习平台上,并通过学习任务单明确学生的学习内容、进度、方式等,使得师生对资源进行有效利用。促进学生进行知识的“应用、分析、评价和创造”等高阶思维活动,强化自主学习与协作学习。同时,利用智慧教学工具,便捷地推送各种学习资源和学习任务单,自动收集和统计知识测试数据以及各种教学过程的数据,教师可根据情况调整教学,促进教学相长。全面提升学生的编程技能水平、综合素质、创新能力,真正做到科技服务于教育。