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

(整期优先)网络出版时间:2013-03-13
/ 3

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

孙纪

孙纪(广东省电子职业技术学校广东广州510515)

摘要:Java程序设计课程是一门非常重要的语言类课程,是游戏开发与设计的基础课程,其中的面向对象、封装、继承等思想让初学者很难理解,容易产生“知难而退”的情绪。文章以“图片浏览器”项目制作为实例,介绍了如何应用任务驱动教学法在Java程序设计课程中开展教学设计和教学实施,以实现教学目标和教学任务。

关键词:任务驱动教学设计Java程序设计

Java语言是Sun公司推出的功能强大、能够实现跨越多平台、具备可移植性的面向对象的一种高级程序编程语言,也是目前最先进、特征最丰富的计算机语言,能真正做到“一次编写,到处运行”。在当前正蓬勃发展的动漫与游戏产业中,程序脚本的编写除广泛采用的flash脚本语言,更多的则是采用Java语言,尤其是Java小型手机游戏的制作,学好Java语言对手机游戏的开发起着关键性作用。但对于职业院校学生尤其是中职学生而言,他们普遍存在学习能力差、学习习惯差、注意力不集中的问题,加之年龄因素导致他们普遍感性认识强于理性认识,很难接受枯燥乏味的编程语言。

一、应用任务驱动法在Java程序设计教学中的优势

所谓“任务驱动”就是在学习信息技术的过程中,学生在教师的帮助下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机的驱动下,通过对学习资源的积极主动应用,进行自主探索和互动协作的学习,并在完成既定任务的同时,引导学生产生一种学习实践活动。“任务驱动”是一种建立在建构主义教学理论基础上的教学法。

经过多年的一线教学实践,Java程序设计的教学中若能采用任务驱动教学法,必然获得事半功倍的效果。教学过程中要注意从浅显的小实例入手,完成一个小任务,实现一个小目标,让学生获得满足感、成就感,继而激发学生的挑战欲望和学习兴趣,伴随着一个个成就感的产生,让学生主动向下一个目标迈进,直至完成所有小目标,实现最终目标。在此过程中,学生收获了自信、知识、能力,老师也由传统的强迫式授课走向引导型授课,实现了由“以教师为中心”、“以教为中心”到“以学生为中心”、“以学为中心”的转变,使学生处于积极的学习状态,每一位学生都能根据自己对当前任务的理解,运用共有的知识和自己特有的经验提出方案、解决问题,为每一位学生的思考、探索、发现和创新提供了开放的空间,使课堂教学过程充满了民主、充满了个性、充满了人性,课堂氛围真正活跃起来。

二、任务驱动法在Java程序设计中的应用流程

1.分析教学内容,明确知识点和重难点。

在教学过程中,教师首先要对教学内容进行认真细致的分析,明确本章本节的知识点。例如:完成“图片浏览器”的制作项目,需要涉及到哪些必须掌握的知识点,要进行全面的分析和统筹。接下来,要分析知识点之间的相互关系——知识点是相互独立还是相互承接,最好能绘制出知识点之间的结构图,便于后期任务的设计和分解。在明确知识点之后,要区分出重点和难点,明确对于重点部分如何深入细致引导、对于难点部分如何克服学生的恐惧心理从而突破难点。

2.分析学生特征,做到因材施教

教学过程是一个双向的过程,采用任务驱动教学法最大的特点在于能充分调动学生的积极性。因此,在应用过程中要认真分析教学对象——学生的特征,做到因材施教。分析学生特征主要从以下四个方面入手:

(1)分析学生的兴趣和爱好

当前的中职学生大多比较感性,也正处于青春叛逆期,喜欢从事自己感兴趣的事。因此,我们要分析这一阶段学生的兴趣所在,找到学生的兴趣才能激发他们的求知欲望。例如:在“图片浏览器”的项目制作中,可以让学生事先收集或者拍摄自己有个性的照片,准备好素材,让学生急切地想制作属于自己的个性化的电子相册。

(2)分析学生的基础能力

要分析学生在上新课前已经具备的知识和技能,新的教学应该从学生现有水平开始,不断往上延续。

