混合教学模式在程序设计类课程中的应用

2019-05-24 06:21张芊茜史桂娴
计算机教育 2019年5期
关键词:程序设计实验教学模式

吕 娜,张 琎,张芊茜,史桂娴

(济南大学 信息科学与工程学院,山东 济南 250022)

0 引 言

“互联网+”技术的使用为网络教学带来了历史性的变革,成为现代化教育教学发展的里程碑[1]。MOOC是一种大型的网上开放课程,它有自己的学习和管理系统,蕴含丰富的课程资源,包括短片、练习题、讨论、补充材料、测试等[2]。在MOOC课程中,学生不受时空的限制,“碎片化”时间得以有效地利用,在整个学习过程中学生的主体地位得以凸显,自主学习能力得到了锻炼。因此,MOOC课程在“互联网+”的时代背景下愈来愈受到高校师生的青睐。

不是所有人都能胜任MOOC课程的学习,除要求能够熟练使用网络平台外,还要求学习者具备一系列的个人品质,涵盖自我鞭策与管制、高效的时间管理、在线独立工作、在线协作的能力等[3];有些学生正是由于缺乏顽强的意志力,不能顺利完成MOOC课程的研习。传统的面对面授课在学习氛围的营造和价值观的塑造等方面是网络教学无法替代的。为了充分发挥大学传统教学和 MOOC教学的各自优势,积极地革新大学教育的教学与管理模式,“网络开放课程 + 本地大学面对面授课”相结合的混合教学成为当前大学教育研究的热点[2]。线上线下的混合教学模式是指通过网络平台,教师(本校或MOOC 教师)“线上”提供习题、课件、视频等教学资源,学生线上自主学习,根据在线数据的反馈,教师可以离线选择内容,实现在线学习与课堂教学的整合[4]。混合式教学模式强调了学生的中心地位,学习过程化被动为主动;教师成为教学过程的组织和引导者,更注重对学生学习效能的反馈。

1 程序设计类课程的混合教育模式内涵

程序设计课程是计算机与信息类专业的主干课程,包括C、C++、Java编程等。它通常配备一套完整的实验课程,要求学生在学习中要有主动性和动手能力。这类课程的教学目标是通过编写应用程序培养学生分析问题和求解问题的能力,继而塑造其计算思维和创新思维。

传统的教学模式主要以教师讲授为主,容易陷入“灌输课堂”的模式,使学生失去学习的兴趣;而单纯网络教学的模式对学生的自控能力要求较高,无法根据每一个学生的情况做到因材施教,无法在教学过程中根据学生的反馈调整教学进度与深度。因此,将两种教学模式相结合,整合优质的线上资源,充分发挥线下课堂的优势,设计适合程序设计类课程的混合教学模式,使得两者相互促进、相得益彰,就成为目前计算机教育研究的热门问题。

借助收集网络平台的各种数据,教师能够轻松把控课前、课中、课后各阶段学生学习的进度和深度;学生可以通过在线网络课堂进行自学、查看网上作业的反馈以及参与讨论等,学生网上作业的评价结果和讨论区的参与热度将作为最终课程结果的一部分。通过实施这种混合式教学形式,教师可以更轻松地教学,学生更快乐地学习,使得教与学化繁为简,从“教师核心”逐步向“学生核心”的教学模式转变。在此教学模式下,凸显了两大核心价值导向:一是强调学生自主学习能力的培养;二是注重学生解决实际问题的能力培养。在信息化的时代背景下,信息的获取变得容易,而把相关信息搜集起来加工提炼进而能够解决实际问题的能力反而变得难能可贵。

2 程序设计类课程的混合教学模型

2.1 程序设计类课程的教学内容与目标

程序设计类课程是介绍设计、编写和调试程序时涉及的基本方法和技术,往往以某一种高级程序设计语言为例贯穿整个课程。基于算法与程序设计的要旨,引入设计和实现一个完整的程序所涉及的基本知识和基本方法,培育学生通过编程最终解决实际问题的能力。

2.2 混合教学模式探讨

在传统的程序设计类课程教学模式中,教师的大部分时间都在解释基本概念、基本语法以及编写简单程序,通过布置相应的上机练习来强化学生对理论知识的理解和应用。这种灌输式的教育模式将学生置于知识被动接受者的位置,学生自身的内在学习动力和创造性没能被充分地激发。

