您好, 访客   登录/注册

任务驱动教学法在《程序设计基础》教学中的应用

来源:用户上传      作者:

  【摘要】根据《程序设计基础》课程的特点,将任务驱动教学法引入到《程序设计基础》课程的教学中,描述了任务驱动教学法的实施过程和需要注意的问题,强调了该教学方法能有效提高教学效果。
  【关键词】任务驱动  程序设计  教学方法
  【中图分类号】G642                             【文献标识码】A      【文章编号】2095-3089(2015)05-0165-01
  一、引言
  《程序设计基础》是针对信息与计算科学专业开设的一门核心基础课程,它将使该专业学生初步了解C语言和程序设计,并为学生以后学习面向对象程序设计、高级程序设计和嵌入式程序设计等课程和从事程序设计或软件设计与开发打下一定的底子。这门课程的主要任务是使学生了解程序设计的思路,学习C语言与语法,初步学会用C语言编写程序。然而传统的老师教学生学的填鸭式教学方法只是把老师和书本的思想灌输给了学生,极大地扼杀了学生的创造力,学生逐步丧失了学习的兴趣,教学效果不理想。建立在建构主义教学理论基础上的“任务驱动”教学法在教学过程中将教学重点放在解题的思路上,强调以任务为驱动,以学生为主体,以教师为引导的教学思想,比较适合程序设计基础课程的教学。
  二、任务驱动教学法在《程序设计基础》教学中的实施
  《程序设计基础》这门课程的最主要任务是:使学生了解程序设计的思路,学习C语言与语法,初步学会用C语言编写程序。从教学的角度来看,《程序设计基础》这门课程不应将教学重点放在C语言语法上,对语言语法细节过多地死抠。而要使学生明白:重要是学会编程序,而不是背语法,衡量这门课程学习的好坏,不是看你“知不知道”,而是“会不会干”。
  1.任务设计
  “兴趣是最好的老师”,一个有趣味性并且贴近学生生活的任务能够激发学生学习的热情,在“以学生为主体”的任务驱动教学过程中,应全面考虑每一个知识点,同时也要考虑“任务”的大小、前后的联系等多方面的因素,把学生所要学习的知识点巧妙的穿插在任务中,为学生设计出一系列难度逐步提高的任务,比如不妨从“输入三个实数,求它们的平均值并输出结果”这种简单的任务出发,逐步拓展成“求全班同学英语夺标比赛成绩的最高分、最低分和平均分”,最后升华成“从键盘上依次输入10个整数,要求:边输入边按升序排序,同时记录每个数据的输入顺序,输入完毕后将10个排序后的整数及原始数据位置分两行对应输出。”
  2.任务实践
  在此阶段教师应引导学生分析任务,提供解决任务的思路并指引学生完成任务,教师此时起到的是一个引导、咨询的作用,每一步都应该在解决任务的过程中前进,促使学生循序渐进地学习知识和技能。
  在布置完第一个任务后教师应该先举例讲授变量的声明和使用,基本的算术运算,数据的输入和输出方式以及程序的固定结构,然后给学生留下充足的操作时间,让学生自己上机编程尝试,他们在操作过程中对程序设计有了一个相对直观的了解,对基本的数据类型、变量的输入和输出以及顺序结构有了初步的掌握。有了前面的学习基础后,教师就可以让学生了解循环语句和数组的部分内容,让学生对数组元素含有下标和值的属性有一定的理解。然后让学生自己自主探索,找到第二个任务的解决方案。在布置第三个任务之前可以先给学生介绍我国著名的计算机教育家谭浩强先生所提出的“先搭框架,逐步扩充,由简到繁,最后完善”的16字原则,“边编程,边调试,边扩充”的9字方法,“一开始时不要企图解决所有细节”的1个注意事项,学会将一个复杂问题分解成若干个简单问题,并将简单问题扩充为复杂问题。布置完第三个任务后就逐步引导学生将整个任务的解决分解为三个子任务。第一个子任务:用简单选择排序法,将一个已知数组作升序排序,并给出基本的输入输出。第二个子任务:解决用户从键盘输入数组的问题,并实现边输入、边排序、边输出。第三个子任务:解决数组元素位置变化之后的下标号的记录问题。
  3.任务总结
  此阶段教师要对任务实施阶段涉及到的知识点进行归纳整理,如第一个任务涉及到了程序基本结构、变量名、数据类型与所占字节数、变量定义与赋初值等基本知识点,第二个任务涉及到了数组定义与初始化、for循环、单分支选择结构等基本知识点。第三个任务涉及到了标识变量的作用与设置、冒泡排序法等基本知识点。同时教师还要对任务完成阶段学生碰到的问题集中进行解答,让大家互相了解彼此可能出错的类型,交流完成任务的方法和思路。
  4.任务拓展
  此时应该是对基础知识掌握的一个升华,教师可以对任务进行一些修正,逐步拓展各个知识点,渐渐地理解C中各种数据类型在内存中所占的字节数,理解数据在内存中的存储形式。对于循环结构逐步掌握for、do-while、while循环的区别和各自特点,渐渐了解多维数组定义,多维数组初始化,多维数组中元素的存储形式,掌握多分支结构的表述,知道条件表达式选择的规划。了解冒泡法的各种变形形式。
  三、总结
  在《程序设计基础》教学中,主要是解决模型建立与模型表现的两大问题。模型建立涉及到各个领域的知识,而模型表现涉及到算法框架和语言知识。它涉及了从分析任务的解决办法到将其转化为计算机能够接受形式的全过程锻练。这种锻练可以在机上和机下两种环境中进行。机下的工作就是分析任务,画程序流程图,设计算法。机上实践的工作包括编写程序、调试程序、测试程序、运行程序。机上与机下两个环节相得益彰,相互补充。
  在《程序设计基础》课程的教学中应用任务驱动教学法,改变了传统的知识获得方式,既能充分激发了学生的求知欲望,又能培养学生的自主学习能力,还能挖掘学生的潜能,提高了教学质量。
  参考文献:
  [1] 周淑秋.递进任务驱动在VB程序设计教学中的应用.中国劳动关系学院学报.2009(3).
  [2] 杨冬,刘磊,张晶,郭德贵,马安娜.任务驱动的高级语言程序设计课程教学.2005(S2).
  [3] 郑永爱.“任务驱动教学法”在“C#程序设计基础”教学中的应用.2010(12).
  [4] 胡远萍. 基于任务驱动的“C 语言程序设计”课程教案设计. 长沙通信职业技术学院学报.2009(4).
  注:“武汉工程大学校级教研项目(X2009036)”
转载注明来源:https://www.xzbu.com/9/view-11835556.htm