(3)分析学生的专业特征

不同专业的学生虽然都可能学习到Java程序设计这门课程,但他们未来的发展方向决定了必须采用不同的教学案例去引导。例如:动漫专业的学生倾向于为手机游戏打基础,教学中要不断出现游戏程序,如简单的配对游戏、打地鼠游戏等;而计算机应用专业则是为程序软件开发做基础,教学中应注重各类实用的系统开发为主线,如会计管理系统、商品库存系统等。

(4)分析学生在教学过程中将会遇到的困难和问题

在教学设计过程中,还应注意结合前面分析的重点、难点,事先预测学生在新课教学中可能会遇到的困难和问题,看看哪些内容可以让学生自主学习、探究,探究中会遇到哪些问题,必须予以指导和详细讲解。

3.确定教学目标,明确教学方向

教学目标是指导教学过程和开展教学效果评价的依据,要根据教学内容和教学对象的特征,明确课程教学内容所要达到的目标,确定每一个知识点应该达到的子目标。对中职教育而言,教学目标应包括知识性目标和技能性目标。知识目标是指学生通过本次课程的学习应该了解的原理性内容,例如面向对象的含义、事件处理机制的原理及作用;技能性目标,是指学生在学习过程中应达到什么样的操作水平,强调实际应用,例如鼠标经过图片放大效果的实现。

4.分解教学任务,设立教学层次

要以教学目标为依据,以教学内容为主体,根据知识点、重难点,将教学任务进行逐个分解,将知识点串接成一个整体,设立由低到高的循序渐进的教学层次。在设立教学任务时,要尽量做到知识点不重复,针对中职生特点,由最简单的开始,将教学任务分解成多个独立任务,甚至给出1~2个半开放型的任务。如:教师给出图片浏览的特效,让学生自主发挥想象,利用学到的知识和技能去制作完成。

5.确定考评方法,验证教学实效

在任务驱动教学法中,最后的考评方法也很重要,既可以检验教学的成效,也可以使学生从多方面获得启示,让他们发现身边同学的优点、看到自己的不足,能够把自己的知识和技能形成统一,从而提升自我、完善自我。考评方法可以是分层次的和开放型的,教师给出一个最低线,让基础差的同学有信心;对于能力好的同学给予更高层次的要求,实行加分或小小的物质奖励以激励同学;对于发散性思维较强的同学给予开放型评价,给予学生充分发挥想象的空间。评价应从多角度展开,尤其注意学生的合作意识、情感教育的引导,可以对他们的合作态度、创造性问题的提出等进行评价;评价方法可以是自评、小组评议和教师评议,对学生的学习过程予以客观、公平公正的评价。

三、任务驱动法在Java程序设计中的应用实例

为更好地说明任务驱动教学法在Java程序设计中如何运用展开,以下通过“图片浏览器的制作”实例予以简要说明。

1.确定目标,分解任务

Java程序设计课程当学习到事件响应机制一章,学生已经掌握的知识有数组应用、图象的载入、窗体布局、Swing常用控件的使用。本章的知识点有:事件响应机制,窗体、鼠标、键盘事件响应,其中鼠标事件的响应是重点和难点。结合学生特点,可以将“图片浏览器制作”项目分解成以下7个子任务:

2.实施任务

教师首先对本项目的最终效果予以呈现,激发学生兴趣;其次将涉及到的知识点逐一融入到各子任务中;最后将各子任务的目标予以讲解,发挥学生的自主性和创造性,让学生尝试着实现,根据教学设计中的预测,针对学生可能遇到的困难予以讲解。

任务1:实现窗体图片显示。

第一步:呈现窗体显示图片效果。

第二步:让学生根据已学过的知识,自主完成窗体图片显示效果。

第三步:教师给出提示代码,讲解注意事项。

publicvoidpaint(Graphicsg)

{

super.paint(g);

ImageIcontu=newImageIcon("src/y001.jpg");

Imagei1=tu.getImage();

inth=tu.getIconHeight();

intw=tu.getIconWidth();

setSize(w,h+30);

g.drawImage(i1,0,30,null);

}

