免费论文查重: 大雅 万方 维普 turnitin paperpass

谈谈实践任务驱动法在《C语言程序设计》课程教学中实践怎样

最后更新时间:2024-02-24 作者:用户投稿原创标记本站原创 点赞:16077 浏览:63426
论文导读:些算法之间的联系,与课程的相关内容结合。如选择法可以结合选择程序设计结构,筛选法、起泡法等算法可以结合数组、函数部分进行教学。这样,学生在任务训练中熟练掌握这些算法的同时,也学习并掌握了相关课程内容,并逐渐养成在程序设计时进行触类旁通的思维模式。我这里强调了确定任务的重要性,但同时也要注意在确定任务时应该
摘要:C语言是一种应用广泛又比较难学的计算机高级语言,它接近硬件和系统低层软件资源,在教学上与其他语言有区别,本文结合教学实践,探讨了任务驱动法在本课程教学实践中的应用。
关键词:任务驱动法;C语言;教学;实践
1674-9324(2013)09-0087-03
 源于:论文怎么写www.7ctime.com
 随着教学改革步伐的加快和后续课程的迫切要求,多数高校包括我们甘肃机电职业技术学院将C语言安排为第一计算机教学语言,且有些系部为了开设课程的需要在一年级就开始授课,这无疑给C的教学带来了新的压力和挑战。本人担任此课程的教学工作以来,在《C语言程序设计》课程中引入任务驱动教学方法,学生在任务中学习语法、算法和编程方法,教师着重引导,学生主动参与,很大的激发了学生的学习兴趣和培养实践动手能力。

一、任务驱动教学法的理论基础

“任务驱动教学法”是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维互动式的教学理念。将再现式教学转变为探究式学习,使每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。在这个过程中,学生还会不断地获得成就感,可以更大地激发他们的求知,逐步形成一个感知心智活动的良性循环,从而培养出独立探索、勇于开拓进取的自学能力。在如何学习方面,构建主义提倡在教师指导下以学习者为中心的学习,也就是说强调学习者的认知主体作用,又不忽视教师的主导作用,教师是意义构建的帮助者、促进者。而不是知识的传授者与灌输者。学生是信息加工的主体,是意义的主动构建者,而不是外部刺激的被动接受者和被灌输的对象。

二、任务驱动教学法在《C语言程序设计》课程中的实践

