论文部分内容阅读
摘 要:C语言是一种计算机程序设计语言,它兼具高级语言和汇编语言的特点,它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言。所以学好C语言对每一个计算机专业的学生来说都是必要的。
关键词:C语言;教学方法;教学质量
中图分类号:TP312.1-4
1 C语言的优势
C語言简洁紧凑、灵活方便,一共只有32个关键字,9种控制语句,程序书写形式自由;运算符数据类型丰富;表达方式灵活实用;允许直接访问物理地址,对硬件进行操作,把高级语言的基本结构和语句与低级语言的实用性结合起来;生成目标代码质量高,程序执行效率高;可移植性好,表达力强;另外C语言具有强大的图形功能,支持多种显示器和驱动器[1]。且计算功能、逻辑判断功能强大。C语言的这些优势,使它从1972开始问世以来,长时间位于程序使用排行榜的前三名,它的光辉,没有被任何新生的程序语言所遮盖。所以想学好程序设计,学习C语言是最好的选择。时间已经验证了它的强大。
2 大专院校开设C语言存在的问题
C语言是计算机学科中的一门专业理论基础课,它既有很强的理论性,又具有很强的实践性,同时又具有相当的难度和枯燥性[2]。在教学中,职业院校一般采用传统的教学模式,教师逐一讲解知识点,给出程序,学生模仿练习,既不能充分利用现代教学手段,又不能激发学生学习兴趣,尤其是在课程开始阶段学习基础语法时,各种各样的表达式让学生慢慢失去了对学好C语言的信心,对后期的课程核心学习算法更是望而止步。另外职业院校学生学习主动性普便偏低,对较难的知识没有求知欲望,在课前很少按照教师的要求进行预习,课后的练习巩固更是无从谈起。因此,在C语言教学过程中要改变传统的教学方法,既要求教师准确把握授课内容,也要求教师多应用灵活多样的教学方法,培养学生们的学习兴趣,主动去学习,以此提高教学质量[3]。
3 多种教学方法在C语言教学中的运用
3.1 猜想法
就是在讲解新知识点过程中,利用大家学过的知识,给出某个程序,让大家猜出答案。一旦出错,教师便将相关的知识介绍出来,让学生们的知识框架得到进一步的完善。适用范围:较简单的知识点的讲解。优点:激发学生的学习兴趣,让学生参与其中。
例证一:定义结构体
Struct
{
char a;
int b;
double c;
}sa;
因为学生们在之前的学习中都知道sizeof(char)=1;sizeof(int)=4;sizeof(double)=8;所以老师请大家猜一猜sizeof(sa)是多少,大家很容易猜出了一个答案:应该等于1+4+8=13.上机操作后知道答案是16.于是老师讲解了一个概念:数据对齐。就是为了加快CPU的存取速度,C++编译器在处理数据时经常把结构体变量中的成员的大小按照4或8的倍数计算,并不是程序的错误,而是编译器为了使数据对齐而在结构中加上了3个字节的空位造成的,这样做可能会稍微浪费一点内存,但却换来效率的大幅提高。
同学们立刻明白了这个规则,老师马上又给出这个结构体
Struct
{
int a;
double c;
char b;
}sb;
按照刚才的规则,sizeof(sb)=16才对。但同学们上机操作发现结果却是24.看来大家又猜错了。如果这些知识教师只是平铺直叙的告诉大家规则,学生们对C语言的兴趣就会越来越低,因为他们变成了接收器,在不断的接受来自教师的各种概念和规则,如果让学生们参与其中,猜想可能的答案,猜对的同学会很有成就感,从而继续努力,才能使自己在下一次表现中胜出。而猜错的同学也会不断努力,怎样才能知道正确的结果呢。在刚才的两个结构体中,sa以4字节为单位,char a和int b各占四个字节,构成8个字节,刚好和double c 8个字节对齐。而在sb中,如果仍然是4字节为单位,int a是4字节,double c为8个字节,char b也是4个字节,没有做到真正的对齐。所以给每个变量都赋予8个字节才能做到数据对齐。可见系统是根据结构体中所包含的类型的大者制定分配空间的单位的。
最后给出这个结构体
Struct
{
int a;
int b;
double c;
char d;
char e;
}sc;
大家就能异口同声的猜出sizeof(sc)=24.
3.2 类比法
由于计算机科学技术发展的最初愿望和最终目标都是模拟与实现人的思维过程,并使计算机系统成为人的延伸,所以它的许多理论与算法实际上是在人的思维基础上得到创建与发展的。根据这个特点,老师就可以将课程中的不少难于讲解且又难于理解的原理、算法同人的思维方式、对事物的处理方法以及人与人之间的关系联系起来,用一些与学生生活中密切相关的实例来讲解算法和思路。运用一些生动、形象的比喻帮助学生理解,激发学生学习的兴趣[4]。
我们很多人都有玩游戏的经历,大家都知道玩游戏的时候需要知道许多游戏规则,但是每个玩游戏的人都不觉得游戏规则繁琐,也不觉得玩游戏累。原因在于,先知道大概规则就可以玩游戏了,在玩的过程中,就会对游戏规则越来越熟悉。而我们学习C语言,也是先学习C的规则,然后知道规则后写出一个程序。但大家都觉得学习C语言很累,而玩游戏则一点都没有累的感觉。根据这个现象,我们老师可以思考一下,如果在讲C语言知识点的时候,尽可能像介绍游戏规则一样,简洁精练,不过于详细,就不会使学生们觉得C语言这门课程枯燥难懂。在了解了最重要的知识点后,编写一些经典程序,某些深入的细节,在程序出错后再详细讲解,效果会很好。 类比法在讲解概念时也有很好的作用。例如在讲解栈时,可以把栈比喻成一个箱子,规则就是后存放的先取,先存放的后取。如果我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。在讲解指针时,我们把指针类比成一把钥匙,如果想访问某一个内存空间,这个内存空间就像一个房间,只要我们知道了钥匙的所在,就可以轻易的进入某个房间。
3.3 “礼包”法
通常在学习过程中,如果学习到的知识能解决学生们生活中的一些实际问题,学生们就会从心里认为这门课程很实用,也会下决心努力学习知识,即使知识点再多,学生们也愿意花时间去研究它。所以我们可以把目前班级的某种需求叙述出来,把实现这种需求的系统作为“成果”当礼包送给学生,可以给出系统的基本的构架。学生只能自己去做这个“礼包”,而不是简单的拷贝。并且让学生知道,只要努力,这个“礼包”是可以得到的,并且为班级做出了巨大的贡献。目的是通过做“礼包”培养学生的成就感,获得继续学习的兴趣和信心。
例证二:
综合案例:学生成绩管理系统
这个案例需要在学完数组、函数、指针之后上机操作。讲的时候要根据不同层次的学生,选择设置不同难度的功能模块,也可以将案例拆分为几个阶段性目标,分阶段地逐步引导学生完成设计。这样学生就能系统地运用所学过的知识解决较为复杂的问题,将所学到的知识融会贯通。老师先将系统做好,然后向学生做了演示,并将班级分组,自由组合5人一组,并大胆的作了个许诺:“老师提供系统功能模块图,哪个小组能在三周内把这个系统用C语言编好,调试成功,考试就通过。虽然做出一个系统很难,但是只要把难点逐一分解成不同模块,不同学生选择自己擅长的模块,最终有的小组做好了“产品”。学生不仅学会了c语言,还学会解决实际问题。
4 总结
C语言课程很重要,所以众多一线老师绞尽脑汁使用多种教学方法改善教学质量,每一个知识都有最适合它的教学方法,即使再枯燥的知识只要教学有法,学生们肯定能掌握。另外我们面对的学生也在发生各种变化,需要我们随时研究学生的状态,研究使用哪种方法才能让学生们更好的掌握知识,独立的编程。在教学过程中,学生获得知识、培养能力、发展智力,老师生搬硬套某种教学方法肯定行不通,而是要根据教學内容、学生特点等因素综合考虑,灵活地选用合适的教学方法,或将多种教学方法优化组合,达到最佳教学效果[5]。
参考文献:
[1]谭浩强,张基温.C语言程序设计教程(3版)[M].北京高等教育出版社,2006.
[2]姜大源.职业教育学研究新论[M].北京:教育科学出版社,2010.
[3]朱鸣华,刘旭麟,杨微.C语言程序设计教程(第二版)[M].北京:机械工业出版社,2011.
[4]王丽.建构主义教学理论在美国的应用以及对教改的启示[J].潍坊高等职业教育,2009.
[5]李学会.C程序设计教学改革与实践[J].实验室科学,2010(2).
作者简介:王明菊(1981-),女,辽宁辽阳人,讲师。
作者单位:辽宁建筑职业学院,辽宁辽阳 111000
关键词:C语言;教学方法;教学质量
中图分类号:TP312.1-4
1 C语言的优势
C語言简洁紧凑、灵活方便,一共只有32个关键字,9种控制语句,程序书写形式自由;运算符数据类型丰富;表达方式灵活实用;允许直接访问物理地址,对硬件进行操作,把高级语言的基本结构和语句与低级语言的实用性结合起来;生成目标代码质量高,程序执行效率高;可移植性好,表达力强;另外C语言具有强大的图形功能,支持多种显示器和驱动器[1]。且计算功能、逻辑判断功能强大。C语言的这些优势,使它从1972开始问世以来,长时间位于程序使用排行榜的前三名,它的光辉,没有被任何新生的程序语言所遮盖。所以想学好程序设计,学习C语言是最好的选择。时间已经验证了它的强大。
2 大专院校开设C语言存在的问题
C语言是计算机学科中的一门专业理论基础课,它既有很强的理论性,又具有很强的实践性,同时又具有相当的难度和枯燥性[2]。在教学中,职业院校一般采用传统的教学模式,教师逐一讲解知识点,给出程序,学生模仿练习,既不能充分利用现代教学手段,又不能激发学生学习兴趣,尤其是在课程开始阶段学习基础语法时,各种各样的表达式让学生慢慢失去了对学好C语言的信心,对后期的课程核心学习算法更是望而止步。另外职业院校学生学习主动性普便偏低,对较难的知识没有求知欲望,在课前很少按照教师的要求进行预习,课后的练习巩固更是无从谈起。因此,在C语言教学过程中要改变传统的教学方法,既要求教师准确把握授课内容,也要求教师多应用灵活多样的教学方法,培养学生们的学习兴趣,主动去学习,以此提高教学质量[3]。
3 多种教学方法在C语言教学中的运用
3.1 猜想法
就是在讲解新知识点过程中,利用大家学过的知识,给出某个程序,让大家猜出答案。一旦出错,教师便将相关的知识介绍出来,让学生们的知识框架得到进一步的完善。适用范围:较简单的知识点的讲解。优点:激发学生的学习兴趣,让学生参与其中。
例证一:定义结构体
Struct
{
char a;
int b;
double c;
}sa;
因为学生们在之前的学习中都知道sizeof(char)=1;sizeof(int)=4;sizeof(double)=8;所以老师请大家猜一猜sizeof(sa)是多少,大家很容易猜出了一个答案:应该等于1+4+8=13.上机操作后知道答案是16.于是老师讲解了一个概念:数据对齐。就是为了加快CPU的存取速度,C++编译器在处理数据时经常把结构体变量中的成员的大小按照4或8的倍数计算,并不是程序的错误,而是编译器为了使数据对齐而在结构中加上了3个字节的空位造成的,这样做可能会稍微浪费一点内存,但却换来效率的大幅提高。
同学们立刻明白了这个规则,老师马上又给出这个结构体
Struct
{
int a;
double c;
char b;
}sb;
按照刚才的规则,sizeof(sb)=16才对。但同学们上机操作发现结果却是24.看来大家又猜错了。如果这些知识教师只是平铺直叙的告诉大家规则,学生们对C语言的兴趣就会越来越低,因为他们变成了接收器,在不断的接受来自教师的各种概念和规则,如果让学生们参与其中,猜想可能的答案,猜对的同学会很有成就感,从而继续努力,才能使自己在下一次表现中胜出。而猜错的同学也会不断努力,怎样才能知道正确的结果呢。在刚才的两个结构体中,sa以4字节为单位,char a和int b各占四个字节,构成8个字节,刚好和double c 8个字节对齐。而在sb中,如果仍然是4字节为单位,int a是4字节,double c为8个字节,char b也是4个字节,没有做到真正的对齐。所以给每个变量都赋予8个字节才能做到数据对齐。可见系统是根据结构体中所包含的类型的大者制定分配空间的单位的。
最后给出这个结构体
Struct
{
int a;
int b;
double c;
char d;
char e;
}sc;
大家就能异口同声的猜出sizeof(sc)=24.
3.2 类比法
由于计算机科学技术发展的最初愿望和最终目标都是模拟与实现人的思维过程,并使计算机系统成为人的延伸,所以它的许多理论与算法实际上是在人的思维基础上得到创建与发展的。根据这个特点,老师就可以将课程中的不少难于讲解且又难于理解的原理、算法同人的思维方式、对事物的处理方法以及人与人之间的关系联系起来,用一些与学生生活中密切相关的实例来讲解算法和思路。运用一些生动、形象的比喻帮助学生理解,激发学生学习的兴趣[4]。
我们很多人都有玩游戏的经历,大家都知道玩游戏的时候需要知道许多游戏规则,但是每个玩游戏的人都不觉得游戏规则繁琐,也不觉得玩游戏累。原因在于,先知道大概规则就可以玩游戏了,在玩的过程中,就会对游戏规则越来越熟悉。而我们学习C语言,也是先学习C的规则,然后知道规则后写出一个程序。但大家都觉得学习C语言很累,而玩游戏则一点都没有累的感觉。根据这个现象,我们老师可以思考一下,如果在讲C语言知识点的时候,尽可能像介绍游戏规则一样,简洁精练,不过于详细,就不会使学生们觉得C语言这门课程枯燥难懂。在了解了最重要的知识点后,编写一些经典程序,某些深入的细节,在程序出错后再详细讲解,效果会很好。 类比法在讲解概念时也有很好的作用。例如在讲解栈时,可以把栈比喻成一个箱子,规则就是后存放的先取,先存放的后取。如果我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。在讲解指针时,我们把指针类比成一把钥匙,如果想访问某一个内存空间,这个内存空间就像一个房间,只要我们知道了钥匙的所在,就可以轻易的进入某个房间。
3.3 “礼包”法
通常在学习过程中,如果学习到的知识能解决学生们生活中的一些实际问题,学生们就会从心里认为这门课程很实用,也会下决心努力学习知识,即使知识点再多,学生们也愿意花时间去研究它。所以我们可以把目前班级的某种需求叙述出来,把实现这种需求的系统作为“成果”当礼包送给学生,可以给出系统的基本的构架。学生只能自己去做这个“礼包”,而不是简单的拷贝。并且让学生知道,只要努力,这个“礼包”是可以得到的,并且为班级做出了巨大的贡献。目的是通过做“礼包”培养学生的成就感,获得继续学习的兴趣和信心。
例证二:
综合案例:学生成绩管理系统
这个案例需要在学完数组、函数、指针之后上机操作。讲的时候要根据不同层次的学生,选择设置不同难度的功能模块,也可以将案例拆分为几个阶段性目标,分阶段地逐步引导学生完成设计。这样学生就能系统地运用所学过的知识解决较为复杂的问题,将所学到的知识融会贯通。老师先将系统做好,然后向学生做了演示,并将班级分组,自由组合5人一组,并大胆的作了个许诺:“老师提供系统功能模块图,哪个小组能在三周内把这个系统用C语言编好,调试成功,考试就通过。虽然做出一个系统很难,但是只要把难点逐一分解成不同模块,不同学生选择自己擅长的模块,最终有的小组做好了“产品”。学生不仅学会了c语言,还学会解决实际问题。
4 总结
C语言课程很重要,所以众多一线老师绞尽脑汁使用多种教学方法改善教学质量,每一个知识都有最适合它的教学方法,即使再枯燥的知识只要教学有法,学生们肯定能掌握。另外我们面对的学生也在发生各种变化,需要我们随时研究学生的状态,研究使用哪种方法才能让学生们更好的掌握知识,独立的编程。在教学过程中,学生获得知识、培养能力、发展智力,老师生搬硬套某种教学方法肯定行不通,而是要根据教學内容、学生特点等因素综合考虑,灵活地选用合适的教学方法,或将多种教学方法优化组合,达到最佳教学效果[5]。
参考文献:
[1]谭浩强,张基温.C语言程序设计教程(3版)[M].北京高等教育出版社,2006.
[2]姜大源.职业教育学研究新论[M].北京:教育科学出版社,2010.
[3]朱鸣华,刘旭麟,杨微.C语言程序设计教程(第二版)[M].北京:机械工业出版社,2011.
[4]王丽.建构主义教学理论在美国的应用以及对教改的启示[J].潍坊高等职业教育,2009.
[5]李学会.C程序设计教学改革与实践[J].实验室科学,2010(2).
作者简介:王明菊(1981-),女,辽宁辽阳人,讲师。
作者单位:辽宁建筑职业学院,辽宁辽阳 111000