《C语言程序设计》实验教学探究

点赞:3915 浏览:10336 近期更新时间:2024-02-05 作者:网友分享原创网站原创

摘 要:针对《C语言程序设计》课程实验教学存在的若干问题,结合教学实践,提出了提高实验教学效果的几个措施:培养学生良好的编程习惯;锻炼学生发现问题、解决问题的能力;合理安排实验内容,在由浅入深的逐步引导中实现知识点的融会贯通;建设立体化学习资源,培养学生自主学习能力;通过阶段性测评及时了解学生学习情况.实践证明,该实验教学改革措施的实施取得了很好的教学效果.

关 键 词:C语言;实验教学;教学改革

中图分类号:G434文献标识码:A文章编号:16727800(2012)011016703

作者简介:温菊屏(1979-),女,硕士,佛山科学技术学院电子与信息工程学院讲师,研究方向为数据挖掘、信息安全.

《C语言程序设计》实验教学探究参考属性评定
有关论文范文主题研究: 关于实验教学的论文范例 大学生适用: 学院学士论文、学院论文
相关参考文献下载数量: 69 写作解决问题: 学术论文怎么写
毕业论文开题报告: 论文模板、论文设计 职称论文适用: 刊物发表、高级职称
所属大学生专业类别: 学术论文怎么写 论文题目推荐度: 经典题目

0引言

《C语言程序设计》课程是大学计算机专业及理工类非计算机专业一门重要的公共基础课程,它不仅是其它高级编程语言的基础,而且通过这门课的学习可以掌握程序设计的思想.该门课程具有较强的理论性和实践性,学好这门课程将为后续专业课程的学习打下扎实的理论和实践基础.学生普遍反应,C语言课程内容繁多,虽然感觉课堂上基本听懂教学内容,但上机实验也常常显得力不从心,课堂和上机严重脱节.值得一线教师思考的是程序设计类课程上机实验的重要性丝毫不亚于课堂教学,这是巩固和发展课堂知识十分重要的一环,在抓课堂教学质量的同时,要切实重视实验教学环节.因此,必须认真思考这门课程实验环节存在的种种问题,找到解决问题的办法,切实提高实验教学的效果.

1实验教学存在的问题

1.1实验课效率低下

在以往上机实验课上,有相当一部分学生事先没有预习实验内容,坐在电脑前看教材、看实验指导书,而不是打开电脑动手编写程序,导致上机实验课效率十分低下,根本无法完成实验任务.

1.2过度依赖老师解决问题

很大一部分学生在上机调试程序时,不会根据提示的编译错误找到错误所在,一味依赖教师把错误指出加以改正,造成学生发现、解决问题的能力没有得到锻炼与提高.

1.3实验素材有待完善

通过上机实验环节,可以加深学生对讲授内容的理解,尤其是一些繁琐、枯燥的语法知识,可以通过上机实验加以巩固.因此,上机实验的素材和实验内容安排是否合理显得尤为重要.以往使用的实验教材是和教材配套的实验指导书,实验项目基本上是教材每章后面的程序编写题,每个程序代码都可以在实验指导书中找到答案,学生只需要把书中的源程序代码输入计算机,进行一些简单的调试工作.这样一来,学生只能依葫芦画瓢,无法很好地掌握所学知识点,学生丧失独立思考和创新的能力.

1.4学生自我检测和老师测评环节缺失

学好C语言这门课程,仅靠课堂和上机实验的有限时间是不够的,需要学生课后花很多时间上机实践.以往学生课后只能依靠教材、实验指导书和课件复习所学知识点,学习资源匮乏,并且学生无法对自己知识点的掌握情况做评估,不能很好地补缺补漏.教师也没有提供阶段测评环节及时掌握学生各阶段的学习情况.

2实验教学探索

2.1抓好实验预习工作,培养学生良好的预习习惯

上机实验是程序设计课程一个非常重要的环节,通过上机实验编写程序,可以进一步巩固对理论知识的理解.在以往的实际教学中,教师往往容易忽视实验课前预习工作,学生事先不做准备,到机房才开始看题目思考如何编写程序,很难在有限的课堂时间内完成作业.因此,近几年的教学中,教师要求学生事先将要完成的实验程序代码在预习本上写出,在上机实验时将代码输入计算机进行调试.教师做到每次上机课检查学生的预习本,实施“没有完成预习工作的学生不能进机房”的惩罚措施,经过严格的督促,所有学生养成了事先预习的好习惯,保证了上机实验的效率.