1.确定问题(任务)。任务驱动教学法首先需要解决的是确定任务,选择与当前学习主题密切相关的真实性事件或问题(任务)作为学习的中心内容,让学生面临一个需要立即去解决的现实问题。在授课开始,提出问题,指出该问题的难点,围绕授课内容引导学生进行思考。例如,学习结构体一章时,可以让学生思考如何才能存放全班同学的信息(姓名、年龄、成绩等),以往的基本数据类型可以完成吗?由此引入结构体数组的概念。以“选择结构”一章为例,该单元的教学知识点是掌握关系表达式、逻辑表达式和条件表达式,会使用if语句和switch语句。在教学过程中,从简单的问题着手,先要求学生自己编写程序,引入条件语句,同时在程序中讲解相关的语法知识点,提升高度。具体步骤:(1)任意输入两个数,求最大值,并输出最大值。(以此为例讲解if...else语句的用法及其执行过程。)(2)扩展第一步,任意输入三个数,求最小值并输出。(引入介绍六种基本关系运算符并给出优先顺序,学习计算关系表达式的值,强调值为逻辑值。)(3)扩展第二步,任意输入三个数,并按从小到大的顺序输出。(注意讲解其中的算法,为循环语句打基础。介绍三种逻辑运算符号及其优先顺序,学习计算逻辑表达式的值。)(4)移植第三步,求解符号函数,强调else子句与if语句的匹配原则。(5)推进第四步,进行if语句的多重嵌套。从键盘上输入成绩并按原则输出其等级为习题供学生练习。(6)改写第五步程序,使用switch语句构成多分支结构。(引入switch语句和break语句。)(7)进行嵌套if语句与switch语句互换。同时,还要注重算法分析,培养学生以算法为中心解决问题的能力。这是程序设计课程的教学重点,也是教学难点。对于C语言所涉及的算法,在精讲多练的同时还应注意这些算法之间的联系,与课程的相关内容结合。如选择法可以结合选择程序设计结构,筛选法、起泡法等算法可以结合数组、函数部分进行教学。这样,学生在任务训练中熟练掌握这些算法的同时,也学习并掌握了相关课程内容,并逐渐养成在程序设计时进行触类旁通的思维模式。我这里强调了确定任务的重要性,但同时也要注意在确定任务时应该控制任务的难度。在教学层次上,要根据学生基础程度的不同,制定不同的任务标准,要求每一个层次的学生都要达到最低的标准的任务并向高一级标准努力。具体来说,一个课堂的练习要有多个层次的任务,第一个层次是基本的,体现课程主要内容,第二个层次略为扩充,体现一定的论文导读:
技巧和算法,第三个层次就是要求学生的设计无论从界面、风格、完整型还是算法、技巧、易用性等方面接近专业程序员的习惯和水平。举一个简单的例子,刚开始学生接触C语言课程时,有这么一个任务:
例:计算并显示2个数的和是多少?
任务递进:①计算并显示2个数的和,按任意键退出显示屏幕?②计算并显示2个数的和,以算术的形式显示?③输入两个数求和,并以算术的形式显示?问题(任务)的解决有使学生更主动、更广泛地激活原有知识和经验,来理解、分析并解决当前问题,问题的解决为新旧知识的衔接、拓展提供了理想的平台,通过问题的解决来建构知识,正是探索性学习的主要特征。
2.任务实施。任务递进中,通过新任务引出新的概念,新的语法,新的知识点。如:①按任意键退出显示屏幕,可以用以下两句来实现:printf(“Please press any key to exit!\n”);scanf(“%c”,&c);\*假设字符型变量c已经定义*\或:printf(“Please press any key to exit!\n”);getchar();\*这时不用定义字符型变量,节省了存储空间*\进而引出Turbo C中的3个标准的输入函数getchar()、scanf()和以后要学习的gets(),在这里我结合具体教学中谈谈这三个函数。①这3个函数都属于标准输入函数,它们在头文件stdio.h中进行说明,其功能分别是:从标准输入文件得到一个字符、按所给字符格式的要求从标准输入文件得到若干项不同类型的数据、从标准输入文件得到一个字符串。显然,这3个函数在操作上存有共性。②我的处理是将3个函数捆在一起、硬着头皮往深里讲,所抱的指导思想是讲十分可能会七分,如果讲七分就只能会五分。这3个函数的操作对象都是标准输入文件,该文件在系统启动时自动打开,文件指针由系统定义为stdin。所谓标准输入文件,实际上是在DOS的高层将键盘设备当作一个输入文件,将键盘操作视为文件操作;由于键盘是计算机必备的输入设备,所以又称它为标准输入设备或标准输入文件。显然,DOS的这一高层操作必然要依赖于DOS的低层功能,其具体机制是,系统为标准输入文件配有一个文件缓冲区、并支持行编辑操作,即:用户连续键入字符,只要用户不按回车键('\r'),则前面键入的字符可退回任意修改;一旦回车,键入字符将进入文件缓冲区,包括最后键入的回车符也将转变为换行符('\n')送入文件缓冲区,此后它们将不能再被修改。③这3个函数面对同一个设备对象,共享同一个文件缓冲区,在操作上均分成两个环节。第一个环节,如果文件缓冲区空,它们等待用户键入字符直到用回车结束本行操作;第二个环节,它们从文件缓冲区中提取字符,并进行各自的相应处理:getchar()函数将从文件缓冲区中截取一个任意字符(包括空格和换行符)返回。gets()函数将从文件缓冲区中截取若干字符(其中包括空格符),直到遇到换行符并将它转变为控制字符NULL(' '),并以它作为串的结束标志。该函数返回串的首地址。函数将按格式的要求逐项截取字符,将它转变为要求的数据类型后存入相应的地址。截取原则有3个:a.按格式要求的数据类型和域宽来截取。b.遇到空格符、制表符和换行符时截取告一段落。c.遇到与所要求的格式不匹配的字符时截取告一段落。注意被scanf()函数截取后,最后的换行符仍被遗留在文件缓冲区内,成为影响后续接收的垃圾。该函数返回成功匹配的数据项的个数。④scanf()函数有诸多的操作细节,在教材上已经展开,但当scanf()函数连续使用时情况就不太正常。(已经有好多学生在上机时向我问过此类问题了。)在连续使用scanf()函数时,可用getchar()、fflush(stdin)或其他函数清除前次遗留在文件缓冲区中的垃圾字符。
通过引出Turbo C中的3个标准的输入函数getchar()、scanf()和gets(),就可以总结出相对应的输出函数putchar()、printf()和puts()了,这里就不再重复了。
通过任务:①引入知识点的学习,就可以轻松的解决任务递进;②计算并显示2个数的和,以算术的形式显示;③输入两个数求和,并以算术的形式显示。这些无非就是输入输出函数的灵活应用而已,在具体教学中论文导读:
我采取了让学生自己在原有的程序中改动来实现。
问题(任务)的解决有使学生更主动、更广泛地激活原有知识和经验,来理解、分析并解决当前问题,问题的解决为新旧知识的衔接、拓展提供了理想的平台,通过问题的解决来建构知识,正是探索性学习的主要特征。
3.评价与反馈。评价和反馈可与让教师实时了解学生任务实施的进展和效果,促进学生的学习兴趣,达到以评促学的目的。如在任务实施阶段过程中(如在学生上机的过程中)发现问题及时纠正,任务实施结束后,提问几位学生汇报任务进展情况,汇报过程中我采取了将他们的程序通过大屏幕给大家演示,有错误的地方提问若干个学生错在哪里了、为什么错了、怎么去改动、是哪个语法现象的问题等,回过头再讲讲这个语法现象。评价和改动后结合几位学生的程序,给予点评与鼓励。
实践证明,评价与反馈可以极大的调动学生的学习兴趣,激发斗志,使学生在今后的学习中更加有动力,是任务驱动法不可或缺的一个步骤。

