论文部分内容阅读
中图分类号 G434
文献标识号 A
文章编号 1009—9646(2009)11—0013—01
摘要 C语言是大多数计算机相关专业的首选程序设计语言,是一门具有访问内存地址功能的高级语言,在底层软件开发方面具有独到的优势。本文针对《C语言程序设计》课程知识点繁多、内容复杂抽象、难教难学等特点,提出了几点改革建议,对于改善教学效果具有积极的作用。
关键词 C语言程序设计;教学改革;教学方法
《C语言程序设计》(以下简称《C语言》)是计算机相关专业的一门基础课程,是《数据结构》、《软件工程》等课程的先修课程。学好《C语言》可以为工程软件开发打下基础,对培养新型的计算机应用开发人才具有极其重要的意义。但是,由于《C语言》课程本身具有知识点繁多、内容抽象等特点,因此,在实际的教学过程中经常发现,很多学生对这门课程刚开始比较感兴趣,但随着学习的深入,渐渐觉得语法知识复杂抽象,编程不知如何下手,进而失去兴趣和信心,产生厌学的情绪。笔者根据几年的教学经验,对改善《C语言》的课堂教学效果提出如下几点建议。
1 注重知识点的纵深对比,强化学生的语法基础
《C语言》是一门语法规则特别丰富的程序设计语言,许多学生之所以在学习过程中失去信心,主要原因是语法知识掌握的不扎实,编程过程中处处碰壁。因此,在教学过程中加强语法知识的归纳总结和纵深对比,使学生能够“温故而知新”,深化对各个知识点的理解。如讲到基本运算符运算规则的时候,特别强调了《C语言》中整型数据的除法运算和数学上除法运算的区别;讲到循环语句时,让学生分别用while结构、do…while结构和for结构实现同一个程序,从而加深对三种结构的理解。通过这些对比,可以提高学生对这些知识点的认识,巩固语法知识。
2 适当设疑,提高学生的学习兴趣和主动性
传统的“填鸭式”教学只会扼杀学生的创造思维和学习兴趣,教学过程中适当设疑、互动,引导学生思考探索,可以激发学生的学习主动性,加深对概念的理解。上课前可以演示一个简单的小程序,这个小程序应该包含本堂课的主要语法知识,这个过程实际上也就是向学生提出了一个问题——“如何实现它?”带着这个疑问来讲解新语法知识,可以提高学生的学习兴趣。课堂结束前可以讲解这个例子小程序,揭开“庐山真面目”。也可以布置一些相应的课后思考作业。例如,在讲授自增运算符“++”时,可以让学生思考(i++)*(i++),(++i)*(++i),i*(++i)等表达式的值,然后通过上机实验来比较、分析所得出的结论。适当设疑的方法有助于激发学生的学习兴趣,提高学生分析问题、解决问题的能力和素质。为了解决问题,学生和教师之间、学生和学生之间的互相启发、学习,有助于创造性思维的形成。
3 教学应遵循因材施教、循序渐进的原则
学生之所以觉得《c语言》难学,产生厌学情绪,是由于过于急躁的缘故。许多高校直接把《c语言》作为程序设计课程的入门语言,这对大多数没有程序设计概念的学生来说是比较困难的。因此,作为教师不能对学生要求过急,更不能打击他们。可以先培养学生阅读程序的能力,包括分析程序功能、纠正程序错误等;然后讲解一些典型例题,让学生先模仿这些例题完成相关的编程任务;适当布置综合性较强的编程作业作为“选作题”,供有余力的学生强化提高。
4 注重实验环节,加强学生的动手能力
《c语言》是一门实践性很强的学科,只进行理论学习而不上机实践是不可能学好的,因此,实验教学效果的好坏关系到整个课程的成功与否。只有不断上机实践,学生才能深入理解和掌握抽象、繁多的语法知识,才能深刻领悟c语言的真谛。实验教学过程中应注意以下问题:
4.1 师生共同精心准备实验课程。如前所述,实验课对《c语言》的学习是至关重要的,但毕竟课时有限,资源有限,因此,教师在上课前应精心准备每堂课的内容。一般应该在理论课结束的时候提前布置好实验课任务,让学生回去先思考相关问题,在作业本上把主要程序编写好,这样,学生在实验课上就有充裕的时间来调试测试程序、自我设疑答疑和撰写实验报告。教师也应该提前预期学生可能出现的问题,以便上课时集中讲解。
4.2 培养学生良好的编程习惯。好的编程习惯是软件工程师必备的最基本素质之一,良好的编程习惯对于编程能力的提高是非常重要的。因此,一开始就应该注重这方面素质的培养。一些现代软件工程的思想也可以在实验课程中渗透,小到程序的视觉组织、标识符的恰当命名以及必要的注释,大到程序的整体架构、程序的可扩展性等等。这些内容最容易被初学者忽视,指导教师应该加强这方面的约束、规范。
4.3 培养学生自主调试、测试程序的能力。程序调试主要是指语法错误和逻辑错误的检查和纠正。对于语法错误,由于编译系统给出的提示信息是英文提示,很多初学者难以看懂难以排查。实验课上可以让学生人为地设置一些语法错误,如函数头后面加分号、关键字拼写错误、没有头文件包含语句等,要求学生做好调试记录,逐渐积累调试经验。对于逻辑错误,初学者也往往容易忽视,认为程序只要能运行就行了,而不管结果是否正确,是否健壮。或者不会测试或者知道程序有问题而查不出病因。因此,实验课上也应该注意设置断点、单步执行等调试方法的讲解,指导学生通过观察每一步的输出来发现错误。程序测试是指本着“程序是会有错误”的原则,精心设计一组有代表性的测试数据来验证程序的健壮性。要求学生调试测试过程中记录心得体会作为实验报告,以积累编程经验。
4.4 培养学生精益求精的治学态度。对于一些运行“正确”的源程序,可以提出一些新的问题供学生思考、实验。如这个算法的时空复杂度是否最优或接近最优的?程序的可读性怎样?程序的健壮性如何?换一个要求又该如何处理等等。这些问题能够使学生在实验中不断思索,加深理解,达到举一反三的效果。
5 通过兴趣小组、网络交流加强师生互动
按照学生自愿的原则成立《c语言》课程兴趣小组,布置一些有趣的编程小题目,由学生自己交流。教师可以把一些好的学习资料、程序范例放在网上供学生参考。这种互动关系可以一直延续到课程结束乃至学生毕业以后。通过师生间的交流,教师可以发现一些以前没有注意到的问题,丰富自己的教学经验;学生也可以不断提高自己的认知水平和编程能力。
以上是笔者近几年教学过程中摸索出的几点心得,仅供同仁参考。
文献标识号 A
文章编号 1009—9646(2009)11—0013—01
摘要 C语言是大多数计算机相关专业的首选程序设计语言,是一门具有访问内存地址功能的高级语言,在底层软件开发方面具有独到的优势。本文针对《C语言程序设计》课程知识点繁多、内容复杂抽象、难教难学等特点,提出了几点改革建议,对于改善教学效果具有积极的作用。
关键词 C语言程序设计;教学改革;教学方法
《C语言程序设计》(以下简称《C语言》)是计算机相关专业的一门基础课程,是《数据结构》、《软件工程》等课程的先修课程。学好《C语言》可以为工程软件开发打下基础,对培养新型的计算机应用开发人才具有极其重要的意义。但是,由于《C语言》课程本身具有知识点繁多、内容抽象等特点,因此,在实际的教学过程中经常发现,很多学生对这门课程刚开始比较感兴趣,但随着学习的深入,渐渐觉得语法知识复杂抽象,编程不知如何下手,进而失去兴趣和信心,产生厌学的情绪。笔者根据几年的教学经验,对改善《C语言》的课堂教学效果提出如下几点建议。
1 注重知识点的纵深对比,强化学生的语法基础
《C语言》是一门语法规则特别丰富的程序设计语言,许多学生之所以在学习过程中失去信心,主要原因是语法知识掌握的不扎实,编程过程中处处碰壁。因此,在教学过程中加强语法知识的归纳总结和纵深对比,使学生能够“温故而知新”,深化对各个知识点的理解。如讲到基本运算符运算规则的时候,特别强调了《C语言》中整型数据的除法运算和数学上除法运算的区别;讲到循环语句时,让学生分别用while结构、do…while结构和for结构实现同一个程序,从而加深对三种结构的理解。通过这些对比,可以提高学生对这些知识点的认识,巩固语法知识。
2 适当设疑,提高学生的学习兴趣和主动性
传统的“填鸭式”教学只会扼杀学生的创造思维和学习兴趣,教学过程中适当设疑、互动,引导学生思考探索,可以激发学生的学习主动性,加深对概念的理解。上课前可以演示一个简单的小程序,这个小程序应该包含本堂课的主要语法知识,这个过程实际上也就是向学生提出了一个问题——“如何实现它?”带着这个疑问来讲解新语法知识,可以提高学生的学习兴趣。课堂结束前可以讲解这个例子小程序,揭开“庐山真面目”。也可以布置一些相应的课后思考作业。例如,在讲授自增运算符“++”时,可以让学生思考(i++)*(i++),(++i)*(++i),i*(++i)等表达式的值,然后通过上机实验来比较、分析所得出的结论。适当设疑的方法有助于激发学生的学习兴趣,提高学生分析问题、解决问题的能力和素质。为了解决问题,学生和教师之间、学生和学生之间的互相启发、学习,有助于创造性思维的形成。
3 教学应遵循因材施教、循序渐进的原则
学生之所以觉得《c语言》难学,产生厌学情绪,是由于过于急躁的缘故。许多高校直接把《c语言》作为程序设计课程的入门语言,这对大多数没有程序设计概念的学生来说是比较困难的。因此,作为教师不能对学生要求过急,更不能打击他们。可以先培养学生阅读程序的能力,包括分析程序功能、纠正程序错误等;然后讲解一些典型例题,让学生先模仿这些例题完成相关的编程任务;适当布置综合性较强的编程作业作为“选作题”,供有余力的学生强化提高。
4 注重实验环节,加强学生的动手能力
《c语言》是一门实践性很强的学科,只进行理论学习而不上机实践是不可能学好的,因此,实验教学效果的好坏关系到整个课程的成功与否。只有不断上机实践,学生才能深入理解和掌握抽象、繁多的语法知识,才能深刻领悟c语言的真谛。实验教学过程中应注意以下问题:
4.1 师生共同精心准备实验课程。如前所述,实验课对《c语言》的学习是至关重要的,但毕竟课时有限,资源有限,因此,教师在上课前应精心准备每堂课的内容。一般应该在理论课结束的时候提前布置好实验课任务,让学生回去先思考相关问题,在作业本上把主要程序编写好,这样,学生在实验课上就有充裕的时间来调试测试程序、自我设疑答疑和撰写实验报告。教师也应该提前预期学生可能出现的问题,以便上课时集中讲解。
4.2 培养学生良好的编程习惯。好的编程习惯是软件工程师必备的最基本素质之一,良好的编程习惯对于编程能力的提高是非常重要的。因此,一开始就应该注重这方面素质的培养。一些现代软件工程的思想也可以在实验课程中渗透,小到程序的视觉组织、标识符的恰当命名以及必要的注释,大到程序的整体架构、程序的可扩展性等等。这些内容最容易被初学者忽视,指导教师应该加强这方面的约束、规范。
4.3 培养学生自主调试、测试程序的能力。程序调试主要是指语法错误和逻辑错误的检查和纠正。对于语法错误,由于编译系统给出的提示信息是英文提示,很多初学者难以看懂难以排查。实验课上可以让学生人为地设置一些语法错误,如函数头后面加分号、关键字拼写错误、没有头文件包含语句等,要求学生做好调试记录,逐渐积累调试经验。对于逻辑错误,初学者也往往容易忽视,认为程序只要能运行就行了,而不管结果是否正确,是否健壮。或者不会测试或者知道程序有问题而查不出病因。因此,实验课上也应该注意设置断点、单步执行等调试方法的讲解,指导学生通过观察每一步的输出来发现错误。程序测试是指本着“程序是会有错误”的原则,精心设计一组有代表性的测试数据来验证程序的健壮性。要求学生调试测试过程中记录心得体会作为实验报告,以积累编程经验。
4.4 培养学生精益求精的治学态度。对于一些运行“正确”的源程序,可以提出一些新的问题供学生思考、实验。如这个算法的时空复杂度是否最优或接近最优的?程序的可读性怎样?程序的健壮性如何?换一个要求又该如何处理等等。这些问题能够使学生在实验中不断思索,加深理解,达到举一反三的效果。
5 通过兴趣小组、网络交流加强师生互动
按照学生自愿的原则成立《c语言》课程兴趣小组,布置一些有趣的编程小题目,由学生自己交流。教师可以把一些好的学习资料、程序范例放在网上供学生参考。这种互动关系可以一直延续到课程结束乃至学生毕业以后。通过师生间的交流,教师可以发现一些以前没有注意到的问题,丰富自己的教学经验;学生也可以不断提高自己的认知水平和编程能力。
以上是笔者近几年教学过程中摸索出的几点心得,仅供同仁参考。