论文部分内容阅读
摘 要:类比法是一种重要的教学方法,使用得当,可以使得教学事半功倍。本文从为何要用类比法教学,如何用类比法教学和用类比法教学需要注意哪些问题等方面,对类比法在《C语言程序设计》课程中的应用进行阐述。并加以实例,详细讲解了类比法在教学中的使用过程。
关键词: C语言;类比;教学;程序;
中图分类号:G71 文献标识码:A 文章编号:1674-3520(2015)-12-00-02
一、引言
C语言是一门经典的编程语言,很适合初学计算机语言的学生学习。而《C语言程序设计》是很多理工类学校的重要课程,尤其是计算机专业更把该门课程作为专业必修课看待。这门课程的主要目标是使学生掌握程序设计的基本方法和思路,培养学生使用计算机解决实际问题的能力,为后续的语言类课程打下坚实的基础。因此,如何教学,才能让学生扎扎实实地学好、学透这门语言就显得尤为重要。
职业院校招收的计算机专业的学生多是初中、高中起点,即使在校学习一两年后,学生对于抽象理论的学习能力,以及逻辑思维推理的能力依然存在很大不足,而C语言对于上述能力的要求是很高的。所以,在教学过程中采用适当的教学方法将抽象的思想具体化,将生涩的知识转化为自身的理解是非常必要的。笔者在教学过程中大量的采用类比法,收到了良好的教学效果。
类比法是指由一类事物所具有的某种属性,可以推测与其类似的事物也应具有这种属性的推理方法。这种方法的分支很多,有远类比、近类比,形象类比、相似类比、差异类比等等,对于人们认识新鲜事物时有很大的帮助。
二、类比法在教学中的应用
有了对C语言课程的认识和对职校学生基本能力的分析,我在教学过程中,将抽象的理论与生活中具体的事物类比,将难以理解的编程思路与已经学过的计算机知识类比,使学生的课堂学习变得轻松起来。
(一)形象类比法在教学中的应用
形象类比法是,借助两类不同本质的事物之间的相似性,通过比较,形象、生动地将一种已经熟知的对象的知识推移到另一种新的对象上去的推理方法,也是教学中创设情景的重要工具。采用这种方法,把书中抽象的、难以理解的理论知识借助学生日常生活中耳熟能详的实例表述出来,为学生理解复杂的知识点创建出熟悉的环境,提高了学生的接受度。这对于起点低,逻辑思维能力差的职业院校的学生学习C语言程序设计,非常重要。
《C语言程序设计》一书中包含几大重要内容,其中“函数”部分是重点中的难点,而“数组作为函数参数”在这部分章节中,更加难以理解。书中花了大量篇幅,举了多个例子,反复强调分析了数组元素和数组名作为实参传递时的差别。学生看到后,依然困惑不解。
例题是:编写函数将一个整型数组中小于等于0的数值变成0,大于0的则保持不变。如:5、-2、3、-3、2,变为5、0、3、0、2。
程序1:
#include
#include
void nzp(int v){
if(v<=0) v=0;
}
int main(){
int a[5],i;
printf(“输入5个数字\n");
for(i=0;i<5;i++){
scanf("%d",&a[i]);
nzp(a[i]); }
for(i=0;i<5;i++)
printf("%d",a[i]);
system("pause");
}
結果为:输入5 -2 3 -3 2输出依然是5 -2 3 -3 2,并没有达到预期效果。笔者在讲解时,举了一个学生生活的例子进行类比。我校学生宿舍卫生检查完会将检查结果以分数形式写在宿舍一楼黑板上的表格中,班委照了张照片传给班主任以供查阅。班主任看后发现分数很低,大怒,去修改图片上的分数,这并不会影响到宿舍黑板上的实际分数。因为,班主任得到的图片,是黑板上分数的复制品。程序1中,同样是数组元素作为实参将数值复制了一份给子函数nzp,子函数虽对数值进行了修改,但是没有返回主函数,不会影响到主函数中的数组a。
程序2:
#include
#include
void nzp(int v[5]){
int i;
for(i=0;i<5;i++)
if(v[i]<=0) v[i]=0;
}
int main(){
int a[5],i;
printf(“输入5个数字\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
nzp(a);
for(i=0;i<5;i++){
printf("%d",a[i]);}
system("pause");
}
结果为:输入5 -2 3 -3 2输出变成是5 0 3 0 2,达到了预期效果。这就好比班委不是拍照将分数发给班主任的,而是传了宿舍的位置 “1号宿舍楼1楼” 给班主任让班主任自己来看。班主任根据地址找到黑板,愤而修改分数,这时确实更改的就是黑板上的分数了。程序2中,就是将内存中存放数组a的地址传给了子函数,子函数修改的是内存中对应地址中的数据,也就是数组a本身,所以完成了题目要求。
通过上面的类比,学生哈哈一笑,在轻松的学习中清楚的看到了二者的本质区别,从而深刻的理解了数组元素与数组名作为实参向形参传递数据的不同。 二、相似类比与差异类比的融合
相似类比原本是成矿预测学里面的概念,原意是指在相似的地质环境中应该含有相似的矿产资源,这在我们教学过程中同样可以拿来作很好的应用。而差异类比正好与之相反,可以在相同中找出不同加以区分。
《C语言程序设计》课程中有一个很重要的内容是给学生介绍程序的三种基本结构,即顺序、选择和循环结构。其中循环结构中语句while作为该结构的代表语句被用来解释循环结构的执行过程,其格式为:
while(条件表达式)
{语句1;~语句n;}
书中对于该语句的执行从各个方面做了很多的解释,为了能够让学生快速理解,笔者在上课时,拿出选择结构中的if语句进行类比。格式为:
if(条件表达式)
{语句1;~语句n;}
从两个语句的格式来看,除了名称之外几乎一模一样。因此,老师可以引导学生认为两者的执行过程也是一样的。学生对于if语句是非常熟悉的,执行过程是:如果“条件表达式”成立,则执行“语句1;~语句n;”,那么while语句是否也是如此执行的呢?没错,while的前半部分的确是和if语句一样如果“条件表达式”成立,则执行“语句1;~语句n;”。但是,while做完这些并没有结束,而是回头去再次判断条件是否成立,成立则继续执行“语句1;~语句n;”,反复执行,直到“条件表达式”不成立为止,这就是所谓的“循环结构”。
通过while语句和if语句的类比,首先,引导学生发现了新旧知识的相同之处,消除了学生对于新知识的陌生感,方便学生去理解和接受。然后,通过类比发现新旧知识的不同之处,防止两者同时出现时学生会混淆而使用错误。最后,在学习新知识的同时也对旧知识进一步复习巩固。一举数得,充分体现了相似与区别类比法融合的优点。
三、类比法在教学中应用的注意事项
类比法的确非常适合于《C语言程序设计》的教学,但是也不能盲目使用,一旦使用不当,会给后续教学增加难度。
首先,要充分了解学生特点,教学的对象是否适用于这种教学方法。如果学生的逻辑思维和理解能力很强,反复使用类比,反而过分强调了类比物和目标之间的关系,限制了学生的思考方向,不利于学生的深度学习。或者学生的年龄很小,完全没经验,会让学生困惑与类比双方的关系,难以理解。
其次,类比要恰当,例子要是学生所熟悉的。如果類比物本身,学生也很少接触,没有认同感,只会越比越糟,学生更加难以理解知识点。
最后,把握使用量。类比是方法、手段不是目的,我们要适量、适时的使用,不要泛用、滥用。
四、结论
笔者在C语言的教学中,采用类比教学法,成效显著。帮助了很多学生更快,更好的学习这门课程,获得了学生的肯定。类比教学法,也不局限于C语言教学,可以在其它课程中灵活应用,大量推广。
参考文献:
[1]《C语言程序设计》 谭浩强 清华大学出版社 2008.11
[2] 类比教学法在操作系统教学中的应用研究 彭宗举 沈明炘 赵一鸣 高等理科教育2007.2
[3]C语言程序设计教学探讨 杨艳梅 刘心军 信息与电脑 2011.2
关键词: C语言;类比;教学;程序;
中图分类号:G71 文献标识码:A 文章编号:1674-3520(2015)-12-00-02
一、引言
C语言是一门经典的编程语言,很适合初学计算机语言的学生学习。而《C语言程序设计》是很多理工类学校的重要课程,尤其是计算机专业更把该门课程作为专业必修课看待。这门课程的主要目标是使学生掌握程序设计的基本方法和思路,培养学生使用计算机解决实际问题的能力,为后续的语言类课程打下坚实的基础。因此,如何教学,才能让学生扎扎实实地学好、学透这门语言就显得尤为重要。
职业院校招收的计算机专业的学生多是初中、高中起点,即使在校学习一两年后,学生对于抽象理论的学习能力,以及逻辑思维推理的能力依然存在很大不足,而C语言对于上述能力的要求是很高的。所以,在教学过程中采用适当的教学方法将抽象的思想具体化,将生涩的知识转化为自身的理解是非常必要的。笔者在教学过程中大量的采用类比法,收到了良好的教学效果。
类比法是指由一类事物所具有的某种属性,可以推测与其类似的事物也应具有这种属性的推理方法。这种方法的分支很多,有远类比、近类比,形象类比、相似类比、差异类比等等,对于人们认识新鲜事物时有很大的帮助。
二、类比法在教学中的应用
有了对C语言课程的认识和对职校学生基本能力的分析,我在教学过程中,将抽象的理论与生活中具体的事物类比,将难以理解的编程思路与已经学过的计算机知识类比,使学生的课堂学习变得轻松起来。
(一)形象类比法在教学中的应用
形象类比法是,借助两类不同本质的事物之间的相似性,通过比较,形象、生动地将一种已经熟知的对象的知识推移到另一种新的对象上去的推理方法,也是教学中创设情景的重要工具。采用这种方法,把书中抽象的、难以理解的理论知识借助学生日常生活中耳熟能详的实例表述出来,为学生理解复杂的知识点创建出熟悉的环境,提高了学生的接受度。这对于起点低,逻辑思维能力差的职业院校的学生学习C语言程序设计,非常重要。
《C语言程序设计》一书中包含几大重要内容,其中“函数”部分是重点中的难点,而“数组作为函数参数”在这部分章节中,更加难以理解。书中花了大量篇幅,举了多个例子,反复强调分析了数组元素和数组名作为实参传递时的差别。学生看到后,依然困惑不解。
例题是:编写函数将一个整型数组中小于等于0的数值变成0,大于0的则保持不变。如:5、-2、3、-3、2,变为5、0、3、0、2。
程序1:
#include
#include
void nzp(int v){
if(v<=0) v=0;
}
int main(){
int a[5],i;
printf(“输入5个数字\n");
for(i=0;i<5;i++){
scanf("%d",&a[i]);
nzp(a[i]); }
for(i=0;i<5;i++)
printf("%d",a[i]);
system("pause");
}
結果为:输入5 -2 3 -3 2输出依然是5 -2 3 -3 2,并没有达到预期效果。笔者在讲解时,举了一个学生生活的例子进行类比。我校学生宿舍卫生检查完会将检查结果以分数形式写在宿舍一楼黑板上的表格中,班委照了张照片传给班主任以供查阅。班主任看后发现分数很低,大怒,去修改图片上的分数,这并不会影响到宿舍黑板上的实际分数。因为,班主任得到的图片,是黑板上分数的复制品。程序1中,同样是数组元素作为实参将数值复制了一份给子函数nzp,子函数虽对数值进行了修改,但是没有返回主函数,不会影响到主函数中的数组a。
程序2:
#include
#include
void nzp(int v[5]){
int i;
for(i=0;i<5;i++)
if(v[i]<=0) v[i]=0;
}
int main(){
int a[5],i;
printf(“输入5个数字\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
nzp(a);
for(i=0;i<5;i++){
printf("%d",a[i]);}
system("pause");
}
结果为:输入5 -2 3 -3 2输出变成是5 0 3 0 2,达到了预期效果。这就好比班委不是拍照将分数发给班主任的,而是传了宿舍的位置 “1号宿舍楼1楼” 给班主任让班主任自己来看。班主任根据地址找到黑板,愤而修改分数,这时确实更改的就是黑板上的分数了。程序2中,就是将内存中存放数组a的地址传给了子函数,子函数修改的是内存中对应地址中的数据,也就是数组a本身,所以完成了题目要求。
通过上面的类比,学生哈哈一笑,在轻松的学习中清楚的看到了二者的本质区别,从而深刻的理解了数组元素与数组名作为实参向形参传递数据的不同。 二、相似类比与差异类比的融合
相似类比原本是成矿预测学里面的概念,原意是指在相似的地质环境中应该含有相似的矿产资源,这在我们教学过程中同样可以拿来作很好的应用。而差异类比正好与之相反,可以在相同中找出不同加以区分。
《C语言程序设计》课程中有一个很重要的内容是给学生介绍程序的三种基本结构,即顺序、选择和循环结构。其中循环结构中语句while作为该结构的代表语句被用来解释循环结构的执行过程,其格式为:
while(条件表达式)
{语句1;~语句n;}
书中对于该语句的执行从各个方面做了很多的解释,为了能够让学生快速理解,笔者在上课时,拿出选择结构中的if语句进行类比。格式为:
if(条件表达式)
{语句1;~语句n;}
从两个语句的格式来看,除了名称之外几乎一模一样。因此,老师可以引导学生认为两者的执行过程也是一样的。学生对于if语句是非常熟悉的,执行过程是:如果“条件表达式”成立,则执行“语句1;~语句n;”,那么while语句是否也是如此执行的呢?没错,while的前半部分的确是和if语句一样如果“条件表达式”成立,则执行“语句1;~语句n;”。但是,while做完这些并没有结束,而是回头去再次判断条件是否成立,成立则继续执行“语句1;~语句n;”,反复执行,直到“条件表达式”不成立为止,这就是所谓的“循环结构”。
通过while语句和if语句的类比,首先,引导学生发现了新旧知识的相同之处,消除了学生对于新知识的陌生感,方便学生去理解和接受。然后,通过类比发现新旧知识的不同之处,防止两者同时出现时学生会混淆而使用错误。最后,在学习新知识的同时也对旧知识进一步复习巩固。一举数得,充分体现了相似与区别类比法融合的优点。
三、类比法在教学中应用的注意事项
类比法的确非常适合于《C语言程序设计》的教学,但是也不能盲目使用,一旦使用不当,会给后续教学增加难度。
首先,要充分了解学生特点,教学的对象是否适用于这种教学方法。如果学生的逻辑思维和理解能力很强,反复使用类比,反而过分强调了类比物和目标之间的关系,限制了学生的思考方向,不利于学生的深度学习。或者学生的年龄很小,完全没经验,会让学生困惑与类比双方的关系,难以理解。
其次,类比要恰当,例子要是学生所熟悉的。如果類比物本身,学生也很少接触,没有认同感,只会越比越糟,学生更加难以理解知识点。
最后,把握使用量。类比是方法、手段不是目的,我们要适量、适时的使用,不要泛用、滥用。
四、结论
笔者在C语言的教学中,采用类比教学法,成效显著。帮助了很多学生更快,更好的学习这门课程,获得了学生的肯定。类比教学法,也不局限于C语言教学,可以在其它课程中灵活应用,大量推广。
参考文献:
[1]《C语言程序设计》 谭浩强 清华大学出版社 2008.11
[2] 类比教学法在操作系统教学中的应用研究 彭宗举 沈明炘 赵一鸣 高等理科教育2007.2
[3]C语言程序设计教学探讨 杨艳梅 刘心军 信息与电脑 2011.2