刘姝
摘 要 随着信息化技术广泛地应用于教育领域,混合式教学逐步受到教育工作者的关注。文章针对C程序设计课程的教学现状和存在的问题,提出了基于项目驱动的混合式教学模式,从教学实践平台的搭建、教学项目的规划、线上线下教学设计以及课程评价体系几方面进行了详细阐述。依据建构主义学习理论,深入研究了将项目驱动的模式引入翻转课堂教学实践中的具体实施方案。
关键词 项目驱动 混合式教学 C程序设计 翻转课堂
0 引言
C语言程序设计是很多理工科专业的基础必修课,其教学目标是培养学生的计算思维能力、算法分析能力和编程测试能力。[1]作为一门实践性很强的课程,在教学中要强调理论性和实用性并重的原则,学生不仅要掌握C语言的语法知识、过程化程序设计的基本结构,常用的算法设计以及数据表达方式,更要将程序设计的思想应用到解决实际生活问题中,尝试开发专业领域的应用程序,将理论抽象转化为工程实践,培养具有实践创新能力的高层次应用型人才。
对C程序设计课程教学现状进行分析,发现存在如下问题。课堂教学仍然以教师讲授为主,片面关注语法知识,没有有效地将知识点融入到实践操作中,忽视了对学生思维能力的训练,学生缺乏积极性和自主性。实践环节局限于教材和实验指导书的内容,缺乏综合性的算法拓展训练和工程化的项目训练。考核方式单一,以结果性评价为主,忽视了实践教学的过程性评价。
随着互联网的快速发展,信息技术与教育跨界融合,教学资源和教学手段不再局限于传统课堂固有的模式。本文提出了一种基于项目驱动的C程序设计混合教学模式,并设计了将项目驱动模式引入翻转课堂教学的具体实施方案。
1 基于项目驱动的C程序设计混合式教学模式
项目驱动教学法建立在建构主义学习理论之上,[2]把建构主义学习理论有效地应用于理论和实践教学中,通过项目实施推动教学进程,提倡“以项目为主线,以教师为引导,以学生为中心”[3]的思想。在项目的实施过程中,充分发挥学生的主动性和创造性,整合已有的知识,积极讨论和探究项目实施过程中遇到的新问题,建构新知识,进而培养学生的自主学习能力和协作精神。
在网络信息技术的支持下,混合式教学包含多个层次,面对面教学与在线学习的混合,不同教学理论指导下的教学方法的混合,线上与线下不同学习环境的混合,学生个性化学习与协作学习的混合,多种教学媒体与演示方式的混合,真实课堂与虚拟教室的混合等。[4]
结合C程序设计课程的教学内容和知识体系结构,以多层次的实践项目为教学载体,将传统的教育资源与互联网信息资源进行优化重组,结合面授教学与在线学习的特点和优势,基于项目驱动的混合式教学模式如图1所示。
1.1 构建立体化混合式教学实践平台
互联网信息化的发展,从最初的面对面实践教学环境发展到了线上实践教学平台,资源实现了高度共享,教师和学生有了更广泛的选择范围。计算机实验室、软件工程实训基地等实践场地和资源,ACM程序设计大赛、大学生创新创业项目等各类竞赛,保证师生面对面的讨论交流,提高学生的团队协作能力,实现了学生在知识深化以及综合拓展能力方面的工程化思维的转变。虚拟实验室、各种慕课资源以及程序测评系统等多种在线实践教学平台,使教学从课堂延伸到了课堂之外,实现了师生的在线交流,保证了学生的个性化学习,提高了学生的自主学习能力和探究精神。
1.2 整合多层次教学实践项目
结合软件开发特点,遵循应用型人才培养规律,对应教学活动的不同环节,将教学实践项目分为三个层次,分别是基础实践型项目、综合设计型项目和工程创新型项目,循序渐进地培养学生的软件开发和工程创新能力。
基础实践型项目以培养学生的基础实验能力为目標,教师紧扣教学内容的重点和难点,把C程序设计的相关基础理论知识、经典算法的传授和基础实践项目相结合,将知识点融入到真实场景中,使学生不再拘泥于枯燥的理论知识,而是学以致用,高效系统地获取知识。综合设计型项目以解决实际问题为主要目的,将若干教学模块的知识点进行有机串联,使学生在一定的情境中能够灵活运用所学知识并进行有效的知识迁移,从而提高编程技能,进而建立起软件开发思想。工程创新型项目以工程企业标准设计项目,依据建构主义学习理论的四大要素“情境”、“协作”、“会话”和“意义建构”,强调在问题解决中完成自主学习、协作探究和创新实践,[5]最终培养专业的软件开发和系统设计人才。
精心设计教学项目,要符合学生的认知能力,并能够进行知识的拓展。从基础模块开始,逐层完善扩展功能,使学生在不断的思考中进行探索和创新。这样做不仅形成一个完整的知识体系框架,而且从逻辑上形成一个清晰的思维脉络,加强了思维训练的连贯性。表1所示C语言中“小学数学四则运算测试系统”项目任务规划。
1.3 探索线上线下多样化教学方法
网络课堂、慕课、微课等多种在线学习方式的出现,使学生可以随时随地利用碎片化的时间观看在线视频,进行在线学习,完成在线测试,弥补课堂上有限的时间内获取知识的不足。教师可以通过在线学习平台了解学生的学习状态,监控学生的学习过程,及时调整课堂进度与内容,使课堂教学更加有的放矢。但是在线学习不能替代课堂教学,课堂教学中面对面的情感讲解、交流互动等教学优势仍然是在线学习不可比拟的。强调学生在学习过程中的主体地位,将项目驱动式、任务驱动式、启发讨论式、协作探究式等多种教学方法混合使用,利用翻转课堂的教学模式完成线上线下混合式教学,[6]在教师的积极引导下,营造起融洽的学习氛围。
1.4 构建科学合理的课程评价体系
课程考核是评价学生学习效果的重要环节,合理的课程评价体系促进提高教学质量。强调学生程序设计能力,注重学习过程的动态性和持续性,构建C程序设计的课程评价体系,包括项目实施评价、在线学习评价和期末综合评价三部分。在项目实践教学环节中,由学生的项目实施情况、答辩总结报告以及团队协作能力给出项目评分;在线学习环节,根据网络教学平台上记录的学习数据,如观看视频情况、在线测试成绩、讨论参与记录等给予合理的过程性评价;期末综合评价通常以机试的方式综合考察学生对程序设计理论知识的掌握情况和动手实践能力,使学生对知识的理解更加系统化。
2 项目驱动下的翻转课堂教学实施
以项目为教学主线,围绕“做中学”的宗旨构建情境式教学;[7]以翻转课堂为教学实施,最大程度地基于线上线下教学实践平台,融合课堂教学和课外教学,以学生为中心完成应用型教学和学习过程。项目驱动下的翻转课堂教学实施如图2所示。
2.1 课前教学环节
教师明确课程教学目标,熟悉教学内容,了解学生学习能力精心设计适当的教学项目,整理出与该项目相关的知识点。将项目的演示效果与知识点分别录制教学视频,提出有针对性的学习问题,配合各类学习资源发布到网络教学平台。学生自主学习Mooc资源、微课视频,完成在线测试,通过问题交流、合作讨论等方式,掌握项目相关的理论知识点,并收集项目相关资料,完成项目需求分析。
我校于2015年在超星Mooc平台上建成了“高级语言程序设计(C)”的网络在线课程,界面如图3所示。教师可以和学生互动答疑,了解学生在自学过程中出现的问题,并监控学生的学习情况,为课堂教学做好准备。“结构体的定义及使用”这一小节学生课前观看视频的情况如图4所示。
2.2 课中教学环节
依据C程序设计课程强调实践性的特点,将上课地点安排在机房,更好地满足师生之間的互动交流,及时解决在代码调试中出现的问题。教师收集课前在线讨论或答疑过程中的共性问题,梳理涉及到的知识点和重要概念,配合应用实例,反复多层次地对知识点和各种应用问题进行综合分析及系统化的阐述。教师依据项目的规模对学生进行分组,一般综合设计型或工程创新型项目可以2~4人为一组,而基础实践型项目不再分组,由学生独立完成。根据软件开发的组织流程由抽象到具体,学生在项目的实施过程中分别担任一个或若干个角色,使学生真正感受项目开发的整个过程。
(1)项目方案制定。学生课前通过分析项目的任务需求,确定设计方案,包括与用户的交互方式、数据的表示存储方式、各功能模块的划分及模块之间的联系。根据子模块的功能进行任务分配,保证每个同学都参与到项目中来,互相协作完成项目的设计开发。教师监督引导方案的设计、及时纠正设计中出现的偏差,保证每一组的方案是有效可行的。
(2)项目方案实施。学生按照分配的模块功能,完成算法设计和代码编写工作,并进行调试分析。尽量由学生自己解决代码中出现的问题,教师可以给出常见错误的解决方案,如变量未初始化、数组下标越界、指针指向错误等。学生在小组内或组间进行项目研讨,提出项目执行过程中遇到的问题,分享项目开发过程中的经验,展示项目的阶段性成果。教师及时了解项目进展,把控整体方向,进行项目的阶段性评价,对遇到的难点问题予以适当的启发。
(3)项目展示评价。项目完成后,以小组为单位进行项目答辩,讲解项目的设计思路,演示运行结果,自评设计的优缺点,回答教师和其他组同学感兴趣的问题。教师根据项目的功能实现、设计思路、创新性以及团队合作情况综合评分,并总结评价项目中的特色亮点,需要进一步完善的问题等。
2.3 课后教学环节
提交项目总结报告,进行项目心得交流,教师从学生的反馈中发现问题并及时改进。部分项目在课内完成的基础上进行功能扩充,学生可以从自身兴趣出发拓展实践,从被动学习到主动思考,主动寻求问题的解决方法。此外,引导学生积极参加大学生科研竞赛、创新创业训练项目,拓展程序设计的教学实践内容,从深度和广度上达到一个更高的层次,提高学生的工程创新能力。
3 结语
将基于项目驱动的混合式教学模式引入C程序设计的教学中,对教师和学生都提出了更高的要求,教师要具有良好的课程建设和教学组织能力;学生与教师积极配合,真正作为学习的主人,才能最大化地提升教学效果。此外,项目的开发需要扎实的基础知识,要注意平时的常规练习,建设训练题库,完成充足的编程训练,积累代码量。实践表明,依托线上线下丰富的教学资源,有效地融合课堂教学与在线学习,以项目为主线穿插于翻转课堂的教学实践,学生的学习兴趣、自学能力以及分析解决问题的能力都有了明显的提高,并且更加富有团队精神,更好地适应企业和社会对于应用创新型人才的需求。
参考文献
[1] 教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业核心课程教学实施方案[M].北京:高等教育出版社,2009:229-232.
[2] 张兰芳.基于“项目教学法”的计算机基础教学及其评价[J].西南师范大学学报(自然科学版),2012.37(6):245-248.
[3] 穆华,李春.BOPPPS模型及其在研究型教学中的应用探究[J].陕西教育(高教),2015(10):27-30.
[4] 李克东,赵建华.混合学习的原理与应用模式[J].电化教育研究,2004(7):2-5.
[5] 劳凯声.教育研究的问题意识[J].教育研究,2014(8):4-14.
[6] 蒋宁.基于混合式教学的计算机“C#程序设计”课程教学改革研究[J].职教通讯,2016(3):11-15.
[7] 查建中.论做中学战略下的CDIO模式[J].高等工程教育研究,2008(3):1-6.