资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基础课与创新能力创新能力、素质教育属于当今教育领域最为热门的话题了,从学龄前到大学教育,无不积极探索和尝试。这着实是一件可喜之事。然而对于“能力” 、“素质”的内涵,却是众说纷纭。其实这的确没有一个放之四海而皆准的定义,在不同的教育阶段、不同类型的学校,根据不同的培养目标,能力和素质的侧重点也是不一样的。本文结合作者在清华大学的教学实践,着重分析在大学本科计算机程序设计的基础课中,如何培养学生的创新能力。 一、创新能力乃天赋潜能 说到创新能力,往往总觉得是少数精英才具备的。其实创新能力正是人类与生俱来的能力。创新能力不是空中楼阁,而是实实在在体现在学习能力和工作能力之中。学习能力是一个人获取新知识、新信息,掌握新理论和新方法的能力;工作能力是发现问题、分析问题和解决问题的能力。而创新,就是要发现别人没有发现的问题和现象,得出别人没有得到的、与众不同的分析见解,研究出新的理论和方法去解决问题。 从呱呱坠地开始,孩子就睁大探寻的眼睛,不断地认识周围的世界,对一切新事物充满好奇,无所畏惧地去尝试一切,对于玩具也总有自己独特的新玩法,总有拆开重新装配的欲望。但是,后天的教育、前人的经验不断地束缚了这种创新意识。我们现在已经意识到这一点,所以大力提倡培养创新能力。其实不如说是保持天赋的创新能力,至多是发掘人类本身所具有的潜能。当然,我并不是说中规中矩的教育和学习前人的经验不重要。无以规矩不成方圆,前人的经验也是前人创新探索的结晶,绝对是珍贵的。只是以什么样的观点和思想方法去学习甚为重要。 二、创新能力的培养关键在于教育思想,基础课至关重要 在大学的课程中,谈到创新能力培养,便自然联系到先进的实验设备、前沿的科学技术、尖端的研究项目。诚然,这些对于培养学生的创新能力非常有益,但是并非只有具备这些条件才能培养学生的创新能力。同时这些也都只是外在的条件,教育思想和观点才是最主要的。在强调培养学生能力的今天,我们采用了诸如网络教学、实践教学、案例教学、项目训练,等等新的方法和手段,更多的方法和手段仍在不断涌现。然而这些都只是外在的形式,形式必须为思想和目标服务才有意义。有了正确的教育思想,在任何条件下以任何形式都能够充分保护和发掘人类的创造性潜能。如果教育者的思想首先受到禁锢,那么一切的先进设备、优越条件便都会成为协助禁锢的工具。反思一下,为什么在自然科学如此发达的今天我们却感到了学生创新意识的危机? 人类创新意识和能力的保护和发掘,开始得越早越有益,这也正是我们现在从小提倡素质教育的原因之一。在大学教育阶段呢,基础课相对而言对于创新能力的培养起着最为重要的作用,这一点却常常被忽略。一谈到创新,往往首先想到要通过什么样的尖端课题培养优秀的博士生,要让教师和学生在世界顶级刊物发表优秀论文。而基础课,总是被认为与创新不沾边,只是传授知识、奠定知识体系结构的基础,这其实正是基础课教育不被重视的原因。 在学前教育、基础教育阶段,在大学的基础课学习阶段,培养创新能力的关键在于引导学生发现和运用自身潜在的创新精神,养成思想不受禁锢,勇于质疑,敢于探索,善于动手实践自己的独特想法的基本素质。如果说基础教育阶段是从人文角度对这种基本素质的全面培养,那么大学的基础课阶段,就是从专业角度,对创新意识在专业领域的延伸起着关键作用。如果没有这种基础的奠定,在专业研究领域进行创新便成为空谈。 三、学习能力是创新能力的基础 要创新,首先需要站在巨人的肩膀上,要学习、掌握现有的科学与技术。而学习过程中采取的观点和方法是关键。 以计算机程序设计类的基础课为例,这样的课程一般都是安排在大学一年级。我们要向学生讲授程序设计语言、程序设计方法、算法,以及函数库/类库中对常用算法的实现。如果只是要求学生学会这些现有的理论和已经实现的技术,并且达到熟练运用,那么我们就是在扼杀学生的创造性。为什么这样说呢?因为如果他不知道有这些现有的成果存在,他发现需要解决的问题时总会想办法去解决,而创造就发生在“想办法解决”中。但是现在老师告诉他:现在有实现技术了,你学会用就可以了,他便不再质疑、无需创造了。如果每一门基础课都这样,学生也就习惯于拿来使用,丢掉了创新意识。 这样说,并不是不要学习。如果不学习,就丢失和浪费了前人的创造。如果一切总是从盘古开天地研究起,人类就会永远停留在懵懂和愚昧状态。只是学习的时候,不能迷信任何理论,不能依赖任何技术实现。要有独立的见解和立场。比如介绍一种程序语言时,首先要以发展的观点来介绍。这类课程和教科书上一般都会介绍计算机程序语言的发展历程、程序设计方法的演变,可是很多老师只是将这些作为开场白,学生也只是听热闹、听故事而已,这就没有达到目的。介绍历史和发展,最主要的是向学生传授一种发展的观点,让学生知道每一种新的理论、方法、技术都是为了解决什么问题而出现的,还要启发学生,未来他将面临更多、更复杂的新问题,那时候,他应该去发展新的理论、方法、技术,去解决新的问题。 在讲解程序设计语言的语法时,如果仅仅讲解和验证语法,学生会越学越烦,会觉得语法太多、记不住,会连学习兴趣都失去了,更谈不上什么培养创新能力了。所以应该首先提出一些新的问题,让学生思考如何解决,当学生发现用已经学过的语法不能解决,或者不方便解决新问题的时候,启发学生:如果是你来设计编程语言,你希望设计什么样的语句用来解决这种问题呢?这时学生会有各种各样的见解。让大家充分思考,然后引出新的语句,同时说明,这只是一种设计,目前来说相对比较合理,但是随着新问题的出现,语法还会不断发展的。 在基础课中要鼓励学生去反思、去批判现有的程序语言,要珍惜学生在学习过程中迸发的创新火花。比如经常会有学生质疑,为什么一定要这样写?为什么那样写不行?如果老师简单地回答:这是语法规定,你必须遵循,那样就阻止了学生质疑,而质疑正是创新的萌芽。所以应该首先肯定学生的质疑精神,然后告诉他:既然这种语言是被广泛采用的国际标准,就一定有它的道理,但是要真正明白其中的道理,你还需要深入学习其他课程,比如编译原理。你的疑问先留着,等你首先理解了这个语言背后依据的理论和实现技术,你再深入质疑。那时候如果你有更好的观点,可以通过标准组织的途径,给国际标准提出修改意见,或者设计出一种新的编程语言。这样,学生就会愿意去深入学习现有的知识,但是又不迷信任何权威。 在程序设计基础课中总要介绍一些常用算法的,但是又没有时间详细地讲算法理论,因为后续还有计算方法和数据结构课程。这时切忌让学生死记硬背书上的算法,对每一个简单算法,都要让学生理解为什么是这样设计的,而且要鼓励学生自己设计出不同的方法。这时有些学生就会写出各种不同的算法,那就引导他简单地从时间、空间效率,程序的可读性等比较明显的角度去评价、对比不同的算法。告诉学生,如果将来你解决新问题时,没有现成的算法,或者分析了现有的算法不能满足你的要求,那你就需要自己研究新的算法了,这就是创新。这时学生好像豁然开朗:原来创新并不是什么遥不可及的事情! 四、发现问题和解决问题是创新的开始 所谓创新,直白来讲,就是发现了新的需要解决的问题,在广泛研究了现有的理论和方法以后,认为不能解决,或者解决得不够好,于是去研究新的理论和方法。所以要能够创新首先必须善于发现问题、勇于解决问题。这种素质也必须从基础课开始培养,如果在基础课中学生习惯了只完成老师规定的作业(包括大作业) ,那么做研究的时候要他自己选方向、选题目,就会感到突然和茫然。 在几门程序设计课程中,我都是让学生自己选题、设计大作业。从开学初就让学生自己去发现有什么问题需要用计算机来解决,然后通过课程的学习逐步设计解决方法,并实现。在整个过程中,学生要经历选题(通过调研发现问题) 、设计、实现、测试、答辩。当然,由于所学的知识有限,很可能只能解决整个问题的一小部分。但是学生学会了如何去发现问题、分析问题和解决问题,这是学习如何研究的开始。如果仅仅完成规定题目的大作业,学生只是完成任务,至多达到技术培训的目的。 五、学术道德是科学研究的基本素质 创新实际上应该是一个很自然的过程,对于“新”的探索和研究应该是发自内心的,没有太多功利的。事实上一些伟大的科学家只是出于对科学的热爱、对自然界的执著探索去进行研究,正是这样的研究成果为世界创造的巨大了财富,为人类带来了广泛的利益。学生从学习阶段开始,对研究就不能抱有功利心,而应该有更多公益心。只有这样,将来在研究工作中才能够真正尊重科学、尊重他人的成果,才能严谨、诚实,才能做出真正有价值的研究。相反,如果在学习基础课的时候,可以为了分数不择手段,那么将来在研究工作中为了沽名钓誉也会不择手段。 所以在基础课中,培养学生良好的学术道德便是一个重要任务。但是这种培养不是通过说教,说教是没有用的,要通过教学过程中的每一个环节,去养成。说到这里,不得不说现在我们整个社会对于养成学生诚实、善良的品格所发挥的正面作用不够,以至于在大学的基础课里还要去认真培养诚实与善良。如果在大学本科还不培养的话,那么进入研究工作以后,个别人的学术道德就很成问题了。 在大学里,学生之间抄作业,请别人代写作业,抄袭论文,考试作弊等现象时有发生。虽然各个学校的管理制度越来越严,但是个别学生还是会铤而走险。在基础课中,学生数量很大,而教师人力却很少,一味地靠监管实际上摘要:本文基于教学实践,分析了当前高职院校 C 语言程序设计教学中存在的问题,探讨了教师应如何改革现有的教学模式,更新理念,加强对学生程序设计能力的培养和训练,以提高高职 C 语言程序设计的教学效果。 关键词本文来自:计算机毕业网 :高职教育;C 语言;教学改革;教学方法 1 引言 语言具有强大的功能,是应用最广泛的计算机程序设计语言之一,同时 C 语言又是理想的结构化语言,可以作为部分计算机课程的教学描述语言,是数据结构、操作系统、汇编语言等计算机课程的基础。因此,国内很多大专院校都开设了语言程序设计课程,全国计算机等级考试、专升本等考试也都将 C 语言作为一个重要的考核内容。因此,学好 C 语言已成为一种越来越普遍的需要。 近几年来,笔者先后承担了计算机网络技术、计算机应用技术等高职专业的 C 语言程序设计教学任务,在教学过程中发现,高职学生普遍认为 C 语言枯燥难学、概念复杂、容易出错,学生的畏学、厌学情绪使得教学过程困难重重。那么,如何改善这种状况呢? 下面就 C 语言课程的教学改革提出自己的一些看法和建议。 2 高职 C 语言程序设计教学的现状 2.1C 语言自身的特点造成学习困难 C 语言具有数据类型和运算符丰富、语法限制不严格、程序设计自由度大、可由用户自定义数据类型等特点。然而,上述特点既是 C 语言的优点,也是 C 语言学习的难点。运算符丰富这一特点虽然方便熟练掌握 C 语言的用户使用,可对于初学者来说,却是增加了学习难度。例如自加 (+) 和自减 (-) 运算符,虽然能简化程序和提高运算速度,但+/-运算符只能对变量进行运算,并且运算符前置和后置的效果不一样,初学者在编写或分析相关程序时往往会出现错误。再比如语法限制不严格、程序设计自由度大这一特点,往往造成学生弄不清哪种表示是正确的,增加了程序理解的难度。所有这些都说明 C 语言的特点给初学者带来了较大的难度。 2.2 高职学生学习 C语言的预备基础知识薄弱 从实际教学经历来看,制约高职学生学习 C 语言的因素主要有四点: 1) 计算机基础差。尤其是来自老少边穷地区和农村地区的学生,由于受学习条件限制和高考指挥棒的影响,在中小学阶段较少接触计算机。 2) 逻辑思维能力差。C 语言课程主要的教学目标是培养学生的程序分析、设计和调试能力,这要求学生具有较强的逻辑思维能力,许多大学生在高中阶段对这方面的能力训练不足,造成编程时逻辑不够严密。 3) 英语基础差。计算机高级语言普遍使用英文,部分英语基础差的高职学生往往望而生畏。 4) 数学
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号