任务驱动教学法在程序设计语言教学中的研究与应用
2009-05-11杨桦杨小燕
杨 桦 杨小燕
文章编号:1672-5913(2009)08-0078-03
摘要:目前在我国职业教育中推广任务驱动教学法,该教学法用于程序设计语言教学成效显著。笔者就任务驱动教学法在程序设计语言类教学中的应用做了初步的实践与探索,认为在程序设计语言类教学中采用任务驱动教学法,相对于传统教学而言优势明显,能有效组织实施教学。
关键词:任务驱动;程序设计语言;任务情景
中图分类号:G642
文献标识码:B
1引言
“C语言程序设计”、“C++程序设计”、“JAVA程序设计”、“VB.net程序设计”、“C#程序设计”等课程是软件开发类学生的必修专业课程,此类课程传统的教学采用理论和实践脱节的教学法,老师感觉教学实施很困难,学生感觉不能理解所教内容,没法独立完成简单程序的编码任务。而任务驱动教学法可以把理论教学和实践教学很好地结合起来,将其运用在程序设计语言类课程中,可以改变老师难教,学生难学的现状,使学生成为教学的主体,容易激发学生的学习热情,达到自主学习的目的。程序设计语言作为基本的软件开发工具之一,学生的知识结构、操作技能和分析问题、解决问题的能力是学生专业学习的着重点。本文就任务驱动教学法如何在程序设计语言类课程中的实施谈谈笔者的初浅认识与实践体会。
2任务驱动教学法及其对程序设计语言教学的适应性
任务驱动教学法是基于建构主义学习理论的一种教学方法。它强调学生要在真实情景中的任务驱动下,在探索任务和完成任务的过程中,在自主学习和团队协作的环境下,在讨论和会话的氛围中,进行学习活动。这样学生不仅能学到知识、提高技能,还能培养实践动手能力,提高学生的探索创新精神。学生在完成任务的过程中始终处于主体地位。教师的角色是学习情景和学习任务的设计者、学习资源的提供者、学习活动的组织者和学习方法的指导者。任务驱动教学法给学生提供了充分的自由,使学生成为学习的主体,改变了“教师讲、学生听”的传统的讲授型教学模式,创造了以学定教、学生主动参与、自主学习、团队协作,探索创新的新型的学习方式。
任务驱动教学法对程序设计语言教学的适应性主要表现在一下几方面:
2.1探究教学策略
在实践中笔者发现,学生感觉编程类课程枯燥乏味,又难以理解,许多知识点抽象空洞,不能和实际应用结合起来。学生学习没有兴趣,光凭教师的讲解学生也难于理解。而任务驱动的教学方法能激发学生学习的积极性和主动性,提高课堂教学的效益,帮助学生熟练掌握和运用知识,起到事半功倍之效率。根据任务驱动教学法是基于建构主义教学理论教师以任务链的方式合理的呈现任务并有效地组织学生合作交流,使学生通过自主活动来建构知识和完善自己认知结构的特点,探究有效的教学策略为:任务提出→自主探索、合作交流→引入知识点→任务解决。
2.2设计任务情境,激活学习积极性
如何提高学生学习积极性和主动性?如何将枯燥的编程知识与实际应用及开发结合起来?笔者通过实践分析发现通过任务驱动的教学方式可以提高学生的学习积极性和思考问题的主动性。在这种任务驱动的教学方法实施下,学生通过自主探索与合作交流,可以提高自身分析问题与解决问题的能力。通过师生互动,在角色平等中共同进步,通过多方互动在多方协助中成长。结合所要讲授的知识点,授课教师可创设相关知识点所对应的任务情境,以某个人物角色贯穿整个任务情境。使学生感觉问题贴近现实生活,能够学以致用。
2.3以项目驱动的方式融合课程所需知识点,形成支撑课程的知识链
通过任务驱动的方式引入知识点的讲授,以项目驱动
的方式融合所讲授的知识点,将分散的知识点串成知识链。在课程的知识点讲授的同时,让学生分组分工完成一综合项目——例如“猜数游戏”、“酒店管理系统”、“航空公司客户管理系统”等的设计与实现,在具体任务的解决过程中,能培养学生的团队协作、沟通能力以及对知识的理解和掌握能力。
3任务驱动教学法教学实施
笔者就以Java程序设计语言中程序控制结构这部分内容的学习为例,阐述任务驱动教学法在程序设计语言类课程中的运用与实践以及与传统教学的区别。
3.1任务驱动教学法在Java程序设计中程序控制结构部分的教学实施
(1) 任务提出
教师创设一问题情境,通过编写游戏的方式,激发学生兴趣,引入需要学生掌握的程序控制结构的知识介绍。
【问题情境】用Java语言编写一个猜数字的游戏,由电脑随机产生一个100以内的整数,让用户去猜,如果用户猜的比电脑大,则输出“大了,再小点!”,反之则输出“小了,再大点!”,用户总共只能猜十次,并根据用户正确猜出答案所用的次数输出相应的信息,如:只用一次就猜对,输出“你是个天才!”,6次以内猜对,则输出“还将就”,八次才猜对,输出“过关了,不过还要努力!”,如果十次还没有猜对,则游戏结束!
(2) 自主探索、合作交流
在该环节,学生被分为了若干小组,分别对已有知识的掌握进行自主探索,分组交流,找出该问题的解决方案。通过学生的分组交流和对知识的自主探索,学生得出需要用到的知识结构如下:
●循环控制结构,用于控制输入的次数不超过10次,每次输入与电脑产生的数进行比较;
●条件判断结构,用于判断输入的数是否与电脑产生的数一致;
●条件判断结构,用于判断输入的次数是否为小于2,大于2同时小于6,大于6同时小于8,大于8同时小于10,以此来显示对游戏者的评语。
(3) 教师点评,并引入知识点
在解决该问题的过程中,需要用到程序控制结构中的循环控制以及条件判断结构,由于游戏者输入的次数只有10次,建议用for循环来实现游戏次数的控制。判断游戏者是否猜对以及对其的游戏评语可以用if-else语句及其嵌套来实现判断操作。
(4) 问题解决
通过学生的自主交流、探索与教师的点评,得出该游戏的如下解决方案:
import java.util.*;
import java.io.*;
public class CaiShu{
public static void main(String[] args) throws IOException{
Random a=new Random();
int num=a.nextInt(100);
System.out.println("请输入一个100以内的整数:");
for (int i=0;i<=9;i++){
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String str=bf.readLine();
int shu=Integer.parseInt(str);
if (shu>num)
System.out.println("输入的数大了,输小点的!");
else if (shu System.out.println("输入的数小了,输大点的!"); else { System.out.println("恭喜你,猜对了!"); if (i<=2) System.out.println("你真是个天才!"); else if (i<=6)
System.out.println("还将就,你过关了!");
else if (i<=8)
System.out.println("但是你还……真笨!");
else
System.out.println("对你......无语了!");
break;}
} } }
3.2传统教学法与任务驱动教学法在该内容上的教学比较
传统教学法与任务教学法在教学内容设计,教师与学生活动法上都发生了很大的变化,产生了不同的教学效果(如表1所示)。
4教学反思
在任务驱动下的教学实施中教师教学方式和学生学习方式都发生了很大变化,笔者感受到任务驱动教学法的设计及实施在“程序控制结构”这讲内容中是有效的、可行的,真正促进了学生自主学习,也让学生深刻理解到所学知识运用于何处,将理论知识与实际生活中的具体问题有效结合起来。
4.1任务驱动下的教学实施中教师教学方式地转变
课堂组织通过教师设计的任务驱动下的教学流程让学生在自身认知经验的基础上自主地体验一个游戏程序需要运用的知识,尤其是如何更好的运用程序控制结构在实际问题中。学生可以尝试运用符合自己认知经验的方法来解决实际问题。教学实施过程中学生能较好地在体验、探究、实践和质疑中学习。在课堂教学实践中,教师的作用主要体现在以下几点:
(1) 创设合适的学习情境;
(2) 帮助学生设计恰当的学习活动;
(3) 帮助学生学会利用学习资源;
(4) 帮助学生对自己的学习过程进行评价反馈;
(5) 帮助找到自己的差距与学习目标。
某些传统教学的重点与难点,教师往往在设计的时候找不到着眼点,而现在通过精心设计的任务,学生成了学习的主体,教学的中心成为了学生探索解决方案的过程,实际问题的合理运用,可以缩短较难的程序开发思想与学生认知水平之间的距离,实现更富于启发性、开放性以及探索性的教学。在传统教学中,由于教师一味的进行知识灌输,不能很好的调动学生的积极性,在课堂上不可避免地忽略了一些学生。但在任务的驱动下,学生能够自主学习,民主地发表自己的见解,勇敢地提出质疑,平等地相互交流,积极地建构自己的认知结构。
4.2任务驱动下的教学实施中学习方式地转变
情境学习理论认为,有用知识的获得必须镶嵌在相关或“真实”的情境中。它强调情感和活动相互联系所产生的教学价值。本节课教学设计中设置的学习情境为学生的合作交流提供了空间。从教学实践来看,体现了学生的学习方式在以下这些方面发生了转变:
(1) 从被动接受知识到主动探索知识和经验地转化;
(2) 学生所学的知识从枯燥乏味的向有趣的、有意义地转化;
(3) 学生在教学实施中由非主体向主体转化;
(4) 学生在课堂上从单一的理论知识向多元的情境学习地转化。
通过学生自主探索的结论的展示与交流,充分展现了学生的认知过程。教师参与探究时有效地点拨以及师生、学生间的互动营造一个融洽的、高效的研究氛围。学生在这种和谐的环境中大胆、积极主动地发表自己的认识和见解。由于教师影响力的减弱,教师反而可以放手让学生展现各种认知冲突。在合作探究的讨论过程中,在师生的互动中,促进学生完成了知识的掌握及技能的培养。
5结束语
运用任务驱动教学法,体现了以人为本的观念。尊重学生的主体价值,创造适合学生个性发展的条件,激发全体学生的积极性,使每个学生都学有所得,享受成功的喜悦。这是尊重学生,爱护学生,将学生视为学习和发展主体的基本要求。学生是有自尊心和活生生的、不断成长中的人。他们需要理解、尊重和鼓励。让学生主动而不是被动地学习,让学生学会学习,是新形式下,进行职业教育
课程改革及教学设计的新要求。
运用任务驱动教学法,是从学生的认知结构为出发点,重视教师与学生、学生与学生的相互作用,灵活地运用科学而有效的教学方法,激发学生的主观能动性,让学生在一定的问题情景中独立钻研和集思广益,合作解决问题,以培养学生善于阅读材料,分析、解决问题的能力和创造能力。
初步实践证明,任务驱动教学法在程序设计语言类教学中的运用是成功的。基于建构主义教学理论基础上的任务驱动教学法,很值得继续实践和探索,运用在其他课程的教学实施中。
参考文献:
[1] 钱晓菩,马玉娟. 试论任务驱动[J]. 中国电化教育,2002,(9).
[2] 姜振安. “任务驱动”教学法与学生实践能力培养[J]. 职教通讯,2003,(7).
[3] 周小山. 教师教学究竟先靠什么--谈新课程的教学观[M]. 北京:北京大学出版社,2003.
[4] 王升. 研究性学习的理论与实践[M]. 北京:教育科学出版社,2003.