三、任务驱动教学法在《C语言程序设计》课程教学中的整体把握

上面谈到的是具体章节中怎样利用任务驱动来教学,实际上对整个课程也可以从宏观上进行任务设计。
如完成学生成绩管理信息系统,必须学习以下知识:掌握文件的建立、打开、读、写等操作;系统的组织包含数据输入、修改、查询、统计、输出等功能,必须掌握函数的调用;数据内容的组织涉及数组、结构体、链表,必须掌握数组、结构体、链表等数据对象的操作;功能的实现必须设计算法控制流程,掌握不同的流程图表示方法;功能算法的实现必须根据算法描述进行符号化语句表示;根据编写程序的源代码进行程序调试。
该任务难度适中,囊括了C语言课程的大纲要求,而且与学生联系密切,使学生不必进行复杂的项目背景分析就可以进行不同程度的功能扩展。同时项目的实现能够突出程序设计“以算法为中心”求解问题的方法,是一个比较合适的项目。学生从开始模仿单一的记录添加、排序、查询、统计和记录浏览等简单程序,到利用函数、结构和指针等知识对模仿期开发的各功能模块进行扩充和完善,逐步组建学生的管理系统。
通过在《C语言程序设计》课程中引入任务驱动的教学方法,相比传统的教学方法,学生的兴趣提高,积极主动,大大的提高了教学效率。以实际的软件开发项目为载体,学生通过各个任务的训练,基本上可以掌握一个C语言程序设计的软件的开发过程。
参考文献:
谭浩强.C语言程序设计[M].北京:清华大学出版社,2008:64,70,296.
郑英.任务驱动教学模式探索[J].考试周刊,2007,(7).
[3]龙志强,施晓红,谢云德.任务驱动法在单片机系统设计教学中的实践[J].实验室研究与探索,2008,(3).
[4]莱斯利·P·斯特弗,杰里·盖尔.教育中的构建主义[M].高文,徐斌艳,程克拉,等,译.上海:华东师范大学出版社,2003.
作者简介:许玉焕(1982-),男,甘肃秦安人,2005年7月毕业于西北师范大学电子信息工程系(计算机方向),大学本科摘自:硕士论文答辩www.7ctime.com
,工学学士,讲师,主要研究方向计算机程序设计。