论文部分内容阅读
摘要:该文提出了一些高校“C语言”实验课教学中存在的几个问题,然后结合笔者的教学实践,探讨了对应的教学改革思路。首先要保证有充足的教学时间,指出很多高校具体教学中过分压缩了实验教学在总学时数中所占比例,并按要求实验教师严格设置实验内容,从而达到将那些枯燥的理论知识转化为自己的思想,成为学生自己的职业技能。在课堂教学运用“任务驱动”教学机制。提出加强综合实验,思维培养和能力培养并重,达到提高学生的软件开发能力的最终目的。
关键词:C语言;知识结构;任务驱动;思维能力;综合实验
中图分类号:TP424文献标识码:A文章编号:1009-3044(2008)33-1424-02
On the C Language of Teaching Reform
WANG Jiang-tao
(Yangen University, Quanzhou 362014, China)
Abstract: This paper presents a number of colleges and universities "C Language" experimental teaching in a few issues, and the author of the teaching practice and teaching of the corresponding reform ideas. First of all to ensure that adequate teaching time, pointed out that many colleges and universities in over-specific teaching compressed experimental teaching in the total number of units in the proportion of teachers as required strict set of content to meet those boring theoretical knowledge into their own The idea of becoming students themselves vocational skills. In the classroom teaching use of "mission-driven" teaching mechanism. To strengthen the integrated test, training and capacity-building of thinking both to improve their work ability of the ultimate goal.
Key words: C Language Programming; the knowledge structure; mission-driven; thinking ability; experiment
1 引言
C语言因其丰富的功能、具有良好使用的灵活性,可移植性好,特别在嵌入式系统开发方面,C语言体现了自身的优势。本人认为将“C语言”作为计算机专业学生学习程序设计的人门课程,旨在让学生掌握基本的程序设计方法,培养学生逻辑思维能力,最终达到他们能够利用C语言来解决一些问题。传统教学过程中却存在很多问题,比如概念不能充分理解;知识结构不完善;动手能力差,写出的程序多数是从课本例题模仿而来,代码中无法体现个性化的思想,更别说涉及到软件开发;以上问题是笔者从事几年的C语言教学总结而来,特别是结合自己在实验教学方面的实践经验,提出了一些解决的方法和建议。
2 C语言实验教学中存在的几个问题
1) 对实验教学认识有误区。很多学校把实验课视为理论课的附属,没有将实验教学单独开课,没有单独配备相应的硬件资源(实验室)和软件资源(实验教师),甚至实验课的课时只有理论课课时的一半。C语言是一门应用性非常强的课程,归根到底要培养学生的综合编程能力!试想,作为入门语言,编程语言对于学生来说是陌生的,2课时的理论课,可以给学生讲授3-4个比较重要的知识点,而实验教学如果只配备1个学时,单单是4个重要的知识点的验证恐怕时间都不够,更别说让学生去设计实验,来进一步理解所学的知识,能够真正地将课本上的知识转化为自己掌握的一种技能。
2) 实验教学的课堂内容设置不合理,无法达到实验教学的真正目的。由于某些教师精力有限,没有专门针对理论教学的进度以及内容,对实验课的内容进行认真的设计和反复的修改。导致学生在实验课上试验内容与理论课内容错位,使得学生茫然不知所措,不能消化理论课的内容,对实验课乃至整门课程失去信心和兴趣。如果失去信心和兴趣,就会对课程产生逆反心理,产生逆反心理后又直接影响到学习的兴趣,造成恶性循环。
3) 综合性实验(课程设计)没有开展,或者说效果不好。综合性实验(课程设计)是检验课程开设效果的最有力的手段,也是提高学生自身编程技能的一个非常好的契机。但是,如果实验课普通实验效果都不好,这样的综合性实验对于学生来说,简直是遥远的、不可触及的。对于以后续专业课的进一步学习,埋下了隐患。
3 实验教学方教学方法的改革和探讨
针对以上提出的实验课程教学中存在的问题,我对C语言课程教学做了一些尝试,应该说还是受到了比较明显的效果。
1) 将实验教学做好定位,明确实验教学的任务,将实验教学学时应该是理论教学学时的1倍或者1.5倍。我们先看看实验教学的目的:一是让学生掌握基本的程序设计算法,能够编程实现我们课后练习的一些题目,当然这是对学生的最基本要求,也是最低要求;二是,让学生真正掌握C语言这样的一个软件开发的工具,为学生以后走向工作岗位,奠定良好的基础。因为对于计算机专业的学生,通过课程设计或者综合性实验能够用C语言开发一个小的软件(哪怕只有2个或者3个功能),对于他们来讲,会有一种成就感,能够给他们学习的信心和兴趣,或许一名优秀的软件设计人员会因此而产生。
通过上面我们不难看出,实验教学,不仅要引导同学更好理解理论课中的一些算法、语法、设计思想,更重要的是,通过实验课,我们将那些枯燥的理论转化为自己的思想,成为自己编程的利器。由此可见,增加实验教学的学时数,是提高C语言教学效果的一个前提保障,没有充足的学时数,其他的改革措施无从谈起。
2) 在具体教学过程中始终贯彻任务驱动的教学机制(如图1所示)。把整个学期的实验教学活动看成完成综合性实验的一个过程,学期期末有综合性实验这样的最终的任务;对于每次课程,都有具体、明确的习题配套练习,可以看成最终任务的分割。也就是,这门课程的目的就是让学生在完成一个一个的任务中潜移默化地提高编程能力和技巧。做到这样要求,教学任务明确了,学生的学习目标自然也就明确了。任务驱动的教学机制给实验教师提出了相对比较高的要求,因而教学任务的设置变成一项非常重要的工作。表现在:
① 实验教师要具有完整的C语言的知识结构体系,把教学大纲中的重要知识点串起来,再具体分配到每个具体的学时里,让学生掌握。最后达到让学生掌握和建立C语言的知识体系结构。
② 实验教师要加强与理论教师之间的联系。因为学生的学习进度、基本概念、基本算法的思想都是在理论课上学习的,而实验课要巩固他们的知识,要实现算法的代码设计,要提高变成技巧,可以说任务很繁重。如果实验教学在此环节上和理论教学联系不能很紧密,会造成两个本该相辅相成的教学环节脱节,学生既没有达到实验教学的目标,理论教学的内容又得不到实践,最后我们的教学效果就难以保障了。
3) 思维能力和编程能力培养并重,相辅相成。
① 为了培养学生的良好的思维方式,我们在授课过程中应该始终贯穿结构化程序设计思想和自顶向下、逐步求精的思维方式。在分析典型问题时,要从构造算法出发,着重探讨分析问题和设计算法的思维过程,加强学生思维方式的培养。以解决闰年问题为例,这个问题本身非常经典,是一般C语言课程学习完控制结构后一般都要联习的题目,我在具体的教学过程中是这样执行的:
图2 解闰年问题的算法流程
首先画出流程图,流程图是最能体现学生解决问题思路的方式之一。
如果学生能够画出图2这样的流程图,基本上说明他已经解决了闰年问题。剩下的部分就是将流程图的思路转化为具体的TurboC的可执行代码。可以让学生将流程图先转化成一条条的汉语语句。
S1:测试数据Y是否能被4整除;
S2:如果S1不成立,输出“不是闰年”;
S3:如果S1成立,继续判断是否被100整除;
S4:如果S3不成立,则是闰年;
S5:如果S3成立,继续判断是否被400整除;
S6:S5成立,则输出“不是闰年”;
S7:S5不成立,则输出“是闰年”;
有了清晰的思路,学生建立了解题的方法,剩下的内容就是根据C语言的语法规则将上述语句转化为C的代码即可。
② C语言教材中的课后习题非常丰富,许多题目的针对性也很强,教师应该对其进行归纳、整理和分类。针对同一类问题时不要逐题练习,应该在重点练习典型题目的基础上,拓展学生思路,引导学生归纳和总结求解一类间
题的基本算法,达到举一反三的效果。
4 结束语
针对“C语言”教学相关的若干问题,我们提出了正确认识实验教学,摆正实验教学的位置。并将“任务驱动”的教学法引人到实验教学的各个环节中。实践证明这些教学方面的探索,在实验教学中取得了较好的教与学的双向效果。帮助学生建立了完整的课程知识体系,激发了学生的学习积极性和主动性,培养了他们的算法思维能力,提高了综合编程能力,最终完全达到了预先的教学设想和效果。
参考文献:
[1] 谭浩强.C程序设计[M].2版.北京:清华大学出版社,1999.
[2] 栾咏红.C语言课程案例教学模式的探究与思索[J].内江科技,2007(11):153.
[3] 方红萍,陈和平.C语言课程改革与实践[J].电气电子教学学报,2007(5):11-13.
关键词:C语言;知识结构;任务驱动;思维能力;综合实验
中图分类号:TP424文献标识码:A文章编号:1009-3044(2008)33-1424-02
On the C Language of Teaching Reform
WANG Jiang-tao
(Yangen University, Quanzhou 362014, China)
Abstract: This paper presents a number of colleges and universities "C Language" experimental teaching in a few issues, and the author of the teaching practice and teaching of the corresponding reform ideas. First of all to ensure that adequate teaching time, pointed out that many colleges and universities in over-specific teaching compressed experimental teaching in the total number of units in the proportion of teachers as required strict set of content to meet those boring theoretical knowledge into their own The idea of becoming students themselves vocational skills. In the classroom teaching use of "mission-driven" teaching mechanism. To strengthen the integrated test, training and capacity-building of thinking both to improve their work ability of the ultimate goal.
Key words: C Language Programming; the knowledge structure; mission-driven; thinking ability; experiment
1 引言
C语言因其丰富的功能、具有良好使用的灵活性,可移植性好,特别在嵌入式系统开发方面,C语言体现了自身的优势。本人认为将“C语言”作为计算机专业学生学习程序设计的人门课程,旨在让学生掌握基本的程序设计方法,培养学生逻辑思维能力,最终达到他们能够利用C语言来解决一些问题。传统教学过程中却存在很多问题,比如概念不能充分理解;知识结构不完善;动手能力差,写出的程序多数是从课本例题模仿而来,代码中无法体现个性化的思想,更别说涉及到软件开发;以上问题是笔者从事几年的C语言教学总结而来,特别是结合自己在实验教学方面的实践经验,提出了一些解决的方法和建议。
2 C语言实验教学中存在的几个问题
1) 对实验教学认识有误区。很多学校把实验课视为理论课的附属,没有将实验教学单独开课,没有单独配备相应的硬件资源(实验室)和软件资源(实验教师),甚至实验课的课时只有理论课课时的一半。C语言是一门应用性非常强的课程,归根到底要培养学生的综合编程能力!试想,作为入门语言,编程语言对于学生来说是陌生的,2课时的理论课,可以给学生讲授3-4个比较重要的知识点,而实验教学如果只配备1个学时,单单是4个重要的知识点的验证恐怕时间都不够,更别说让学生去设计实验,来进一步理解所学的知识,能够真正地将课本上的知识转化为自己掌握的一种技能。
2) 实验教学的课堂内容设置不合理,无法达到实验教学的真正目的。由于某些教师精力有限,没有专门针对理论教学的进度以及内容,对实验课的内容进行认真的设计和反复的修改。导致学生在实验课上试验内容与理论课内容错位,使得学生茫然不知所措,不能消化理论课的内容,对实验课乃至整门课程失去信心和兴趣。如果失去信心和兴趣,就会对课程产生逆反心理,产生逆反心理后又直接影响到学习的兴趣,造成恶性循环。
3) 综合性实验(课程设计)没有开展,或者说效果不好。综合性实验(课程设计)是检验课程开设效果的最有力的手段,也是提高学生自身编程技能的一个非常好的契机。但是,如果实验课普通实验效果都不好,这样的综合性实验对于学生来说,简直是遥远的、不可触及的。对于以后续专业课的进一步学习,埋下了隐患。
3 实验教学方教学方法的改革和探讨
针对以上提出的实验课程教学中存在的问题,我对C语言课程教学做了一些尝试,应该说还是受到了比较明显的效果。
1) 将实验教学做好定位,明确实验教学的任务,将实验教学学时应该是理论教学学时的1倍或者1.5倍。我们先看看实验教学的目的:一是让学生掌握基本的程序设计算法,能够编程实现我们课后练习的一些题目,当然这是对学生的最基本要求,也是最低要求;二是,让学生真正掌握C语言这样的一个软件开发的工具,为学生以后走向工作岗位,奠定良好的基础。因为对于计算机专业的学生,通过课程设计或者综合性实验能够用C语言开发一个小的软件(哪怕只有2个或者3个功能),对于他们来讲,会有一种成就感,能够给他们学习的信心和兴趣,或许一名优秀的软件设计人员会因此而产生。
通过上面我们不难看出,实验教学,不仅要引导同学更好理解理论课中的一些算法、语法、设计思想,更重要的是,通过实验课,我们将那些枯燥的理论转化为自己的思想,成为自己编程的利器。由此可见,增加实验教学的学时数,是提高C语言教学效果的一个前提保障,没有充足的学时数,其他的改革措施无从谈起。
2) 在具体教学过程中始终贯彻任务驱动的教学机制(如图1所示)。把整个学期的实验教学活动看成完成综合性实验的一个过程,学期期末有综合性实验这样的最终的任务;对于每次课程,都有具体、明确的习题配套练习,可以看成最终任务的分割。也就是,这门课程的目的就是让学生在完成一个一个的任务中潜移默化地提高编程能力和技巧。做到这样要求,教学任务明确了,学生的学习目标自然也就明确了。任务驱动的教学机制给实验教师提出了相对比较高的要求,因而教学任务的设置变成一项非常重要的工作。表现在:
① 实验教师要具有完整的C语言的知识结构体系,把教学大纲中的重要知识点串起来,再具体分配到每个具体的学时里,让学生掌握。最后达到让学生掌握和建立C语言的知识体系结构。
② 实验教师要加强与理论教师之间的联系。因为学生的学习进度、基本概念、基本算法的思想都是在理论课上学习的,而实验课要巩固他们的知识,要实现算法的代码设计,要提高变成技巧,可以说任务很繁重。如果实验教学在此环节上和理论教学联系不能很紧密,会造成两个本该相辅相成的教学环节脱节,学生既没有达到实验教学的目标,理论教学的内容又得不到实践,最后我们的教学效果就难以保障了。
3) 思维能力和编程能力培养并重,相辅相成。
① 为了培养学生的良好的思维方式,我们在授课过程中应该始终贯穿结构化程序设计思想和自顶向下、逐步求精的思维方式。在分析典型问题时,要从构造算法出发,着重探讨分析问题和设计算法的思维过程,加强学生思维方式的培养。以解决闰年问题为例,这个问题本身非常经典,是一般C语言课程学习完控制结构后一般都要联习的题目,我在具体的教学过程中是这样执行的:

