APP下载

任务驱动教学法在程序设计课程中的应用

2019-07-15闫毅平崔凯楠张玥红

装备制造技术 2019年5期
关键词:驱动教学效果教学法

闫毅平,崔凯楠,张玥红

(北京市工贸技师学院,北京100097)

0 引言

职业院校重在培养“具有一定理论基础,善于动手”的应用型技术技能人才[1]。在教学中,重点突出学生主体地位,教师引导学生主动学习,主动思考。然而,在其C语言程序设计课程的教学中存在不少问题,其中最主要的问题是教学方法问题[2]。程序设计课程内容和知识体系比较零散,章与章之间跨度幅度比较大。传统的教学方法以讲授为主,教师通常采用“讲概念-分析概念-例题讲解-上机演示”的教学模式,不能激发学生的学习热情和主动学习的积极性,教学效果不理想,大多数学生只掌握了有关的概念等理论知识,严重影响学生编程能力的培养[3]。

任务驱动教学法基于建构主义,强调学习者对知识和技能的主动探索与建构。该教学法以完成具体任务为线索,把教学内容隐含在任务之中,促使学习者主动吸纳、调整,学习者经历提出问题、自己思考与教师点拨、自己解决问题几个过程,重组知识与技能结构,体验学习乐趣。其教学过程的关键点是学习者自我构建,出发点是师生互动,切入点是边学边做,落脚点是调动积极性与创造性。任务驱动教学是以“任务为主线,教师为主导,学生为主体”的一种教学方式[4,5],要求教师奖教学内容隐含在一个或多个具体典型性的任务中,学生处于主体地位,在教师的引导性下,运用学习资源,进行自主和协作学习,完成既定任务。与以知识传授为主的传统教学方法相比较,转变了教学理念,改变了以往“教师讲,学生听”,以教定学的被动教学模式,以解决问题和完成任务为目的,使学生处于主动的学习状态,创造了以学定教、学生主动参与、自主协作、探索创新的新型学习模式,在完成任务的过程中掌握理论知识、程序设计方法和技巧。

在“互联网+教育”时代,MOOC、微课堂如雨后春笋。学校和老师逐渐接受了获取知识的新渠道,即使在偏僻的山村,学生也可以获得全球最优质的教育。在职业学校,电气自动化专业以教材内容为主线的教学模式缺少学生主动参与,教学效果不佳;职业教育领域人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾依然突出,能激发学习者学习热情、提升教育教学效果的教学方法探索与研究依然是教改的热点,任务驱动教学法倍受关注。任务驱动教学法主要包括任务设计、任务分析、任务实施和任务评价四个部分[6]。其中,任务设计是关键,任务实施是核心。

1 学习任务设计

任务设计是任务驱动教学法的关键。在教学中,任务直接影响教学效果,所以任务的设计和编排是任务驱动教学的关键。一个好的任务设计不仅要能用到已学的知识点,还要能引出新的内容。学习任务设计应充分考虑学生现有文化知识、认知能力、年龄、兴趣特点,任务规模与难度适宜,承载的知识点、技能点要具有递进关系,每次课的知识点、技能点以3~5个为宜,任务能激发学生产生疑问,通过探究能够实现学习迁移,体验探索乐趣,有利于培养解决问题能力和创新能力。以电气自动化专业《C语言程序设计》课程中条件循环章的while、do-while循环节为例,本节课的知识目标为随机函数rand()、伪随机数、条件循环,能力目标为会使用条件循环编程,情感态度价值观目标是体验循环控制程序设计乐趣。在购物街“看商品猜价格”游戏情境下,教学团队为while、do-while循环节设计的学习任务为编写该游戏程序,分为“只能猜一次”、“直到猜对为止”、“最多猜10次”、“猜多个数”四个子任务。子任务一“只能猜一次”隐含随机函数rand()知识点,流程图如图1所示。子任务二“直到猜对为止”引入do-while循环知识点,循环判断条件改为“guess<>magic”,增加计数变量,并初始化与循环加1,猜对后输出计数值,增加的步骤以红色标识,流程图如图2所示,培养学生do-while编程能力。子任务三“最多猜10次”循环判断条件改为“(guess<>magic)&(counter<10)”,以红色标识,流程图如图3所示,培养学生遇到多个条件循环的解决办法。子任务四“猜多个数”,10次猜不对就猜下一个数,引入循环嵌套,流程图如图4所示,实现综合任务。四个子程序中均包含“比较magic和guess的大小给出相应的提示”步骤,可细化为“猜大了,系统提示:错误!太大!;猜小了,系统提示:错误!太小!;猜对了,系统提示:恭喜您!获得该件商品!”,如图5所示。可见,本节课设计的任务隐含的教学目标明确,编排合理,符合“最近发展区”,从分支结构、do-while语句、多条件循环、嵌套循环逐级探索,游戏越来越贴近生活,符合学生认知特点,实现了知识与能力迁移,在整个探索过程中,学生洋溢着笑容,体验了成功的喜悦,对探究学习充满着兴趣。

