论文部分内容阅读
C语言是计算机专业学生的必修课程,且是近些年在国内外都得到迅速推广应用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。鉴于此,很多高校,尤其是高职院校,都将其作为计算机程序设计类课程的基础课。它对培养学生的逻辑思维能力、理解能力、自学能力等方面,都有着很重要的作用,对数据结构、单片机等后续课程的理解和学习都有很大的帮助。笔者在教学中越来越感觉到教师在教学过程中的主导作用。教师不仅要有很高的业务水平,还要具备很好的教学能力。
一、C语言与其他语言的教学比较
所有计算机高级语言课的教学,均包含两个主要目标:一是语言环境和语言手段;二是与一定数据结构相结合的典型算法。C语言也不例外。从算法设计的角度看,各种语言在解决同一问题时,其思路不会有太大的差别,因此,这一块内容在教学上差别不大,学过一种语言以后再去学别的语言,其难度会大大降低;但是,从算法实现的角度来看,不同的语言有着不同的设计背景和设计目的,其应用环境和应用手段有差别,有时差别还很大。
在学习C语言时更强调它的背景,即设计者的初衷是用它来编写UNIX操作系统,并部分取代汇编语言。由于操作系统是管理、调度计算机软硬件资源的一个大型软件,作为实现它的语言工具的C语言没法不接近硬件。要学好C语言也没法完全躲开包括硬件在内的一些深层知识,这就要求C语言的教学与其他语言相比要有一定的深度。
二、兴趣是最好的老师
心理学认为,学习兴趣是对学习活动产生的心理上的爱好和追求的倾向,这种倾向是和一定的情感联系的。它具有相对的稳定性和较强的延续性,对某个事情的“好奇”心理,不能称为兴趣。学生有兴趣表现在他们有主动了解、积极探索的愿望上,不惜时间,不怕困难,可以集中较长的注意力。因此,在教学的过程中,教师应注意培养学生的兴趣,把握学生的兴奋点,有效地调动学生的求知欲望。
三、C语言教学采取多种教学手段与方法
在讲授基本知识,如数据类型、运算符与表达式时,因信息量大,知识点比较零碎,采用多媒体的教学方法,可以达到很好的效果;而在讲顺序、选择、循环、函数的程序设计时,采用板书式教学方法可以建立好的沟通,教学效果良好。根据内容特点合理选择教学手段,会使教学效果明显不同。
在教学方法上,著名教育家赞可夫说过:“教学法,一旦触及学生的情绪和意志领域,触及学生的精神需求,这种教学法就能发挥高度有效的作用。”教师如何改进教学方法,兼顾不同水平学生的不同需求,解决课程知识点琐碎、枯燥的现象,让绝大多数学生在有限的时间内迅速掌握课程的基本概念、基本技能和应用,是需要解决的关键问题。先进、合理的教学方法,能使学生在短时间内迅速掌握课程内容,激发学生对本课程的兴趣和热爱。
1.比喻法
比喻法教学就是通过形象生动的比喻(生活贴切的例子),让学生更好理解和掌握新知识的一种教学方法,有易接受不易忘的特点。例如,讲解变量时,对于初学的学生,笔者经常把变量比喻成一个盒子,盒子里放进什么东西,这个盒子就是什么类型的变量。C语言中很多教学内容较抽象,不易被学生接受和理解,老师应有能力化繁为简,将深奥的理论讲得通俗易懂。这就需要老师多钻研教材教法。
2.采用“任务驱动,引导教学”的课堂教学方法
在课堂讲授新的知识时,大多采用实际的案例来演示说明,并在演示说明过程中逐步引出各个相关知识点和概念。生动形象的案例中,融合了多个概念和知识点,既易激发学生的学习兴趣,又有利于学生迅速掌握抽象的概念,并使学生形成和保持对计算机技能的强烈求知欲。探索和遵循各相关知识点之间的内在联系,使教与学在循序渐进,环环相扣,优化压缩,合理安排中进行。
3.激励式教学法是动力,适当引入考核机制
考核应从两个方面入手,即创新能力和应用能力。考核时,可采用“模块化”、“任务式”的办法。“模块化”就是每学完一个模块,进行一次考核。选择结构、循环结构、数组、指针都可以做为一个模块,但模块设置不宜过大。“任务式”就是根据学生所学相应的模块知识,让学生独立完成一项“任务”,如解决一个实际应用题、完成一个小动画等。
四、C语言教学要有一定的纵向性与深度
在C语言教学过程中,任何新知识的引入,都坚持做到由浅到深、循序渐进、自然流畅,使之顺理成章。这样,一步一步引导学生思路向纵深方向发展,避免由于概念知识点不清,而影响后续知识的学习与理解。以指针教学为例:
1.引入指针概念
在引入指针概念时,注意引入计算机内部存储单元的实际存储空间模式。在一般的C语言教材中都能找到这种图。这种图示能使学生建立起连续存储空间的概念,为后续指针变量与指针运算知识的学习打下基础。汽车,建立指针与计算机内存单元一一对应的关系。C语言中的指针是指计算机内部某存储单元其固定位置的顺序编号,称之为该存储单元的地址。所以,计算机每一个存储单元都对应一个唯一的内存地址。计算机内部对内存单元的编号采用二进制数字表示,而为了表达方便,书面多用十六进制数表示。其所使用二进制位数的多少,是由内存的大小决定的。
2.引入变量指针的概念
变量指针指的是:变量数据在内存单元中的首地址。在有了第一步内容的铺垫之后,在教学中,引入变量指针的概念时,就很自然地使用了连续存储空间的模式。
在此最适合深入揭示变量的实质以及变量的两个属性,即变量名和变量值之间本质上的区别与联系。变量名,即变量所对应的内存单元的首地址。变量值,即变量所对应的内存单元的地址中所存储的数据。
这样,深化学生对有关概念的理解,使学生对变量、变量名、变量名所对应的内存单元首地址以及对应内存单元中所存储数据等内容之间的相互关系,有更深刻的认识,从而能在它们之间建立起有机联系。
五、语言课教学的其他体会
计算机语言课,不管是哪个语种,其实践性都很强。对C语言来说,因学习难度大,更要强调学生从上机实践中学习,从程序调试和各种挫折失败中学习。在教学中,讲到实例时,笔者经常现场写代码,现场调程序。这样,一方面能使学生对问题的求解过程有深刻的体会,另一方面能使学生在程序调试和编程风格上有一个学习的榜样。
算法是语言课的主要教学目标和永恒主题,有些第一语言课因学时少或其他一些原因,教师在操作时压缩算法,将重心偏离到语法规则和语言手段上。这样,不利于实现语言课的两个主要目标,不利于学生掌握实际的语言应用能力。当然,在学生方面,也有不重视算法、缺少算法锻炼的情况。这种情况多数是因为考生的算法能力太差,一定程度上也反映出语言课中算法训练环节有待进一步加强。笔者认为,语言课应该保证用于算法的基本学时,教师操作上应保证和突出最起码的算法介绍,在讲解一个新算法时,教师不应上来就讲程序,而应先讲清思路,然后分配变量角色,最后才是具体的程序设计。
语言课总免不了要举例,在举例方面,对说明语法规则和语法现象的例子追求尽量简单,对说明算法的例子追求尽量典型。除了综合演练外,所有例子都不要太过复杂,不但要举正面的例子,也要注意举反例。
(作者单位:河北省秦皇岛市高级技工学校)
一、C语言与其他语言的教学比较
所有计算机高级语言课的教学,均包含两个主要目标:一是语言环境和语言手段;二是与一定数据结构相结合的典型算法。C语言也不例外。从算法设计的角度看,各种语言在解决同一问题时,其思路不会有太大的差别,因此,这一块内容在教学上差别不大,学过一种语言以后再去学别的语言,其难度会大大降低;但是,从算法实现的角度来看,不同的语言有着不同的设计背景和设计目的,其应用环境和应用手段有差别,有时差别还很大。
在学习C语言时更强调它的背景,即设计者的初衷是用它来编写UNIX操作系统,并部分取代汇编语言。由于操作系统是管理、调度计算机软硬件资源的一个大型软件,作为实现它的语言工具的C语言没法不接近硬件。要学好C语言也没法完全躲开包括硬件在内的一些深层知识,这就要求C语言的教学与其他语言相比要有一定的深度。
二、兴趣是最好的老师
心理学认为,学习兴趣是对学习活动产生的心理上的爱好和追求的倾向,这种倾向是和一定的情感联系的。它具有相对的稳定性和较强的延续性,对某个事情的“好奇”心理,不能称为兴趣。学生有兴趣表现在他们有主动了解、积极探索的愿望上,不惜时间,不怕困难,可以集中较长的注意力。因此,在教学的过程中,教师应注意培养学生的兴趣,把握学生的兴奋点,有效地调动学生的求知欲望。
三、C语言教学采取多种教学手段与方法
在讲授基本知识,如数据类型、运算符与表达式时,因信息量大,知识点比较零碎,采用多媒体的教学方法,可以达到很好的效果;而在讲顺序、选择、循环、函数的程序设计时,采用板书式教学方法可以建立好的沟通,教学效果良好。根据内容特点合理选择教学手段,会使教学效果明显不同。
在教学方法上,著名教育家赞可夫说过:“教学法,一旦触及学生的情绪和意志领域,触及学生的精神需求,这种教学法就能发挥高度有效的作用。”教师如何改进教学方法,兼顾不同水平学生的不同需求,解决课程知识点琐碎、枯燥的现象,让绝大多数学生在有限的时间内迅速掌握课程的基本概念、基本技能和应用,是需要解决的关键问题。先进、合理的教学方法,能使学生在短时间内迅速掌握课程内容,激发学生对本课程的兴趣和热爱。
1.比喻法
比喻法教学就是通过形象生动的比喻(生活贴切的例子),让学生更好理解和掌握新知识的一种教学方法,有易接受不易忘的特点。例如,讲解变量时,对于初学的学生,笔者经常把变量比喻成一个盒子,盒子里放进什么东西,这个盒子就是什么类型的变量。C语言中很多教学内容较抽象,不易被学生接受和理解,老师应有能力化繁为简,将深奥的理论讲得通俗易懂。这就需要老师多钻研教材教法。
2.采用“任务驱动,引导教学”的课堂教学方法
在课堂讲授新的知识时,大多采用实际的案例来演示说明,并在演示说明过程中逐步引出各个相关知识点和概念。生动形象的案例中,融合了多个概念和知识点,既易激发学生的学习兴趣,又有利于学生迅速掌握抽象的概念,并使学生形成和保持对计算机技能的强烈求知欲。探索和遵循各相关知识点之间的内在联系,使教与学在循序渐进,环环相扣,优化压缩,合理安排中进行。
3.激励式教学法是动力,适当引入考核机制
考核应从两个方面入手,即创新能力和应用能力。考核时,可采用“模块化”、“任务式”的办法。“模块化”就是每学完一个模块,进行一次考核。选择结构、循环结构、数组、指针都可以做为一个模块,但模块设置不宜过大。“任务式”就是根据学生所学相应的模块知识,让学生独立完成一项“任务”,如解决一个实际应用题、完成一个小动画等。
四、C语言教学要有一定的纵向性与深度
在C语言教学过程中,任何新知识的引入,都坚持做到由浅到深、循序渐进、自然流畅,使之顺理成章。这样,一步一步引导学生思路向纵深方向发展,避免由于概念知识点不清,而影响后续知识的学习与理解。以指针教学为例:
1.引入指针概念
在引入指针概念时,注意引入计算机内部存储单元的实际存储空间模式。在一般的C语言教材中都能找到这种图。这种图示能使学生建立起连续存储空间的概念,为后续指针变量与指针运算知识的学习打下基础。汽车,建立指针与计算机内存单元一一对应的关系。C语言中的指针是指计算机内部某存储单元其固定位置的顺序编号,称之为该存储单元的地址。所以,计算机每一个存储单元都对应一个唯一的内存地址。计算机内部对内存单元的编号采用二进制数字表示,而为了表达方便,书面多用十六进制数表示。其所使用二进制位数的多少,是由内存的大小决定的。
2.引入变量指针的概念
变量指针指的是:变量数据在内存单元中的首地址。在有了第一步内容的铺垫之后,在教学中,引入变量指针的概念时,就很自然地使用了连续存储空间的模式。
在此最适合深入揭示变量的实质以及变量的两个属性,即变量名和变量值之间本质上的区别与联系。变量名,即变量所对应的内存单元的首地址。变量值,即变量所对应的内存单元的地址中所存储的数据。
这样,深化学生对有关概念的理解,使学生对变量、变量名、变量名所对应的内存单元首地址以及对应内存单元中所存储数据等内容之间的相互关系,有更深刻的认识,从而能在它们之间建立起有机联系。
五、语言课教学的其他体会
计算机语言课,不管是哪个语种,其实践性都很强。对C语言来说,因学习难度大,更要强调学生从上机实践中学习,从程序调试和各种挫折失败中学习。在教学中,讲到实例时,笔者经常现场写代码,现场调程序。这样,一方面能使学生对问题的求解过程有深刻的体会,另一方面能使学生在程序调试和编程风格上有一个学习的榜样。
算法是语言课的主要教学目标和永恒主题,有些第一语言课因学时少或其他一些原因,教师在操作时压缩算法,将重心偏离到语法规则和语言手段上。这样,不利于实现语言课的两个主要目标,不利于学生掌握实际的语言应用能力。当然,在学生方面,也有不重视算法、缺少算法锻炼的情况。这种情况多数是因为考生的算法能力太差,一定程度上也反映出语言课中算法训练环节有待进一步加强。笔者认为,语言课应该保证用于算法的基本学时,教师操作上应保证和突出最起码的算法介绍,在讲解一个新算法时,教师不应上来就讲程序,而应先讲清思路,然后分配变量角色,最后才是具体的程序设计。
语言课总免不了要举例,在举例方面,对说明语法规则和语法现象的例子追求尽量简单,对说明算法的例子追求尽量典型。除了综合演练外,所有例子都不要太过复杂,不但要举正面的例子,也要注意举反例。
(作者单位:河北省秦皇岛市高级技工学校)