论文部分内容阅读
C语言是近年来在国内外得到迅速推广应用的一种计算机语言,目前在程序语言使用中排名第二,只和排行第一的JAVA语言相差甚微。它功能丰富,表达力强,使用灵活方便,目标程序运行效率高,兼有高级语言与低级语言的许多特点,许多机型、操作系统都支持C语言开发[1]。国内外大学院校的计算机专业的课程设置都包含《C语言程序设计》这门课程。作为一门基础课程,它还是"数据结构"、"操作系统"、"嵌入式系统"等计算机专业课程的前导课程,在整个课程体系中占有重要地位。通过理论授课和上机实践,使学生掌握C程序的全部语法和程序设计的基本方法,能够比较熟练地使用C语言编写程序,培养出扎实的软件开发基本技能,还可以锻炼学生的逻辑思维能力,培养学生分析问题、解决问题的能力,对学生综合素质的提高具有一定的促进作用。由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到学习困难。这就要求学生要充分的进行有效的上机实践,从而提高学生实践操作能力,进而巩固课程的知识点及拓展学习的应用。所以在整个课程的传授中,实践教学的教学效果至关重要,本文将就《C语言程序设计》实践教学谈谈如何在教学开展综合性设计实践的尝试。
一、实践教学存在的问题
(一)实践教学
实践教学是具有实践性学科教学的一个重要组成部分,是理论联系实际的桥梁与纽带。通过实践教学,可以增加学生的感性认识,增强认知能力,训练动手实践能力,培养科学态度,加深和巩固对理论知识的理解,从而达到提高学生观察问题、分析问题和解决问题的能力的目的[2]。《C语言程序设计》是一门实践性很强的课程,因此有必要好好研究实践教学方法,提高学生的编程水平,植入软件开发思想,提升项目开发能力,为今后的学习打下坚实的基础。
(二)《C语言程序设计》实践教学存在的问题
1、任务单一、内容简单,学生缺乏兴趣
在《C语言程序设计》课程讲授过程中,结合各个知识点都有相应的实践操作,但这类实践操作往往比较单一,一般都是按知识单元设计实例,只有几十行到几百行的源代码,不能形成项目的规模,无法与现实生活紧密结合。实践教学内容大多是验证性实验项目,简单缺少综合性、设计性实验。实践中,学生是被动地完成上机作业,按部就班,缺少独立思考,对学生兴趣少,无法激起学习热情,教学效果可想而知了。
2、脱离实际运用,学生没有挑战
实践过程中,实践代码都是些简单的数学问题,学生只理解C语言程序设计可以算几道数学题而已,无法和实际运用联系,觉得并没有想象中的强大功能和无处不在的应用,认为其枯燥无味,"实践只是敲敲代码"。并且实践课程教材中每一个题目几乎都提供答案,不利于培养学生发现问题、分析问题、解决问题的研究能力和创新能力。以往设计的上机实践是围绕着课程教学内容而进行的,问题已经高度抽象而且规模较小,学生很难得到有关综合运用所学知识的整体训练机会。当然,这些实践内容相对简单、问题已经高度抽象,基本上单人就能完成,对于学生,实践一点挑战性都没有,也就不能激起他们进一步学习和探索。当然对于有关项目管理和团队协作等方面的基本训练和工作经验,学生也不能通过这些设计去获得。
二、实践教学的尝试
针对以上存在的问题,笔者结合教学实际,大胆尝试引进综合项目实践来指导C语言程序设计的实践教学,从而激发学生的学习兴趣和探索精神,获得不错的效果。
(一)实践总体规划
考虑学生的学习水平,个体差异,教学的基本要求和社会的需求,整个实践教学分为两大部分:个人项目设计实践和小组综合项目设计实践。实践中本着"学生为主,老师为辅","兴趣是创造一条欢乐和光明的教学环境的主要途径之一。"的思想,加强对学生的引导、启发,提供各种获取资源的途径(图书资源、网站资源等),让学生进一步完成角色的转换,成为"学习的缔造者",也使得刚刚迈进大学不久的天之娇子学会自主学习,独立思考,拥有团队意识,具有拓展精神。
(二)个人项目实践
个人项目实践以一个学生为单位,考虑了教学中的程序设计基本要求,让学生掌握各种数据类型和设计结构。实施中以两个模拟系统来组织教学。一个是数学模拟系统,一个是字符处理系统。学生根据系统的具体要求逐一实现其中的功能,可以逐一的了解设计结构。系统的实现无需一次完成,可以结合理论教学进行(当然,理论教学也需要一定的调整),功能的要求也不是一成不变的,允许学生依据自己的理解进行添减,可以更具个性化,使得学生有创新的意识和不断探索的精神。并且系统设计中融入了模块化设计思想,让学生进一步了解C语言程序设计的设计思想,从而为今后的学习奠定基礎。实践过程中没有唯一的答案,每个学生都可以主宰自己的设计,除了所提供的实践模型还可以自己实现功能相似(数据结构、设计结构、模块化思想)的模型,引导学生学会从生活中发现问题,解决问题。这将进一步激起学生实践的兴趣,由被动学习转换成主动学习。老师在这一过程中,更多的是引导、启发,把更多的学习空间留给学生。
(三)小组综合项目实践
小组综合项目实践中引入软件工程的概念,以团队的形式进行项目的开发。主要注重培养学生的综合能力,提高学生的程序设计水平。在整个实践中,让学生在沟通中成长,在协作中进步,在自由中学习。实践中,首先抛出实践参考项目,提出实践的基本要求,再者引导学生构建自己的团队,实施项目。最后进行项目成果展示,实现各个项目小组的交流沟通。
1、实践项目及要求
实践中,提供5个实践参考项目:学生信息管理系统,图书信息管理系统,(教)职工信息管理系统、学生选修系统、飞机订票系统。各个小组选择其中一个项目进行开发。这只是参考系统,学生完全可以依据现实生活自己寻找相应的应用系统来进行开发,而且,系统中也只是提供基本的功能需求,项目小组可以进行拓展、创新,实现让学生自主设计,始终坚持学生的主导地位。篇幅所限,下表展示其中一组实践参考项目。
在项目实现中,涉及课程各种数据结构包括数组、指针、结构体(链表)、文件的使用,教学中,教师只负责引导学生对数据结构的选择,并没有强行要求系统使用的数据结构。系统的整体架构更是小组进行讨论确定的,在其中,教师提供相关的参考资源或寻找资源的途径(提供一些资源网站或书籍类型)。
项目要求以软件工程的思想实施。每个项目需提供系统需求分析、流程图、任务说明,项目总结等文字材料,又要有源程序、可执行程序、运行结果等程序文件,最后,项目小组还要准备项目展示阶段的演讲稿和项目推介设计。
2、实践组织方式
实践以团队多人形式进行组织。一般5-7人为一组,每组自己选择组长,而小组项目的日常工作由组长进行主持,包括组织、协调、沟通、辅导……等。使得项目小组长的综合能力得到全面提升。每个组员通力协作,相互学习,尽自己所长,在项目中自主实现或合作实现某一功能模块,提升自己的能力。实践中,教师引导学生对主要结构的学习,巩固,对于项目的整体开发提供启发性信息,进一步引导学生自主学习。学生一方面通过书本知识的理解,一方面查阅大量资料完善自己的知识结构,再一方面可以通过小组之间、组员之间的沟通学习来解决实际问题。
3、项目成果展示
项目设计结束,对于每个小组完成的结果如何,将通过项目成果展示来实现项目的推介。展示在多媒体教室进行,方便用多媒体进行展示,除了制作项目的人员、授课教师,还邀请本专业其他班级的学生参加以及专业老师参与。展示以项目小组为单位,每个小组推选1-2名组员进行介绍和演示。介绍可以通过PPT演示文稿或WORD文档进行,同时现场运行程序,演示设计成果,演示结束回答在场人员的提问。其他小组认真听取介绍,准备问题提问,对项目进行评定等级,从中学习不同的方法实现沟通交流。教师在这一阶段则进行引导、总结,对各个小组采用的方法、技术进行归类、点评,启发学生进一步提高程序设计的水平。
(四)实践考核
以综合项目进行实践教学的实践考核形式当然不能再使用传统考核方式。实践考核则结合实践开发项目进行评定,一部分为个人项目中获得的成绩,占30%;一部分为小组项目中实践成绩,占70%。并且小组项目的成绩的20%是学生互评成绩,另外80%才由教师进行评定。采用这种评定发式也将激发学生学习的热情,实现学生的主导作用在教学中的发挥。进一步促进教学效果的提高。
三、结语
将项目实践运用在《C语言程序设计》实践教学中,始终坚持以学生为主,教师为辅,通过不同形式的激发学生的学习兴趣,鼓励学生主动参与项目,自主学习、培养学生的团队意识和探索精神。在实际的教学过程中,这种教学改进很受学生欢迎,学生反应虽然设计过程很辛苦,但是做完项目之后很有成就感,自己也成长不少,不仅对于C语言的掌握更深入、更扎实,自己认知能力和社交能力也都得到提高,整体的综合能力较设计前提升很多。并且从历经这一方法的高年级学生在编程能力、沟通能力、团队意识都是很不错的,对他们目前的专业学习帮助正在进一步显现。这只是笔者的教学尝试,在很多细节处还需进一步改进,并且在理论授课中也需进行相应的变化,更全面的提升《C语言程序设计》的教学质量。
参考文献:
[1]谭浩强.C程序设计(第三版)[M].清华大学出版社,2005.
[2]谭浩强.C程序设计题解与上机指导(第三版)[M].清华大学出版社,2005.
[3]吕忠宝.项目教学法与传统教学法的比较[J].科技信息,2007,(9).
一、实践教学存在的问题
(一)实践教学
实践教学是具有实践性学科教学的一个重要组成部分,是理论联系实际的桥梁与纽带。通过实践教学,可以增加学生的感性认识,增强认知能力,训练动手实践能力,培养科学态度,加深和巩固对理论知识的理解,从而达到提高学生观察问题、分析问题和解决问题的能力的目的[2]。《C语言程序设计》是一门实践性很强的课程,因此有必要好好研究实践教学方法,提高学生的编程水平,植入软件开发思想,提升项目开发能力,为今后的学习打下坚实的基础。
(二)《C语言程序设计》实践教学存在的问题
1、任务单一、内容简单,学生缺乏兴趣
在《C语言程序设计》课程讲授过程中,结合各个知识点都有相应的实践操作,但这类实践操作往往比较单一,一般都是按知识单元设计实例,只有几十行到几百行的源代码,不能形成项目的规模,无法与现实生活紧密结合。实践教学内容大多是验证性实验项目,简单缺少综合性、设计性实验。实践中,学生是被动地完成上机作业,按部就班,缺少独立思考,对学生兴趣少,无法激起学习热情,教学效果可想而知了。
2、脱离实际运用,学生没有挑战
实践过程中,实践代码都是些简单的数学问题,学生只理解C语言程序设计可以算几道数学题而已,无法和实际运用联系,觉得并没有想象中的强大功能和无处不在的应用,认为其枯燥无味,"实践只是敲敲代码"。并且实践课程教材中每一个题目几乎都提供答案,不利于培养学生发现问题、分析问题、解决问题的研究能力和创新能力。以往设计的上机实践是围绕着课程教学内容而进行的,问题已经高度抽象而且规模较小,学生很难得到有关综合运用所学知识的整体训练机会。当然,这些实践内容相对简单、问题已经高度抽象,基本上单人就能完成,对于学生,实践一点挑战性都没有,也就不能激起他们进一步学习和探索。当然对于有关项目管理和团队协作等方面的基本训练和工作经验,学生也不能通过这些设计去获得。
二、实践教学的尝试
针对以上存在的问题,笔者结合教学实际,大胆尝试引进综合项目实践来指导C语言程序设计的实践教学,从而激发学生的学习兴趣和探索精神,获得不错的效果。
(一)实践总体规划
考虑学生的学习水平,个体差异,教学的基本要求和社会的需求,整个实践教学分为两大部分:个人项目设计实践和小组综合项目设计实践。实践中本着"学生为主,老师为辅","兴趣是创造一条欢乐和光明的教学环境的主要途径之一。"的思想,加强对学生的引导、启发,提供各种获取资源的途径(图书资源、网站资源等),让学生进一步完成角色的转换,成为"学习的缔造者",也使得刚刚迈进大学不久的天之娇子学会自主学习,独立思考,拥有团队意识,具有拓展精神。
(二)个人项目实践
个人项目实践以一个学生为单位,考虑了教学中的程序设计基本要求,让学生掌握各种数据类型和设计结构。实施中以两个模拟系统来组织教学。一个是数学模拟系统,一个是字符处理系统。学生根据系统的具体要求逐一实现其中的功能,可以逐一的了解设计结构。系统的实现无需一次完成,可以结合理论教学进行(当然,理论教学也需要一定的调整),功能的要求也不是一成不变的,允许学生依据自己的理解进行添减,可以更具个性化,使得学生有创新的意识和不断探索的精神。并且系统设计中融入了模块化设计思想,让学生进一步了解C语言程序设计的设计思想,从而为今后的学习奠定基礎。实践过程中没有唯一的答案,每个学生都可以主宰自己的设计,除了所提供的实践模型还可以自己实现功能相似(数据结构、设计结构、模块化思想)的模型,引导学生学会从生活中发现问题,解决问题。这将进一步激起学生实践的兴趣,由被动学习转换成主动学习。老师在这一过程中,更多的是引导、启发,把更多的学习空间留给学生。
(三)小组综合项目实践
小组综合项目实践中引入软件工程的概念,以团队的形式进行项目的开发。主要注重培养学生的综合能力,提高学生的程序设计水平。在整个实践中,让学生在沟通中成长,在协作中进步,在自由中学习。实践中,首先抛出实践参考项目,提出实践的基本要求,再者引导学生构建自己的团队,实施项目。最后进行项目成果展示,实现各个项目小组的交流沟通。
1、实践项目及要求
实践中,提供5个实践参考项目:学生信息管理系统,图书信息管理系统,(教)职工信息管理系统、学生选修系统、飞机订票系统。各个小组选择其中一个项目进行开发。这只是参考系统,学生完全可以依据现实生活自己寻找相应的应用系统来进行开发,而且,系统中也只是提供基本的功能需求,项目小组可以进行拓展、创新,实现让学生自主设计,始终坚持学生的主导地位。篇幅所限,下表展示其中一组实践参考项目。
在项目实现中,涉及课程各种数据结构包括数组、指针、结构体(链表)、文件的使用,教学中,教师只负责引导学生对数据结构的选择,并没有强行要求系统使用的数据结构。系统的整体架构更是小组进行讨论确定的,在其中,教师提供相关的参考资源或寻找资源的途径(提供一些资源网站或书籍类型)。
项目要求以软件工程的思想实施。每个项目需提供系统需求分析、流程图、任务说明,项目总结等文字材料,又要有源程序、可执行程序、运行结果等程序文件,最后,项目小组还要准备项目展示阶段的演讲稿和项目推介设计。
2、实践组织方式
实践以团队多人形式进行组织。一般5-7人为一组,每组自己选择组长,而小组项目的日常工作由组长进行主持,包括组织、协调、沟通、辅导……等。使得项目小组长的综合能力得到全面提升。每个组员通力协作,相互学习,尽自己所长,在项目中自主实现或合作实现某一功能模块,提升自己的能力。实践中,教师引导学生对主要结构的学习,巩固,对于项目的整体开发提供启发性信息,进一步引导学生自主学习。学生一方面通过书本知识的理解,一方面查阅大量资料完善自己的知识结构,再一方面可以通过小组之间、组员之间的沟通学习来解决实际问题。
3、项目成果展示
项目设计结束,对于每个小组完成的结果如何,将通过项目成果展示来实现项目的推介。展示在多媒体教室进行,方便用多媒体进行展示,除了制作项目的人员、授课教师,还邀请本专业其他班级的学生参加以及专业老师参与。展示以项目小组为单位,每个小组推选1-2名组员进行介绍和演示。介绍可以通过PPT演示文稿或WORD文档进行,同时现场运行程序,演示设计成果,演示结束回答在场人员的提问。其他小组认真听取介绍,准备问题提问,对项目进行评定等级,从中学习不同的方法实现沟通交流。教师在这一阶段则进行引导、总结,对各个小组采用的方法、技术进行归类、点评,启发学生进一步提高程序设计的水平。
(四)实践考核
以综合项目进行实践教学的实践考核形式当然不能再使用传统考核方式。实践考核则结合实践开发项目进行评定,一部分为个人项目中获得的成绩,占30%;一部分为小组项目中实践成绩,占70%。并且小组项目的成绩的20%是学生互评成绩,另外80%才由教师进行评定。采用这种评定发式也将激发学生学习的热情,实现学生的主导作用在教学中的发挥。进一步促进教学效果的提高。
三、结语
将项目实践运用在《C语言程序设计》实践教学中,始终坚持以学生为主,教师为辅,通过不同形式的激发学生的学习兴趣,鼓励学生主动参与项目,自主学习、培养学生的团队意识和探索精神。在实际的教学过程中,这种教学改进很受学生欢迎,学生反应虽然设计过程很辛苦,但是做完项目之后很有成就感,自己也成长不少,不仅对于C语言的掌握更深入、更扎实,自己认知能力和社交能力也都得到提高,整体的综合能力较设计前提升很多。并且从历经这一方法的高年级学生在编程能力、沟通能力、团队意识都是很不错的,对他们目前的专业学习帮助正在进一步显现。这只是笔者的教学尝试,在很多细节处还需进一步改进,并且在理论授课中也需进行相应的变化,更全面的提升《C语言程序设计》的教学质量。
参考文献:
[1]谭浩强.C程序设计(第三版)[M].清华大学出版社,2005.
[2]谭浩强.C程序设计题解与上机指导(第三版)[M].清华大学出版社,2005.
[3]吕忠宝.项目教学法与传统教学法的比较[J].科技信息,2007,(9).