网络在线课程与本地大学面授课程相结合的教学模式是指使用优质的MOOC课程教学资源,在大学课堂里展开班级教学。得益于先进的网络教学平台,在传统教学中难以解决的人数多、课时少、学生学习主动性欠缺、师生交流与互动不足、实践反馈能力薄弱等问题都能够找到新的解决方案。

程序设计类课程的混合教学模式基本教学流程主要分为课前准备、参与式教学、上机实践和总结评价4个模块,如图1所示。C语言程序设计课程64学时左右,是大学生接触的第一门计算机编程基础课程。在C语言的传统教学中,由于概念和规则繁多,初学者普遍反映学习困难,期末考试不及格率高[5]。结合C语言程序设计中学生普遍感觉最难学的“指针与函数”这一知识点,笔者介绍实施混合教学模式的具体方法。

图1 混合教学模式流程图

2.2.1 课前准备

在课前筹备阶段,教师需要进行深入研究和分析教学内容,树立教学的知识目标和能力目标,抓住教学重点与难点,划分课下自学部分和课堂讲授部分,以便引导学生进行自主学习。编制项目化教学任务和详细的学习要求,提供教学微视频、预习课件、课前测试等资源形成课前自主学习包,通过QQ群推送给学生,以便学生进行课前自学。

学生拿到课前自主学习包后,按照学习要求观看视频、课件等学习资料,制定学习目标,完成课前测试。通过课前测试,可以很好地让学生自己评估预习效果,找到学习的难点或障碍,以便提高后续课堂教学的效率。教师可借由收集课前测试结果,根据学生的趣味与实力,继而适时地更新讲课内容的深度与进度。

在这个阶段,把“教师讲授”变成“学生学习”最重要的一步就是设定学习目标。学习目标必须是具体明确的陈述,包含学习对象、学习内容、何种情况及掌握程度等组成部分。学生只有树立了明确的学习目标,才能拥有积极的学习状态。

以C语言课程为例,教师制定本次教学的学习目标为掌握指针作为函数参数的特点及其与主调函数之间的值传递关系。教师提供北京理工大学李凤霞教授的“C 语言程序设计”MOOC网址,选择特定章节要求学生观看;提供考查关于指针的基本概念的预习测试题目供学生自测,帮助其回顾“指针”这一知识点。

实验课的课前准备要求教师编写好实验指导书,制订实验内容,提出实验要求,如有特殊的操作要求,可给出详细的实验步骤,必要时可录制微视频加以讲解或说明。实验题目可在实验课前发布给学生,这样学生可以提前准备,提高实验课的效率。

2.2.2 参与式教学

根据上一阶段学生的测试与交流讨论,课堂教学活动可有针对性地对共性问题进行讲解。在互动环节应用两种互动模式,一种是教师与学生之间的互动,另一种是学生之间的讨论。应用任务驱动教学法,由教师安排学生进行分组讨论、汇报,以深化和完善教学内容。任务驱动教学法是一种基于建构主义学习理论的教学法,将再现式教学转变为探究式学习,它是一种以解决问题、完成任务为目标的多维互动式的教学理念,强调学生在任务解决过程中的积极性与主动性[6]。

任务驱动教学法的关键是设计一个好的任务,需要把握以下几点:第一,生动有趣(encourage),例如,结合生活实际或专业相关的问题,激起学生的思考和求知欲,可以取得显著的效果;第二,可回答但没有限制性的答案(limitless),给学生留有思考和创新的空间,实现任务的开放与延伸;第三,难度适中(moderate dif fi culty),要结合学生实际的知识水平和能力状况,任务既不能过于简单,以至于没有任何挑战性;又不能难度过大,使得学生无法获得成就感。

C语言课堂教学中,根据学生预习测试题目的反馈情况,先有选择地回顾一下关于“指针”的概念。通过“在自定义函数中交换两个值的大小”这一具体案例引入本次课程的内容。通过分析这一案例,引导学生理解无论自定义函数中形式参数如何改变,其值都无法传递给实际参数。因此,我们需要引入指针变量作为函数参数来解决这个问题。通过这个案例把指针变量做函数参数的语法形式讲解清楚后,抛出一个实际任务让学生分小组讨论完成,从而驱动学生主动参与到学习活动并把刚刚学到的知识应用起来。例如,编写一个自定义函数实现同时计算得到两个数的最大公约数和最小公倍数,并总结如何使用指针变量做函数参数去改变主调函数中变量的值。小组讨论的结果以口头报告的形式呈现,通过小组间打分获得评价。评价时可提供表1所示的评量表,使得小组评价尽量客观,便于回馈。大班教学中应用“翻转课堂”往往会受到人数、场地等的限制,小组汇报时可随机抽取2~3组进行。

