论文部分内容阅读
摘 要:《C语言程序设计》是高校计算机类专业开设的一门非常重要的专业课程,学生普遍反映难学、难懂,理论与实践脱节,所以很难调动学生的学习积极性,让学生学有所得。笔者通过多年的教学经验,对教学内容、教学手段、教学方法进行了一些改革探索,取得了一定的教学效果,在此进行简单的总结。
关键词:C语言 程序设计 教学 改革
中图分类号:G43 文献标识码:A 文章编号:1673-9795(2011)02(b)-0066-01
《C语言程序设计》作为计算机类专业的一门专业基础课,是学生学习《面向对象程序设计》、《GUI编程设计》等课程的基础。《C语言程序设计》集抽象性、逻辑性、实践性于一身,主要是培养学生分析问题、解决问题的能力和程序设计过程理念。C语言有着其它高级程序设计语言不可比拟的优点,但对于学生而言,却感觉既抽象又枯燥无味,不能真正理解程序设计的精髓,进而普遍反映C语言难学。如何借鉴先进的教育理论和技术,转变教师角色,真正确立学生学习的主体地位,充分调动学生学习积极性,成为教学改革当务之急。笔者根据多年的程序设计课程的教学实践,对《C语言程序设计》课程从教学内容、教学手段、教学方法等方面进行了改革探索,并取得较好的教学效果。
1 教学内容的改革
以谭浩强主编的《C语言程序设计》为例,教学内容主要包括算法、数据类型、三种基本结构、数组、函数、指针、预处理命令、结构体与共同体、位运算、文件等。教材在内容组织上,虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大;概念讲得多,分析少;语言深硬,不够形象,较难理解。而且各章节举的一些编程例子,对学生掌握的数学知识要求较高、难度较大。笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了调整,将一些比较经典的例子进行详细讲解,将一些过繁过深的例子和习题进行省略,而且将教材中只简单进行讲解的算法部分进行详细讲解,并且在后面各章节的程序举例中贯穿算法设计的思想,避免学生出现老师讲时都懂,一旦自己动手就不知从何下手的情况发生,要让学生知其然还要知其所以然。而且针对学校要求学生必须过计算机二级的要求,将历年二级C语言程序设计等级考试的一些题目穿插在教学内容和实验内容中。按照“实际、实用、实践”的原则组织教学内容,遵循先易后难、先具体后抽象的原则进行教学。
2 教学手段的改革
由于受学生之前的学校条件、自我学习能力以及多方面原因的影响,学生水平参差不齐;而本门课程一般都安排在多媒体教室进行授课,信息传播量一般比较大,所以在课堂教学过程中很难满足所有不同水平的学生学习需求,“吃不饱”和“吃不下”问题严重影响学生学习积极性。笔者考虑到课程的特点以及学生的情况,扬长避短,将传统教学与多媒体教学进行了有机的结合。除了将授课的课件设计得能够更加符合学生的学习需求、吸引学生的学习兴趣外,对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果。而且笔者还根据不同学生的具体情况和知识结构进行教学设计,依据学生对知识的不同掌握情况,把学生分为不同的层或组,并了解不同层次的学生对本门课知识的掌握情况和兴趣,利用网络资源,建立一个以本门课程为专题的学习网站,将各层次学生的不同学习需要都包含在其中,让所有的学生都可以在课后恰当的时间选择合适自己的内容进行学习,并且对每层的学生都能够提供帮助辅导或者能力的提升,并且可以与教师进行一对一或者一对多的交流。
3 教学方法的改革
俗话说:“教无定法,学无定法。”笔者在教学实践中,除了采用传统的教学方法如:讲授法、提问法、小组讨论法外,主要采用了以下教学方法。
3.1 学案法
为了帮助学生理解课堂内容,在讲授新课之前都会提前下发一个学案,学案包括四个方面的内容:一是学习目标:将本次课的教学目标、重点、难点一一列出,让学生了解学习内容及完成学习后所要达成的目标,重点难点的设置是为了帮助学生更好地预见学习中可能存在的问题,加强学习中的关注力度。二是学习过程:对本次课的基本内容进行分步讲解描述。在讲解内容的编排上力求细致到位,对程序设计的例子都给出算法流程图和程序的大部分代码,关键部分空出来,让学生通过预习将基本概念自学一遍,然后试着在程序代码空着的地方填空并将程序代码进行试运行。要求在自己不能理解或者无法独立完成的地方进行标注,在教师讲授时加强学习。三是拓展练习:给出一些在之前的学习内容基础上更进一步的练习要求,设置两到三个难易层度递进的练习,分为必做和选做题,每个练习都给出了简单的提示或者算法分析,让学生根据自己的学习能力选择独立完成其中的必做题目或者全部练习。四是总结与反思:这部分是让学生在完成了前面的练习后对本次课自己的收获以及不足进行总结。
3.2 错例分析法
学生对各知识点的掌握需要一个过程,对算法和数据结构的掌握需要不断积累。学习过程中,能听懂老师授课的内容,但自己编制的程序往往错误百出。课堂上,笔者经常将容易出错的概念以反例形式展示给学生,或者将发现的学生比较典型的错误例子展示给学生,让他们找出错误,并且分析错误原因,然后纠正错误直到通过运行。在这个过程中引导学生积极的参与找错、纠错过程。通过诸如此类的反例教学,使学生豁然开朗,印象深刻。
3.3 实践教学法
程序设计课程的实践性很强,“精讲多练”是程序设计课程教学的一大特点,学生只听、看、读是学不会的,只有让学生多动脑、多动手、多实践,通过编写调试大量的程序,才能使学生从中理解程序设计的思想方法、积累程序调试的经验,体会成功的喜悦,从而激发学生的学习兴趣。因此笔者将实验内容进行了精心的设计,实验题目尽量选择贴近实际需要,又能够让学生感兴趣,并且能够运用所学知识解决的题目。实验题目一般分为基本题和综合题,综合题目中又包括必做题和选做题。基本题主要包含本周理论课上的知识点,尽量避免涉及其它章节的知识。综合性题目尽量引用前面的课程设计内容,以便加深对前面所学知识的理解;选做题目还包括对后面章节的内容的引用,可以由学有余力的学生选择自己独立完成或者与其他同学分工协作完成,从而进一步培养学生分析问题、解决问题、研究和探索问题的能力和团队协作精神。
上述教学内容、教学手段与教学方法的改革,是根据笔者在实际教学过程中学生存在的问题提出的,并已经在教学实践中运用,取得了良好的教学效果。当然,还有许多环节需要完善,还有许多知识需要学习,笔者将继续努力探索,以期能够最大限度的调动学生的学习积极性,提高学生的学习能力及实践应用能力,使《C语言程序设计》课程教学日趋完善,从而使本门课程的教学质量得到不断的提高。
参考文献
[1] 谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2005,7.
[2] 高亚军.学案导学法[M].北京:中国科学技术出版社,2002.
关键词:C语言 程序设计 教学 改革
中图分类号:G43 文献标识码:A 文章编号:1673-9795(2011)02(b)-0066-01
《C语言程序设计》作为计算机类专业的一门专业基础课,是学生学习《面向对象程序设计》、《GUI编程设计》等课程的基础。《C语言程序设计》集抽象性、逻辑性、实践性于一身,主要是培养学生分析问题、解决问题的能力和程序设计过程理念。C语言有着其它高级程序设计语言不可比拟的优点,但对于学生而言,却感觉既抽象又枯燥无味,不能真正理解程序设计的精髓,进而普遍反映C语言难学。如何借鉴先进的教育理论和技术,转变教师角色,真正确立学生学习的主体地位,充分调动学生学习积极性,成为教学改革当务之急。笔者根据多年的程序设计课程的教学实践,对《C语言程序设计》课程从教学内容、教学手段、教学方法等方面进行了改革探索,并取得较好的教学效果。
1 教学内容的改革
以谭浩强主编的《C语言程序设计》为例,教学内容主要包括算法、数据类型、三种基本结构、数组、函数、指针、预处理命令、结构体与共同体、位运算、文件等。教材在内容组织上,虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大;概念讲得多,分析少;语言深硬,不够形象,较难理解。而且各章节举的一些编程例子,对学生掌握的数学知识要求较高、难度较大。笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了调整,将一些比较经典的例子进行详细讲解,将一些过繁过深的例子和习题进行省略,而且将教材中只简单进行讲解的算法部分进行详细讲解,并且在后面各章节的程序举例中贯穿算法设计的思想,避免学生出现老师讲时都懂,一旦自己动手就不知从何下手的情况发生,要让学生知其然还要知其所以然。而且针对学校要求学生必须过计算机二级的要求,将历年二级C语言程序设计等级考试的一些题目穿插在教学内容和实验内容中。按照“实际、实用、实践”的原则组织教学内容,遵循先易后难、先具体后抽象的原则进行教学。
2 教学手段的改革
由于受学生之前的学校条件、自我学习能力以及多方面原因的影响,学生水平参差不齐;而本门课程一般都安排在多媒体教室进行授课,信息传播量一般比较大,所以在课堂教学过程中很难满足所有不同水平的学生学习需求,“吃不饱”和“吃不下”问题严重影响学生学习积极性。笔者考虑到课程的特点以及学生的情况,扬长避短,将传统教学与多媒体教学进行了有机的结合。除了将授课的课件设计得能够更加符合学生的学习需求、吸引学生的学习兴趣外,对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果。而且笔者还根据不同学生的具体情况和知识结构进行教学设计,依据学生对知识的不同掌握情况,把学生分为不同的层或组,并了解不同层次的学生对本门课知识的掌握情况和兴趣,利用网络资源,建立一个以本门课程为专题的学习网站,将各层次学生的不同学习需要都包含在其中,让所有的学生都可以在课后恰当的时间选择合适自己的内容进行学习,并且对每层的学生都能够提供帮助辅导或者能力的提升,并且可以与教师进行一对一或者一对多的交流。
3 教学方法的改革
俗话说:“教无定法,学无定法。”笔者在教学实践中,除了采用传统的教学方法如:讲授法、提问法、小组讨论法外,主要采用了以下教学方法。
3.1 学案法
为了帮助学生理解课堂内容,在讲授新课之前都会提前下发一个学案,学案包括四个方面的内容:一是学习目标:将本次课的教学目标、重点、难点一一列出,让学生了解学习内容及完成学习后所要达成的目标,重点难点的设置是为了帮助学生更好地预见学习中可能存在的问题,加强学习中的关注力度。二是学习过程:对本次课的基本内容进行分步讲解描述。在讲解内容的编排上力求细致到位,对程序设计的例子都给出算法流程图和程序的大部分代码,关键部分空出来,让学生通过预习将基本概念自学一遍,然后试着在程序代码空着的地方填空并将程序代码进行试运行。要求在自己不能理解或者无法独立完成的地方进行标注,在教师讲授时加强学习。三是拓展练习:给出一些在之前的学习内容基础上更进一步的练习要求,设置两到三个难易层度递进的练习,分为必做和选做题,每个练习都给出了简单的提示或者算法分析,让学生根据自己的学习能力选择独立完成其中的必做题目或者全部练习。四是总结与反思:这部分是让学生在完成了前面的练习后对本次课自己的收获以及不足进行总结。
3.2 错例分析法
学生对各知识点的掌握需要一个过程,对算法和数据结构的掌握需要不断积累。学习过程中,能听懂老师授课的内容,但自己编制的程序往往错误百出。课堂上,笔者经常将容易出错的概念以反例形式展示给学生,或者将发现的学生比较典型的错误例子展示给学生,让他们找出错误,并且分析错误原因,然后纠正错误直到通过运行。在这个过程中引导学生积极的参与找错、纠错过程。通过诸如此类的反例教学,使学生豁然开朗,印象深刻。
3.3 实践教学法
程序设计课程的实践性很强,“精讲多练”是程序设计课程教学的一大特点,学生只听、看、读是学不会的,只有让学生多动脑、多动手、多实践,通过编写调试大量的程序,才能使学生从中理解程序设计的思想方法、积累程序调试的经验,体会成功的喜悦,从而激发学生的学习兴趣。因此笔者将实验内容进行了精心的设计,实验题目尽量选择贴近实际需要,又能够让学生感兴趣,并且能够运用所学知识解决的题目。实验题目一般分为基本题和综合题,综合题目中又包括必做题和选做题。基本题主要包含本周理论课上的知识点,尽量避免涉及其它章节的知识。综合性题目尽量引用前面的课程设计内容,以便加深对前面所学知识的理解;选做题目还包括对后面章节的内容的引用,可以由学有余力的学生选择自己独立完成或者与其他同学分工协作完成,从而进一步培养学生分析问题、解决问题、研究和探索问题的能力和团队协作精神。
上述教学内容、教学手段与教学方法的改革,是根据笔者在实际教学过程中学生存在的问题提出的,并已经在教学实践中运用,取得了良好的教学效果。当然,还有许多环节需要完善,还有许多知识需要学习,笔者将继续努力探索,以期能够最大限度的调动学生的学习积极性,提高学生的学习能力及实践应用能力,使《C语言程序设计》课程教学日趋完善,从而使本门课程的教学质量得到不断的提高。
参考文献
[1] 谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2005,7.
[2] 高亚军.学案导学法[M].北京:中国科学技术出版社,2002.