论文部分内容阅读
一、引言
《C语言程序设计》是计算机学科中的一门专业理论基础课,它既有很强的理论性,又具有很强的实践性;同时又具有相当的难度和枯燥性。结构化的控制语句、灵活多变的的编程方法是C语言的特点,相对普高而言职高生文化基础和理解能力相对薄弱点,在职业高中在教学中,若采用传统的教学模式,既不能充分利用现代教学手段,又不能激发学生学习兴趣,使学生处于难于驾驭、无从下手的消极状态。因此,在教学过程中一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,采取由简单到复杂、分层深入的比较讲解方法定能提高教学效果。
二、教学方法举例
第一,循序渐进导入法。遵从学生的认知事物的心理、已构建的知识结构并由日常生活问题引入新课内容。
第二,模仿比较法。 主要由学生进行学习活动,即按照教师的示范,学生自己动手操作,教师指导。在此基础上,学生自己通过练习,逐步对新学知识达到完全掌握和熟练运用的程度。 如先以1+2+3+4+……+10为例,分析计算机解题的思维方式,讲解while 循环结构的特点、语句语法及应用方法;介绍流程图画法,描述计算机解题步骤;写出程序代码。然后擦去代码要求学生练习1*2*3*4……*10求积的程序,以训练学生知识的理解掌握和迁移能力。
第三,范例比较探究教学法。
范例比较教学法是指根据好的、特别清楚的、典型的例子进行教与学,使学生能依靠例子来掌握新知识;比较则是把与该范例相关的另一类语言的编写程序列举出来相比较。问题探究教学法旨在教学中,教师根据教学要求和教学的重点、难点,设计问题来组织教学,使学生在教师引导下,以“问题解决者”的角色积极主动地参与课堂研讨,提出问题、分析和解决问题,从而启发学生思维和培养学生能力的一种教学方法。
例如,我们学习了for循环结构后,如有求下列表达式的值:1-1/2+1/3-1/4+…… -1/20,那么学生可能会感觉无从下手。但我们以下面题目为基础步步深入,列举若干例子使们彼此联系又若显不同,就可以逐步引导学生完成较难的编程。
1.我们可以通过下题作为基础
例题1:求表达式1+2+3+4+…+20的值
分析:表达式的各项之间相加但前一项比后一项的上递增1的顺序,于是就可以设初值为1、终值为20,循环变量i的步长为1,放和的变量为sum其初值为0。程序代码如下:#include<stdio.h>main(){int i ,sum=0;for(i=1;i<=20;i++)sum=sum+i;
prinft(“sum=1+2+3+4+…+20=%d”,sum);getch( );}
举例练习思考题:求1+3+5+7+……+21的值。(并要求课后做到作业本上)
2.通过下例两题作出比较
例2:求表达式1-2+3-4+……-20的值?
分析:比较它与例1的相同点和不同点:相同点是他们都是求表达式的值,不同的地方是前面都是加,而例2是加减相交错,探讨下我们是否可以将它就为理解为:1+(-1)*2+3(-1)*4+……(-1)*20。这时就会要运到标志变量flag,程序代码如下:#include<stdio.h>main(){int i ,sum=0,flag=1;for(i=1;i<=20;i++){ i=flag*i;sum=sum+i;flag = -flag;}prinft(“sum=1+2+3+4+…+20=%d”,sum);getch( );}
例3:求表达式1+1/2+1/3+1/4+…+1/20的值。
分析:比较它与例1的相同点和不同点:相同点是他们都是求表达式的值,不同的地方是例1是整数相加,而例2是可以看作是:1/1+1/2+1/3+1/4+…+1/20,是将其变为分数相加,同时应注意sum应改变数据类型实型,故程序代码如下:#include<stdio.h>main(){float i ,sum=0;for(i=1;i<=20;i++)sum=sum+1.0/i;prinft(“sum=1+1/2+1/3+1/4+…+1/20=%f”,sum);getch( );}
3.通过探讨,结合例1、例2,正确的引导学生编出程序
程序代码如下:#include<stdio.h>main(){ float i ,sum=0,flag=1;for(i=1;i<=20;i++) {i=flag*i;sum=sum+1.0/i;flag = -flag;}prinft(“sum=1-2+3-4+… -20=%f”,sum);getch( );}
课后思考作业:求表达式1/1-1/3+1/5-1/7+……-1/21的值?
上述几种教学方法打破了以教材为中心的传统教学模式,而是以精选出的实例或生活中例子为中心,把学习的重点放在范例的讲述上,把要学习的语法结构和概念融入到具体范例中来讲解。整个教学过程中强调学以致用,在应用中学习,从而避免枯燥、繁杂的理论说教,不仅能增进学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力有很大帮助。
三、总结
教学有法,教无定法,只要教学得法。实践证明,在教学过程中,学生知识的获得、能力的培养、智力的发展,不能将某种教学方法生硬地搬到课堂上,而是要根据教学目的、教学内容、教学环境、特别是要注意职业学生特点、教师自身能力等多方面因素综合考虑,灵活地选用合适的教学方法,或将多种教学方法优化组合,这样才能让课堂教学冲破课堂,教师引导、点拨学生把知识加以引申,使学生能够触类旁通,识一山而知千峰。当然教师对整个教学活动要进行适当归纳总结,对教学重点、难点进行反复讲解,使不生逐步對新学知识达到完全掌握和熟练运用的程度。
《C语言程序设计》是计算机学科中的一门专业理论基础课,它既有很强的理论性,又具有很强的实践性;同时又具有相当的难度和枯燥性。结构化的控制语句、灵活多变的的编程方法是C语言的特点,相对普高而言职高生文化基础和理解能力相对薄弱点,在职业高中在教学中,若采用传统的教学模式,既不能充分利用现代教学手段,又不能激发学生学习兴趣,使学生处于难于驾驭、无从下手的消极状态。因此,在教学过程中一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,采取由简单到复杂、分层深入的比较讲解方法定能提高教学效果。
二、教学方法举例
第一,循序渐进导入法。遵从学生的认知事物的心理、已构建的知识结构并由日常生活问题引入新课内容。
第二,模仿比较法。 主要由学生进行学习活动,即按照教师的示范,学生自己动手操作,教师指导。在此基础上,学生自己通过练习,逐步对新学知识达到完全掌握和熟练运用的程度。 如先以1+2+3+4+……+10为例,分析计算机解题的思维方式,讲解while 循环结构的特点、语句语法及应用方法;介绍流程图画法,描述计算机解题步骤;写出程序代码。然后擦去代码要求学生练习1*2*3*4……*10求积的程序,以训练学生知识的理解掌握和迁移能力。
第三,范例比较探究教学法。
范例比较教学法是指根据好的、特别清楚的、典型的例子进行教与学,使学生能依靠例子来掌握新知识;比较则是把与该范例相关的另一类语言的编写程序列举出来相比较。问题探究教学法旨在教学中,教师根据教学要求和教学的重点、难点,设计问题来组织教学,使学生在教师引导下,以“问题解决者”的角色积极主动地参与课堂研讨,提出问题、分析和解决问题,从而启发学生思维和培养学生能力的一种教学方法。
例如,我们学习了for循环结构后,如有求下列表达式的值:1-1/2+1/3-1/4+…… -1/20,那么学生可能会感觉无从下手。但我们以下面题目为基础步步深入,列举若干例子使们彼此联系又若显不同,就可以逐步引导学生完成较难的编程。
1.我们可以通过下题作为基础
例题1:求表达式1+2+3+4+…+20的值
分析:表达式的各项之间相加但前一项比后一项的上递增1的顺序,于是就可以设初值为1、终值为20,循环变量i的步长为1,放和的变量为sum其初值为0。程序代码如下:#include<stdio.h>main(){int i ,sum=0;for(i=1;i<=20;i++)sum=sum+i;
prinft(“sum=1+2+3+4+…+20=%d”,sum);getch( );}
举例练习思考题:求1+3+5+7+……+21的值。(并要求课后做到作业本上)
2.通过下例两题作出比较
例2:求表达式1-2+3-4+……-20的值?
分析:比较它与例1的相同点和不同点:相同点是他们都是求表达式的值,不同的地方是前面都是加,而例2是加减相交错,探讨下我们是否可以将它就为理解为:1+(-1)*2+3(-1)*4+……(-1)*20。这时就会要运到标志变量flag,程序代码如下:#include<stdio.h>main(){int i ,sum=0,flag=1;for(i=1;i<=20;i++){ i=flag*i;sum=sum+i;flag = -flag;}prinft(“sum=1+2+3+4+…+20=%d”,sum);getch( );}
例3:求表达式1+1/2+1/3+1/4+…+1/20的值。
分析:比较它与例1的相同点和不同点:相同点是他们都是求表达式的值,不同的地方是例1是整数相加,而例2是可以看作是:1/1+1/2+1/3+1/4+…+1/20,是将其变为分数相加,同时应注意sum应改变数据类型实型,故程序代码如下:#include<stdio.h>main(){float i ,sum=0;for(i=1;i<=20;i++)sum=sum+1.0/i;prinft(“sum=1+1/2+1/3+1/4+…+1/20=%f”,sum);getch( );}
3.通过探讨,结合例1、例2,正确的引导学生编出程序
程序代码如下:#include<stdio.h>main(){ float i ,sum=0,flag=1;for(i=1;i<=20;i++) {i=flag*i;sum=sum+1.0/i;flag = -flag;}prinft(“sum=1-2+3-4+… -20=%f”,sum);getch( );}
课后思考作业:求表达式1/1-1/3+1/5-1/7+……-1/21的值?
上述几种教学方法打破了以教材为中心的传统教学模式,而是以精选出的实例或生活中例子为中心,把学习的重点放在范例的讲述上,把要学习的语法结构和概念融入到具体范例中来讲解。整个教学过程中强调学以致用,在应用中学习,从而避免枯燥、繁杂的理论说教,不仅能增进学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力有很大帮助。
三、总结
教学有法,教无定法,只要教学得法。实践证明,在教学过程中,学生知识的获得、能力的培养、智力的发展,不能将某种教学方法生硬地搬到课堂上,而是要根据教学目的、教学内容、教学环境、特别是要注意职业学生特点、教师自身能力等多方面因素综合考虑,灵活地选用合适的教学方法,或将多种教学方法优化组合,这样才能让课堂教学冲破课堂,教师引导、点拨学生把知识加以引申,使学生能够触类旁通,识一山而知千峰。当然教师对整个教学活动要进行适当归纳总结,对教学重点、难点进行反复讲解,使不生逐步對新学知识达到完全掌握和熟练运用的程度。