图1 任务一流程图

图2 任务二流程图

图3 任务三流程图

图4 任务四流程图

图5 “比较magic和guess的大小给出相应提示”子流程图

2 任务驱动教学法的任务实施

任务实施是任务驱动教学法的核心。这里所说的任务不是简单、机械的编程操作训练,而是一个较大的典型的应用程序,既要根据课堂教学需要,精心创设学习情境,激发学生学习兴趣,让学生享受学习过程,又要激发学生主动探究、依据任务的实际功能不断细化和完善,驱动学生以积极的态度参与到代码的编写中来。同样,也不是片面的强调学生的主体地位,布置任务了事,放任学生自主探究,忽视教师的主导作用,忽视学生的自主学习设计。否则,要么“动”不起来,要么不能专著、持久地“动”。接下来,我们一起来探讨采用任务驱动教学法,让学生在while、do-while循环学习中真正地“动”起来,让学生在完成任务的同时享受成功带来的喜悦。

2.1 学习情境创设

任务驱动课堂的学习情境创设应贴近学生生活,能激发学生学习兴趣,与学习任务密切联系。为while、do-while循环学习创设的学习情境为购物街“看商品猜价格”游戏,示意图如图6所示。购物街“看商品猜价格”游戏学习情境具有实用性、趣味性,能激发学习者探索热情,助力while、do-while循环控制知识与技能的自我建构。

图6 购物街“看商品猜价格”游戏教学情境示意图

2.2 学生探究学习

任务驱动教学法以“任务”为主线,以“驱动”为方法,在子任务一探究中,学生了解随机函数rand(),然而,随机函数产生的随机数在[0,RAND_MAX]之间,在stdlib.h库中RAND_MAX定义为32767,产生了“如何产生 [0,99]之间的随机数?如何产生[1,100]之间的随机数?”的疑问;子任务二学生寻找着do-while循环的实现方法、计数函数的初始化与加1运算方法;子任务三学生探究着多个循环条件的相与运算;子任务四学生探究着嵌套循环实现方法与程序结构,学生发现“每次计算机运行所产生的随机数都是一样,又是怎么回事呢?”,并逐一解决、归纳。可见,学生在学习过程中,不断践行教学三部曲,即:提出问题——解决问题——归纳总结。

2.3 教师发问与点拨

教师点拨与发问将探究学习推向一个个小高潮。教学实施过程中,依据时间顺序布置子任务一到子任务四,引导学生由简到繁、由易到难、循序渐进完成系列“任务”,掌握循环控制编程过程中遇到问题的解决方法,构建完整的知识脉络,在完成“任务”的过程中,培养学生分析问题、解决问题的能力,形成清晰的程序设计思路。学生完成4个子任务后,引导学生将计算机产生的随机数打印出来,寻找规律。学生产生疑问:为什么每次运行计算机所想的数都是一样的呢?教师提示函数rand()产生的是伪随机数,进行必要点拨,学生急切探究“如何使生成的随机数足够随机呢?”,需要为rand()设置随机数种子,使产生的随机数“随机化”,学生探究发现改用系统时间最为随机数种子更好。让学生输入一个非数字字符,结果程序输出“Wrong!Too big!”,之后换行,不断输出“Please guess a magic number:Wrong!Too big!”,并进入死循环,发现程序的健壮性不够,学生再次探究错误输出与死机的原因与解决办法。可见,老师的两次点拨与发问促进了学生编程思路的完善,再次将学习热情推向高潮。

2.4 教学组织要点

引入任务驱动教学法进行技能教学效果不错,但也存在一些问题,如教学进度不易把握、课堂管理待改进和评价难度增加等,任务驱动教学法的课堂更为开放,但这一“放”就不好“收”,每个小组的探究程度和学习进度难以把握,有的小组提前完成,有的小组只能在课程结束时草草“收兵”,影响教学效果。探究性学习的课堂很“活”,也会导致个别学生干扰他人,需采取措施在行动上约束学生,使学生都“动”起来。传统教学强调“单打独斗”,学生表现容易掌控,采取任务驱动教学法时,可能有个别学生滥竽充数,给教师造成形势一片大好的错觉,加大教学评价的难度。针对这些问题,需要在实施过程中加以注意,或采取一些措施进行改进。在教学设计上,强调学生自主发展,培养学生的自学能力,不断用“任务”引导学生探究学习,让学生根据“任务”需求来学习,着重培养学生的创新精神和合作意识。在教学内容安排方面,以任务为线索,串联任务,使其符合学生的认知特点。在教学组织过程中,关注学生知识及技能的个体差异以及学生基础及素质方面的差异,实现分层教学。在教学评价方面,不仅看结果,更要关注学生探究学习过程,关注知识与技能的递增。在教师点拨与发问方面,要达到一石激起千层浪的效果,促进学生相互取长补短,在知识、能力、情感态度的构建中起到催化剂的作用。