图2 解闰年问题的算法流程
首先画出流程图,流程图是最能体现学生解决问题思路的方式之一。
如果学生能够画出图2这样的流程图,基本上说明他已经解决了闰年问题。剩下的部分就是将流程图的思路转化为具体的TurboC的可执行代码。可以让学生将流程图先转化成一条条的汉语语句。
S1:测试数据Y是否能被4整除;
S2:如果S1不成立,输出“不是闰年”;
S3:如果S1成立,继续判断是否被100整除;
S4:如果S3不成立,则是闰年;
S5:如果S3成立,继续判断是否被400整除;
S6:S5成立,则输出“不是闰年”;
S7:S5不成立,则输出“是闰年”;
有了清晰的思路,学生建立了解题的方法,剩下的内容就是根据C语言的语法规则将上述语句转化为C的代码即可。
② C语言教材中的课后习题非常丰富,许多题目的针对性也很强,教师应该对其进行归纳、整理和分类。针对同一类问题时不要逐题练习,应该在重点练习典型题目的基础上,拓展学生思路,引导学生归纳和总结求解一类间
题的基本算法,达到举一反三的效果。
4 结束语
针对“C语言”教学相关的若干问题,我们提出了正确认识实验教学,摆正实验教学的位置。并将“任务驱动”的教学法引人到实验教学的各个环节中。实践证明这些教学方面的探索,在实验教学中取得了较好的教与学的双向效果。帮助学生建立了完整的课程知识体系,激发了学生的学习积极性和主动性,培养了他们的算法思维能力,提高了综合编程能力,最终完全达到了预先的教学设想和效果。
参考文献:
[1] 谭浩强.C程序设计[M].2版.北京:清华大学出版社,1999.
[2] 栾咏红.C语言课程案例教学模式的探究与思索[J].内江科技,2007(11):153.
[3] 方红萍,陈和平.C语言课程改革与实践[J].电气电子教学学报,2007(5):11-13.