2.2.3 上机实践

在程序设计课程中,为了提高编程能力,熟练掌握调试技术,计算机实践是整个教学过程中最重要的环节[7]。实验可根据目标层次不同划分为基础知识实验、应用实验和拓展实验。学生在上机时根据自己设定的目标有选择地完成对应层次的实验题目。教师在指导实验时既要注重培养学生独立解决问题的能力,又要帮助他们建立解决困难的信心。基础实验和应用实验要求学生独立完成,拓展实验则允许学生小组讨论完成。

表1 小组打分评量表

课堂教学和上机实践两个教学环节完成后,再布置课后测试练习,以了解学生的学习成效以及是否达成学习目标。

C语言程序设计的实验评判系统采用ACM和拼题A(pintia.cn)的在线测评系统,方便学生及时获得反馈结果和教师统计实验完成情况。通常,课前预习测试和课后作业也在拼题A网站上布置,如图2所示。实验题目在ACM在线测评系统上布置的情况如图3所示。

图2 拼题A网站布置作业情况

图3 ACM在线测评系统布置实验情况

2.2.4 评价总结

教学活动的最后一个环节是评价总结。这一环节至关重要,也通常是教师和学生最容易缺失的部分。通过评价总结得到的分析与思考又指导着下一轮教学活动的展开,它使得整个教学活动成为一个完整的闭环。在整个教学活动中,“教”与“学”能力的提升,取决于这一环节的质量。

教师可根据学生的课前自测成绩、课堂教学中的表现、实验的完成情况、课后测试练习等,对学生这一阶段的学习做出综合评价。评价的目的有3个:一是将学生的学习活动评分等级作为平时成绩的依据;二是收集学生的学习数据,作为保证质量机制,给教师提供反馈,帮助提升教学质量;三是激起学生学习的主动性,通过反馈帮助其查漏补缺,提高学习质量。对于以小组形式完成的翻转课堂任务、拓展实验等,可设置组内、组间学生互评,促进学生互相学习交流。

在评价时可使用详细客观的以学习表现为基准反映学习成效的评量指标,收集教学过程中的各种数据,包括课堂表现、测验结果、实验情况等,避免主观的成见或既定印象,同时能够节省教师在评估和提供反馈所需的时间。评价主要分为3类:一是诊断性评价,用来衡量学生的预习成果,以便有针对性地展开教学;二是形成性评价,用来为学习过程提供反馈,决定学习进展;三是总结性评价,主要用于决定学生在本门课程上的目标达成度。这3类评价的详细的评价对象、依据和目标详见表2。

3 结 语

在程序设计类课程中应用线上线下混合式教学,使得学生可不受学习时间与空间的限制,更容易使用“碎片化”时间;通过线上辅导与面对面的小范围交流互动,加强了师生之间、学生之间的情感,提升了学习效果;将教学资源以更加合理的顺序有计划地进行组织,学生可按计划循序渐进地学习;整个学习过程凸显了学生的主体地位,强调和培养了学生自主学习能力。对整个教学活动的评价更加科学,对学生学习的评价不再主要依据最后的期末考试,而是伴随整个课程分阶段进行,加强了对学生学习过程的管理。评价的形式也多样化了,由线上、线下综合构成,除了教师评价,还有学生互评。期待本研究构建的混合教学模式可以为程序设计类课程的教学开辟新的思路,进一步为高校其他课程的教学改革提供参考。

表2 量化评价方法

猜你喜欢
程序设计实验教学模式
记一次有趣的实验
基于SolidWorks和VBA的电机阶梯轴建模程序设计
群文阅读教学模式探讨
“思”以贯之“学、练、赛、评”教学模式的实践探索
医学专业“Python程序设计”课程教学改革总结与思考
从细节入手,谈PLC程序设计技巧
“认知-迁移”教学模式在高年级阅读教学中的应用
关于植物的小实验
实践十号上的19项实验
5E教学模式对我国中学数学教学的启示