根据前面的学习,学生都能完成任务1,心里比较有成就感,愿意继续往下做,此时抛出任务2。

任务2:实现在窗体上的指定位置显示图片,让图片在指定的位置标签上显示。呈现效果后,学生会很茫然,教师需立即给予指导,在窗体上放置一个标签,将代码稍作修改:

ImageIcontu=newImageIcon("src/y001.jpg");

Label.setIcon(tu);

因为修改的幅度不大,程序代码也较短,几乎没有任何困难。一旦完成,学生会主动提出,希望能控制得更好,很自然地引出了命令按钮事件响应的应用,即任务3。

任务3:通过命令按钮控制指定位置的图片显示。让学生发挥自主创造性,利用已学知识设计出个性化的命令按钮,并双击按钮,进入事件状态,摸索着如何控制图片的显示。这一任务可以完全由学生自行完成,只需要前面的代码段复制到控制中即可。当学生发现自己能很顺利地控制一张图片时,想再控制一张图片已经成为必然,可导出任务4。

任务4:显示第一张和最后一张图片。只需要再增加一个按按钮,用同样的方法即可控制两张不同的图片显示,可以修改为第一张和最后一张。当7个任务已经很顺利的走过4个时,同学们在心理上已经获胜,并且存在不满足感,觉得太简单,此时迫切需要加大难度,可以进入到任务5。

任务5:实现显示下一张图片和上一张图片效果。要实现下一张图片,必须考虑两个问题:一是如何获取全部图片,二是如何进入到下一张。教师在此要讲解图片的获取和保存办法,采用数组:

ImageIcon[]tu=newImageIcon[10];

tu[0]=newImageIcon("src/y001.jpg");

tu[1]=newImageIcon("src/y002.jpg");

tu[2]=newImageIcon("src/y003.jpg");

----

tu[9]=newImageIcon("src/y010.jpg");

在标签上显示时,应根据索引号来决定,索引号逐次递增1,则自动往下显示;反之则上一张。

index=++index;

lael.setIcon(tu[index]);

实现了该任务,同学们会发现程序不完美,能力好的同学会要求继续完善,而能力差的同学能完成任务5已经很不错,因此,这是能力层次的又一分界点。

任务6:实现能循环显示所有图片。要实现循环显示图片,可让学生以小组研究讨论解决办法,教师予以适当引导,方法不唯一,可以是取模,也可以是采用循环语句等等。

任务7:鼠标经过小图片能放大预览效果。任务7是本项目的最高层次,涉及到鼠标响应机制、窗体布局等知识的综合应用,可采用开放型教学,让有能力的学生自主设计并完成。

3.效果总结

通过任务分解,100%的学生能完成任务1,对任务2产生兴趣,完成任务3的制作;90%的学生能顺利完成任务5的内容;80%的学生能完成任务6;30%的学生能完成任务7。实践证明,学生学有所获并且乐于学习,教师教有定法、引导得当。整个教学过程,教师的适当引导中也倾注了师爱生的情感,学生在探究过程中也提升了自我学习的能力,师生之间是和谐并且有效的教学关系。

四、结束语

教学实践表明,在Java程序设计教学中实施任务驱动教学法不仅能够调动学生的积极性和创造性,还能培养学生的合作意识、探索意识,自我认识、自我评价能力,实践动手能力和创新能力,有助于良好的世界观、人生观和价值观的培养;同时也有效地解决了传统教学中的问题和困惑,让师生关系更加融洽。

参考文献

[1]蒋勇任务驱动教学法在程序设计语言教学中的应用.教育与培训。

[2]姜振安任务驱动教学法与学生实践能力的培养[J].职教通讯,2003,(7)。

[3]郭邵青任务驱动教学法的内涵.中国电化教育,2006,(7)。

[4]吴淑英C++程序设计课程项目引领任务驱动式教学设计与实施.ComputerEraNO.7,2012。

[5]丁汀任务驱动模式在C语言教学中的应用.福建电脑,2007,(2)。

[6]杨学梅“任务驱动”教学法.科教平台,2008。