论文部分内容阅读
摘 要:国内外绝大多数高校都将C语言作为第一门程序设计课程,且在大一上学期开设。多数学生都认为这门课程学起来非常困难。通过调查研究,发现其中一个重要的原因是讲授方法存在不足。例如:物理概念没有讲清楚,用术语来解释术语,导致学生连自己要研究的对象都不清楚,编程就更无从下手。本文针对这些问题和不足,提出一些新的教学方法改革思路。通过几年的教学实践证明,这种教学模式更有利于学生接受,教学效果显著。
关键词:C语言;教学方法;教学实践
中图分类号:TP3-4
C语言是早期最经典、最强大的面向过程的程序设计语言之一,目前国内外很多高校都将其作为程序设计的入门课程,它是开启程序设计大门的钥匙,是通往C++、JAVA、C#等其他语言世界的桥梁。如此举足轻重的一门课程,如何讲授好它,是各大高校迫切需要解决的一个难题。结合几年的教学实践,本文认为要想讲好C语言课程,需要做到以下几点:
1 明确C语言中的物理概念
要研究一个东西,就必须先搞清楚这个东西是什么,有什么用途以及如何使用。例如:学生要学习C语言,就需要了解C语言是什么?有什么用途?众所周知,计算机只能直接识别和处理二进制码,如:“01110110”,而人类又很难看懂这些二进制码的含义。因此我们需要一种介于人类的自然语言和二进制码之间的语言来实现人类和计算机之间的交流。这种语言既能让人类看懂,又能被翻译成二进制,供计算机识别。C预言就是这种中间语言,它就是人和计算机之间的翻译(如图1所示)。C语言中的其他物理概念也一样,只有学生真正理解了它们的含义,才能够树立进一步学习的信心。
图1 C语言的作用
2 将C语言看作一门外语
2.1 对比理解
触类旁通,用学生熟悉的英语来对比C语言,会拉近初学者对C语言的认识距离。例如:C语言是英语,C语言程序是英语文章。算法就是写英语文章的思路;数据类型就是单词的类型,像动词、名词等;运算符和表达式就是短语;顺序、选择、循环结构就是语法结构。通过一系列的对比,就会让学生对这门课的内容有个基本的了解。
2.2 细致入微
学生首次接触C语言,所接触到的内容,包括标点符号都要全部了解清楚。例如:第一个程序中所涉及的“#include”,要全部拆开。其中“#”是指在程序运行之前要处理;“include”是包含;“<>”是查找文件从系统标准目录下查找;“std”是standard(标准);“i”是input(输入);“o”是output(输出);“.h”是指后缀名为head(头文件)。组合起来的意思是:在程序运行之前先将标准输入输出头文件包含进来。在图2中对其作用作具体解释。图2的test.c文件中,已知x的值是4,求函数f(x)是多少。求f(x)的值,必须知道f(x)跟x之间的定义公式。f(x)的定义在stdio.h文件中,所以要使用f(x)的定义,就可以通过文件包含命令,把文件stdio.h复制一份到test.c文件中。这样在test.c中,就相当于先说明f(x)=x+1;然后x=4;就可求得对应的f(x)=f(4)=4+1=5。
图2 用数学函数来类比printf函数
2.3 活学活用
汉语、英语中要表达一个意思,都可以有多种方法。C语言要实现一个功能也可以采用不同的方法,一定要启发学生多问为什么,才能让学生达到活学活用,真正地掌握知识。例如:别人的程序中有“inta;a=3;”,这样写是什么意思,能不能换成“inta=3;”?两者的区别是什么?变换过后对程序有没有影响?结果是否一致?(答案:前者是先定义后赋值,后者是定义的同时赋值,即:初始化,两者的最终结果是一致的。)
3 运用生活实例将C语言形象化
再精辟、严谨的理论知识,没有生动形象的例子,都显得比较空洞。因此在课堂上可以利用一些生活实例来加深学生对概念的认识。例如:以时钟指针行走来解释数据溢出。如果只考虑整点的情况,时针的指向范围是:1至12。假设现在是12点,加上1小时,等于13点,超出了时针的指向范围,就会使时针指向范围内最小的位置:1点。再假设现在是1点,若减去1小时,会使时针指向范围内最大的位置12。C语言中的数据类型跟时钟一样都有自己的表示范围,相应地,它的规则也跟时钟类似。例如:short类型在32位的计算机,VC6.0环境下表示范围是-32768至32767,如果给short类型的变量一个超出它表示范围内的值,例如:32768,实际它接收到的就是范围里面最小的-32768。同理,如果给short类型的变量一个较小的值,例如:-32769,实际该变量的值是32767。有了这样的实例就可以很好地帮助学生理解数据溢出。
4 实践是检验真理的唯一标准
在实践中获取真理,在实践中检验真理。C语言是一门实用性很强的课程,一定要让学生自己上机编写程序。上机操作非常直观,许多课堂上不清楚的问题,通过上机操作可迎刃而解。教师给出题目,让学生在有目标明确的情况下,独立分析、调试,、寻找解决的方法,把学习的主动权还给学生,让其真正成为学习的主人。
5 小结
在授课过程中,尽量使用通俗易懂的语言,结合生活中的实例,将每个知识点都讲细。课件中多利用flash动画、图片来丰富教学内容,提高学生的学习兴趣。灵活运用其他学科,如:英语、数学的相关知识,帮助学生理解问题。理论结合实践,培养学生发现问题、分析问题和解决问题的能力,真正实现有效教学。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2008:1-378.
[2]陈良银,游洪跃.C语言程序设计(C99版)[M].北京:清华大学出版社,2007:1-138.
[3]王继民.ToolstomakeCprogramssafe:adeeperstudy[J].浙江大学学报(英文版),2005,1:88-91.
作者简介:周红(1982-),女,河北邯郸人,四川大学锦城学院电子信息工程系讲师。
关键词:C语言;教学方法;教学实践
中图分类号:TP3-4
C语言是早期最经典、最强大的面向过程的程序设计语言之一,目前国内外很多高校都将其作为程序设计的入门课程,它是开启程序设计大门的钥匙,是通往C++、JAVA、C#等其他语言世界的桥梁。如此举足轻重的一门课程,如何讲授好它,是各大高校迫切需要解决的一个难题。结合几年的教学实践,本文认为要想讲好C语言课程,需要做到以下几点:
1 明确C语言中的物理概念
要研究一个东西,就必须先搞清楚这个东西是什么,有什么用途以及如何使用。例如:学生要学习C语言,就需要了解C语言是什么?有什么用途?众所周知,计算机只能直接识别和处理二进制码,如:“01110110”,而人类又很难看懂这些二进制码的含义。因此我们需要一种介于人类的自然语言和二进制码之间的语言来实现人类和计算机之间的交流。这种语言既能让人类看懂,又能被翻译成二进制,供计算机识别。C预言就是这种中间语言,它就是人和计算机之间的翻译(如图1所示)。C语言中的其他物理概念也一样,只有学生真正理解了它们的含义,才能够树立进一步学习的信心。
图1 C语言的作用
2 将C语言看作一门外语
2.1 对比理解
触类旁通,用学生熟悉的英语来对比C语言,会拉近初学者对C语言的认识距离。例如:C语言是英语,C语言程序是英语文章。算法就是写英语文章的思路;数据类型就是单词的类型,像动词、名词等;运算符和表达式就是短语;顺序、选择、循环结构就是语法结构。通过一系列的对比,就会让学生对这门课的内容有个基本的了解。
2.2 细致入微
学生首次接触C语言,所接触到的内容,包括标点符号都要全部了解清楚。例如:第一个程序中所涉及的“#include
图2 用数学函数来类比printf函数
2.3 活学活用
汉语、英语中要表达一个意思,都可以有多种方法。C语言要实现一个功能也可以采用不同的方法,一定要启发学生多问为什么,才能让学生达到活学活用,真正地掌握知识。例如:别人的程序中有“inta;a=3;”,这样写是什么意思,能不能换成“inta=3;”?两者的区别是什么?变换过后对程序有没有影响?结果是否一致?(答案:前者是先定义后赋值,后者是定义的同时赋值,即:初始化,两者的最终结果是一致的。)
3 运用生活实例将C语言形象化
再精辟、严谨的理论知识,没有生动形象的例子,都显得比较空洞。因此在课堂上可以利用一些生活实例来加深学生对概念的认识。例如:以时钟指针行走来解释数据溢出。如果只考虑整点的情况,时针的指向范围是:1至12。假设现在是12点,加上1小时,等于13点,超出了时针的指向范围,就会使时针指向范围内最小的位置:1点。再假设现在是1点,若减去1小时,会使时针指向范围内最大的位置12。C语言中的数据类型跟时钟一样都有自己的表示范围,相应地,它的规则也跟时钟类似。例如:short类型在32位的计算机,VC6.0环境下表示范围是-32768至32767,如果给short类型的变量一个超出它表示范围内的值,例如:32768,实际它接收到的就是范围里面最小的-32768。同理,如果给short类型的变量一个较小的值,例如:-32769,实际该变量的值是32767。有了这样的实例就可以很好地帮助学生理解数据溢出。
4 实践是检验真理的唯一标准
在实践中获取真理,在实践中检验真理。C语言是一门实用性很强的课程,一定要让学生自己上机编写程序。上机操作非常直观,许多课堂上不清楚的问题,通过上机操作可迎刃而解。教师给出题目,让学生在有目标明确的情况下,独立分析、调试,、寻找解决的方法,把学习的主动权还给学生,让其真正成为学习的主人。
5 小结
在授课过程中,尽量使用通俗易懂的语言,结合生活中的实例,将每个知识点都讲细。课件中多利用flash动画、图片来丰富教学内容,提高学生的学习兴趣。灵活运用其他学科,如:英语、数学的相关知识,帮助学生理解问题。理论结合实践,培养学生发现问题、分析问题和解决问题的能力,真正实现有效教学。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2008:1-378.
[2]陈良银,游洪跃.C语言程序设计(C99版)[M].北京:清华大学出版社,2007:1-138.
[3]王继民.ToolstomakeCprogramssafe:adeeperstudy[J].浙江大学学报(英文版),2005,1:88-91.
作者简介:周红(1982-),女,河北邯郸人,四川大学锦城学院电子信息工程系讲师。