21世界, 我国的高等教育得到了迅速的发展, 同时也面临着培养具有创新意识、创新能力的新一代大学生的重要任务。江泽民总书记指出:“创新是一个民族进步的灵魂, 是一个国家兴旺发达的动力。……, 一个没有创新能力的民族, 难以屹立世界先进民族。”这段话生动地揭示了实施创新教育的重要性, 必要性以及紧迫性。
《C程序设计》是在大一下学期开设的一门专业基础课, 现行实验指导书多以验证性实验为主, 实验步骤、程序流程图以及源程序清单都是现成的, 学生实验时是“照处方抓药”。甚至有的学生不来做实验, 也能写出较高水平的实验报告。这种教学方式使学生的依赖性急剧增加。结果是“不懂就问”。等老师把问题解决了, 然后他就说“老师, 我可以走了吗?”老师处于一个尴尬的境地, 碰到的问题都是老师解决的。这样下去, 学生做实验纯粹是走过场, 实际上他们什么也没有学到, 什么也没有感受到。为了改变这种情况, 近几年来在教学实践中进行了改革和探索, 紧紧围绕着有利于培养学生的创新能力, 进行了如下的一些尝试, 从几个方面探讨了改善C语言程序设计实验教学效果的方法以供同仁点评。
1 激励探索, 培养学生创新
马斯洛在《人的动机理论》中提出的“人的五种基本需要”。这五种需要依次排列为:生理、安全、爱、尊重、自我实现。“生理需要”指的是寻求食物等生存必需品, 以保证能够活动。当生理需要满足之后就会产生“安全需要”, 喜欢有规律的生活节奏, 期望周围是可预测的和有秩序的。生理需要和安全需要满足后, 就会产生:“爱与归宿的需要”, 渴望友谊和爱情, 渴望与亲友和团体保持密切关系。爱与归宿的需要满足了, 人又会产生“尊重需要”, 希望有稳定的地位, 感到自尊, 并能得到别人的尊重和高度评价。这些需要都满足了, 人还有最高一层的需要, 即“自我实现的需要”, 希望自己成为心中所期望的人, 完成与自已的能力相称甚至超过自己能力的各种事情。
马斯洛提出的五种需要, 囊括了人生的最低要求和最高境界。无论是在课内还是课外, 应尽量让同学们知道:只有努力学习, 才能获得最起码的独立谋生能力;要想实现更多的人生需要, 还得加倍努力学习, 全面提高综合素质, 争取更大的发展空间, 更多的选择自由, 争取更充分地自我实现。明白这些, 求学和人生规划才会成为学生们主动关心的事。
爱因斯坦有句名言“兴趣是最好的老师”。大一学生好奇心强、求知欲旺, 对许多现象都怀有浓厚的兴趣, 在教学过程中, 学生容易提出一些非常简单甚至低级的问题, 比如什么是指针?其实指针就是地址, 而地址相当于一个教室的房间号码 (编号) 。比如301教室, 301就是地址, 也是指针。
古人云:“学起于思、思源于疑”“知疑善思”是现代人应具有的重要素质, 每个人都有求知欲, 表现欲, 对案例进行分析, 讨论就能满足这些欲望, 学生逐渐养成多角度、多层次看问题的习惯和能力, 最终形成自已的思维特色, 学会了“渔术”还怕钓不到鱼吗?比如在讲解算法时, 可以采用“小组探索式”教学。每一个小组作为一个独立的任务单位、然后给出一系列由浅入深的题目, 让每一小组采取讨论的方式, 从最简单题目入手用N—S结构流程图将算法表示出来。通过这种方式, 学生在两小时的学习中很快掌握了算法的表示, 学习效率得到了很大的提高。通过这种方式, 学生在学习过程中不但体验到获得知识的乐趣, 而且使学生在学习过程中加强了集体参与的能力以及与他人沟通合作的能力。
2 精心设计教学内容, 培养学生创新
由于教科书内容比较抽象, 牵涉到的概念比较复杂、规则较多, 在教学过程中不能过分强调知识的完整性和系统性, 应将知识点分解成许多单元, 一个单元为一章或一节, 将知识和案例放在同一章或一节中, 不要把复杂的概念集中在一起或放在某一章中, 每一章都引入新的概念, 而每一章的台阶都不是很高, 使学生能循序渐进, 逐步树立起编程的兴趣。初学者对函数参数的所谓“单向传递”和“双向传递” (大部分书上都这样说) 感到不好理解。不好理解的原因是所谓“单向传递”和“双向传递”没有把问题的本质揭开, 函数调用分“值调用”和“地址调用”两种。函数调用中“值调用”和“地址调用”是理解函数调用的关键。
(1) 值调用:指的是“传送给”的是值。这时即使主程序中的变量和函数中的变量同名, 但它们不在同一个地址上, 函数中变量的值发生改变, 并不会改变主程序中变量的值。当从函数返回到主程序后, 函数中变量的值被释放 (静态变量除外) , 这时, 在主程序中看不到在函数中被改变的值 (静态变量除外) , 即所谓的单向传递。 (2) 地址调用指的“传送给”的是地址。这时函数中的变量和主程序中的变量在同一个地址上 (与变量是否同名无关) , 同一个地址上的内容发生变化, 在函数中和在主程序中的效果是一样的, 即所谓的双向传递。
在学生上机过程中实验指导教师可以准备好几个实现相近或相似功能的不同题目, 程序中关键的代码和函数空出, 让学生自己编写、修改和调试, 也可以只给题目让学生独立编程, 通过讨论交流的方式、给学生提示。充分发挥他们的想象力, 如果他们能完成基本功能, 还可以加扩展功能, 谁能做出来还可以给谁加分。如果课内的时间不够, 还可以把实验室对外开放, 充分利用课余和周末的时间。
3 成立兴趣班, 培养学生创新
从大学一、二年级开始通过笔试、面试, 挑选30人作为兴趣班, 固定100平方米实验室给兴趣班用。利用课外的时间由专人在指定的教室或实验室进行培训, 开设一些新的课程。从专业基础课出发、通过一系列的综合训练, 通过小产品的制作, 使他们产生兴趣。针对大二、大三的学生结合嵌入式技术, 充分利用C语言程序设计这个开发平台做一些研究性、探索性的课题或直接参与教师的科研课题。有的同学通过实际产品的制作, 然后把制作的产品写成论文, 最后在核心期刊上发表了。有的同学甚至写到:“说实话, 兴趣班使我第一次找到了上大学的感觉”。可见、开放实验室是培养创新素质人才的重要条件。积极鼓励他们参加全国、全省的各类竞赛, 积极创造各种条件, 让学生有动手的机会, 在这期间教师要有牺牲精神和无私奉献精神。
4 建立新的考核机制, 鼓励学生创新
改革传统的理论课与实验课的从属关系, C语言实验课单独设课, 有自己的教学大纲和教材, 不断加强教材的建设, 不断研究国内外同类教材的最新成果及时调整实验内容。通过校企合作, 加大工程训练的力度。由于上机考试的试题是由试题库随机产生的, 避免了相互抄袭的的现象, 也体现了考试的公平性, 也能考出学生的真实水平。根据人才培养的需要可以用上机考试代替笔试, 最后用上机考试的成绩结合平时考勤的成绩作为该门功课的总成绩。
5 建设网上实验室, 培养学生创新
所谓网上实验室是一个把实践教学管理系统、实验仪器与实验设备管理系统、实验课排课以及教学运行系统、仿真实验以及网上仿真实验室等融为一体的多功能的网上综合运行系统, 根据实际情况, 网上实验室建设应有以下功能。
5.1 开放式的教学管理系统
内容包括“ (1) 学生选课系统, 学生可以根据每个实验项目在整个实验成绩中的权重自由选择实验项目和实验时间。 (2) 学生成绩管理由任课教师、实验指导教师或实验室管理人员进行登记, 统计并上报成绩等子系统。 (3) 所有开出课程的实验项目查询、实验中心介绍、实验中心通知等。
5.2 学生实验帮助指导系统
(1) 预习与实验教学指导系统:对实验项目内容中的要求, 仪器设备、实验原理等提供一个预习帮助系统, 遇到不懂的问题就可以通过帮助系统来解决。该系统中应介绍本实验项目内容有关的背景资料, 目前主要的技术线路, 预习线索、练习测试题、实验过程中实验注意事项等。
(2) 仿真实验:根据具体情况、部分实验项目通过仿真或网上实验进行, 这样可以节约实验室建设的成本, 避免资源的浪费。
(3) 提交实验数据和实验报告评价系统。评价系统除能正确的评价学生的实验结果外, 还应根据学生实验结果中出现的相同或相近问题, 正确引导学生并加以解决。
5.3 实验仪器设备信息查询系统
内容应包括:实验仪器设备的名称、生产日期、出厂日期、使用寿命、售后服务、使用状况、使用次数等不同关键词查询。也可以按实验项目名称查询该实验项目内容所涉及的全部仪器设备。
5.4 实验管理员和超级管理员系统
实验超级管理员系统应由主管实践教学的副院长或实验中心主任指定专人负责, 确定涉及上述系统的各层次管理员子系统进入的权限或口令。超级管理员系统除负责各系统运行状态监督外, 还可随时向主管实践教学的副院长或实验中心主任提供整个实验室的各种信息。
网上实验室是由上述各系统构成的一个综合系统, 各子系统之间相互联系, 相互补充, 相互协调, 具有相对独立性。随着网络技术、多媒技术的高速发展, 网上实验室的建立对于实践教学改革和实验室建设的作用是十分显著的。目前, 我们已经建立了作为网上实验室子系统的开放式教学管理系统, 运行良好。其它子系统正在加紧建设之中, 从实际生活来看, 网上实验室的建设有利于开放式教学的实施。形成了教学管理、仪器设备管理、教学手段、教学方法的现代化建设、有利于创新人才的培养, 全国各高校实验室的实际情况各不相同, 自成体系、各有千秋, 网上实验室建设的内容和水平一定会有差异但培养具有创新精神和创新能力的高素质人才的目标是相同的。
6 结语
C程序设计教学过程是一个不断精益求精的过程, 如何提高学生的创新能力, 对于每一位教师, 只要能把提高学生的学习兴趣放在首位, 不断在教学教程中进行探索、积累, 才会取得较好的教学效果。如何在C程序设计实验教学中培养学生的创新能力, 还有许多问题有待于广大教育工作者进一步探讨。
摘要:实验教学是整个教学体系中的一个不可忽视的重要内容, 对培养大学生的创新能力、综合素质意义重大。如何在C程序设计实验教学中培养学生的创新能力, 从几个方面进行了教学改革与实践。
关键词:C语言,实验教学,教学改革,创新能力
参考文献
[1] 谭浩强.C程序设计 (第二版) [M].北京:清华大学出版社, 2005.
[2] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社, 2003.
[3] 赵克林.C语言程序设计教程[M].北京:北京工业大学出版社, 2005.
[4] 马庆发.中国职业教育研究新进展[M].上海:华东师范出版社, 2008.
[5] 冯博琴.Visual C++大学教程[M].北京:人民邮电出版社, 2008.
[6] 崔洪斌.AutoCAD2005实践教程[M].北京:高等教育出版社, 2005.
[7] 陈华新.集大成得智慧—钱学森谈教育[M].上海:上海交通大学出版社, 2007.