通过这个例子可看到,借助购物街“看商品猜价格”游戏实用程序运行效果,使学生产生积极完成学习任务的动机和内驱力,对人物进行细化和完善,实施任务分层,不仅减轻了学生的心理负担,也在一定程度上照顾了大多数学生。同时,由于将任务细化,且环环相扣,学生可以在任务的驱动下,激发学生的学习兴趣,培养学生的分析问题、解决问题的能力,提高学生自主学习及与他人协作的能力,促使学生有兴趣并且持久的“动”起来,提升学习效果。

3 学习效果实验

为了验证教学效果,在我校科技兴趣小组教学中进行对比实验。将12名学生按照无差别原则分为两组,第一组第1周到第5周采用任务驱动教学法,第6周到第9周采用边讲边练教学法,第二组第1周到第5周采用边讲边练教学法,第6周到第9周采用任务驱动教学法,每周均为3次课,分别从教学参与度、教学目标达成率、知识技能遗忘率、学习满意度等维度分析学生学习效果。按周统计采用不同教学方法时,统计学生主动参与教学的人次数,如表1所示,实际参与教学的学生应为18人次,对照图如图7所示,学生喜欢任务驱动教学法,愿意投入精力,主动探究学习,边教边学初期学习热情较高,但不持久。按周统计采用不同教学方法时,完成教学目标的学生人次数如表2所示,对照图如图8所示,采用任务驱动教学法时教学目标完成率较采用边教边学教学法时高2%;在第3、4周,抽出8天,分8次考核第三周首次课的知识点和技能点,学生平均分如表3所示,对照图如图9所示,采用任务驱动教学法的小组,第三天知识遗忘到最低点,采用边教边练教学法的小组,第四天知识遗忘到最低点,低于上述最低点,该组学生遗忘的幅度要大些,之后几天两组学生的成绩又不断提升,均达到遗忘前的水平,并保持,这是因为多次测试、复习后,学生已经完全掌握了该知识点和技能点,难以分析不同教学方法的教学效果;第4次试验安排在第6、7周,测试间隔为4天,分四次考核第6周首次课的知识点和技能点,学生平均分如表4所示,对照图如图10所示,第一组第12天遗忘到最低点,遗忘15%,第2组第12天遗忘仍在继续,此时遗忘34%,第2组遗忘斜率明显大于第1组。

表1 不同教学方法学生主动参与教学人数对照表(单位:人*次)

表2 不同教学方法学生教学目标完成人数对照表(单位:人*次)

表3 不同教学方法学生考试平均分对照表

表4 不同教学方法学生考试平均分对照表

图7 主动参与教学人次对照图

图8 完成教学目标人次对照图

图9 间隔1天测试平均分对照图

图10 间隔4天测试平均分对照图

综合分析可知,采用相同教学方法时,两组同学教学参与度、教学目标达成率、知识技能遗忘率、学习满意度没有明显差异;在学生教学参与度方面,采用任务驱动教学法时稍高,高于边教边学教学法2%;在教学目标达成率方面,两种教学方法名没有明显差异,均达到教学目标;在知识掌握的牢固度方面,任务驱动教学法远远高于边教边学教学法,高出19%(暂按分数说明),这是因为任务驱动教学法的自我探究、手脑并用、尝试错误,学生学习兴趣明显高涨。

4 结束语

将任务驱动教学法灵活应用于《C语言程序设计》课程,从任务驱动教学法的关键和核心入手,教师不再是传统课堂的主角,也不再是只向学生传授知识,而是课堂的组织者,发挥着更重要的“导”的作用,引导学生如何思考、如何构建知识与技能体系。本次实验从教学参与度、教学目标达成率、知识技能遗忘率、学习满意度等维度分析教学效果和效率,教学效果良好,有利于开创“教”的升华,实现“学”的突破,有效推进学生创新精神和实践能力的提升。然而,在任务驱动教学法实施过程中仍存在着将任务简单化的倾向和人文精神缺乏的现象。因此,实施任务驱动教学方法,将教学环境情境化、问题化,教学过程既源于情境而又超越具体情境,融知识、技能、情感于一体,使因材施教落到实处,让每个学习者将学习当作一种享受,需要广大教育工作者长期探索与实践。

猜你喜欢

驱动教学效果教学法
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
屈宏斌:未来五年,双轮驱动,砥砺前行
小学语文教学效果的提高策略
批注式阅读教学法探究
实施“六步教学法”构建高中政治高效课堂
深入实施创新驱动发展战略
高中数学实践教学法的创新策略探讨
掌握“函数的表示”提高高中数学教学效果
如何提高高中声乐教学效果