2.2养成良好程序书写规范,掌握程序调试工具,培养学生发现问题、解决问题的能力以往在批改学生作业时,发现大部分学生的程序代码虽然没有语法错误,但程序书写很不规范,给查错、日后阅读带来很大的不便.程序书写应该清晰,便于阅读、理解、维护,遵循以下规则:①一个语句占一行;②使用{}时,两个花括号单独占一行,并且在同一列的位置;③低一层次的语句比高一层次的语句右缩进几个字符;④在必要的地方加上注释语句.

其实在VC6.0编译环境中,系统有自动右缩进的功能,代码书写每次换行,系统会根据层级关系自动右缩进几个字符;并且对于没有正确采取右缩进对齐的代码,可以通过按ALT+F8组合键进行自动对齐.

由于C语言内容比较复杂,对初学者而言,很容易在编写程序时遇到各种各样问题,加上学生的英语水平有限,对于调试出现的错误和警告信息看不明白,出现问题就会有畏难情绪和依赖思想.

程序调试能力是程序设计能力一个非常重要的方面,在以往的教学中,学生调试错误能力的培养往往被忽视.很多教师在辅导上机时,只要学生出现调试错误,教师直接把错误指出,学生发现问题、解决问题的能力没有得到锻炼.

程序错误包括两类:一类是语法错误,一类是逻辑错误.语法错误是学生比较容易犯的错误,对于这类错误,教师要告诉学生找错方法.对于逻辑错误教师应该在课堂上教会学生使用调试工具,强调调试工具使用的重要性,在上机实验时,鼓励学生经常使用调试工具,特别对于循环结构的程序,通过调试工具,可以很好地观察一些重要变量的变化情况.

2.3完善实验教材,合理安排实验内容

以往教学中,使用的实验教材是谭浩强版的《C语言程序设计题解与上机指导》,这门书的实验内容基本上是程序编写题,并且已经附有答案,学生使用该教材实验效果很不理想.

2009年10月,在广东省教育厅下达的课题“C语言程序设计立体教材开发”的资助和要求下,课题组集中精力编写了一本有助于从多个层次培养学生读程序、分析程序、修改程序以及编写程序能力的实验教材——《C语言实训教程》.该实验教材共有12个实验,其中1个验证性实验、9个设计性实验、2个综合性实验.验证性实验立足于语法规则,目的在于巩固C语言的基础语法知识.设计性实验是在给定实验目的和要求的条件下,由学生结合所学知识,自行设计实验方案并加以实现的实验,目的在于培养学生充分运用所学知识,去发现问题、解决问题.设计性实验突破以往只有编写程序题的模式,每个实验的实验任务都设置了3个层次:(1)程序改错题:读程序找出其中的错误,通过改错训练,可以让学生掌握调试工具的使用,并且避免以后编写程序时犯类似常见错误.

(2)程序扩展题:培养学生在分析、理解原始程序的基础上,对程序进行扩充修改,为独立编写程序打下基础.

(3)程序编写题:训练学生独立编写程序能力以及解决实际问题的能力.

经过“读程序—模仿改写程序—编写程序”实验环节,让学生在由浅入深的逐步引导中理解和掌握程序设计的思想、方法和技巧.

综合性实验是学生经过一个阶段的学习之后,运用所学知识点,对实验技能和方法进行综合训练的实验.综合性实验是学生反映最难,也是收获最大的一个部分.在以往教学中,综合性实验在课程快结束的时候布置,学生面对如此综合性的实验任务,要一步到位,从无到有写出一个完整的程序,显得思绪混乱、手忙脚乱、无从下手.教师应该在学习初期就把综合性实验要求提出,演示程序,让学生直观感受课程最后要完成一个怎样的任务.在这样一个大任务的驱使下,激发学生的学习兴趣,随着知识点的不断学习,将一个简单的小程序逐步完善成一个复杂的程序.以《C语言实训教程》为例,综合性实验具体实验任务是编写一个学生信息管理系统,每个学生信息包括学号、姓名、性别、班级、3门课成绩,主要功能包括数据输入、数据输出、数据修改、按照某字段排序、查询学生信息、统计平均分及不及格科目等功能模块,通过选择不同的菜单项来实现各功能模块.此综合性实验涉及到知识点有选择结构、循环结构、函数、结构体数组等内容,基本上涵盖了C语言中所有知识点.

综合性实验不是一步到位的,而是分步骤实施,逐步完善程序代码,具体步骤如下:①在选择结构实验环节中,要求学生编写程序1.cpp:使用switch语句完成“学生信息管理系统”菜单的输出显示;②在循环结构实验环节中,要求学生修改程序1.cpp:在1.cpp基础上,使用while或dowhile语句实现菜单的循环显示,修改后的文件名为2.cpp;③在函数实验环节中,要求学生修改程序2.cpp:在2.cpp基础上,对每个菜单项对应设计一个空函数(只有函数名,函数体内是空语句,留待以后加以完善),选择不同菜单项则调用不同的函数,此时管理信息系统最初的程序框架已经修改,建立修改后的文件名为3.cpp;④在数组和结构体的实验环节中,要求学生把综合性实验中的每个功能模块分别用一个独立的cpp文件编写调试成功,检测设有n个模块,此时程序名分别为41.cpp,42.cpp,等,4n.cpp;⑤新建一个新的cpp文件——5.cpp,在该文件中写入所有功能模块对应的函数定义,函数定义部分代码提炼于步骤4所有独立的cpp程序文件(41.cpp,42.cpp,等,4n.cpp),main()函数里顺序调用各函数,顺序执行各功能模块;⑥要求学生修改程序3.cpp:将5.cpp程序中所有函数定义的代码,填入到3.cpp程序中对应的空函数的函数体内部,经过调试修改,最终完成综合性实验程序.

通过以上循序渐进的步骤,学生能够深刻体会如何将一个复杂的问题分解成一个个小任务加以解决,从而使得学生编写复杂程序的能力得到很好的锻炼.

2.4借助立体化资源,培养学生自主学习能力

《C语言程序设计》课程具有信息量大的特点,仅仅依靠64学时课堂教学和上机实验无法达到良好的教学效果.因此,如何把课堂进行延伸为学生搭建一个课堂外的课堂,为学生自主学习提供一个平台是值得教师思考的一个问题.

本课题组除了编写实验教材之外,还制作了实验教材配套的辅导学习光碟,光碟中提供了每个实验项目问题分析及解决方法的讲解视频、流程图及参考程序;搭建Blackboard网络教学管理平台,BB平台除了提供学生自主学习的课程资源之外,还提供了学生进行自我测评的“在线测试”,测试题目以章节为单位,涉及单选、填空、阅读程序及编程题,此环节允许学生反复练习,点击“提交”按钮之后,客观题会自动评分并提供正确的参,让学生对自己所学知识的掌握情况有个全面了解.通过“实验教材+辅导光碟+网络平台”三位一立体化的资源,使得本课程的实验教学模式由原来单一的依赖实验指导书资源学习,转变为学生依托立体化资源进行自主学习的模式.

2.5增加阶段性测试,及时了解学生学习情况

以往教师只能通过学生提交的实验程序来了解学生知识掌握情况,而大部分实验作业是学生通过翻看教材和共同讨论完成的,教师无法了解学生掌握知识的真实情况,无法及时对掌握不好的知识点加以强化学习.针对这一问题,本课题组利用计算机技能自动测评系统对学生进行阶段性测试,通过2~3次的小测试,了解各阶段学生知识点掌握情况,及时补缺补漏.测试成绩也作为平时成绩的一部分,从而督促学生及时复习所学知识点,不至于边学边忘.


3结语

针对多年来C语言实验教学中存在的若干问题,本课题组经过一系列教学实验改革和实践,取得了较好的效果,学生对课程和教师的满意率也显著提高.在学生对26名任课教师的教学质量评价中,有5位《C语言程序设计》任课老师排名前7名,是历年来教学评价最好的一次.由此可见,对于C语言实验教学环节,改进方法在实际教学实施过程中取得了良好教学效果.今后要在实践教学中勤于思考、时时总结、不断改进,争取在教学实践中取得更好的成绩.