实施开放式教学,培养学生创新能力

时间:2022-10-21 10:43:05

实施开放式教学,培养学生创新能力

文章编号:1672-5913(2008)10-0067-02

摘要:本文就如何在本科程序设计类课程教学中培养学生的创新能力进行了初步的探讨,提出了实施开放式教学的思路和实施方案。

关键词:创新型人才培养;开放式教学;程序设计

中图分类号:G642

文献标识码:B

1引言

大学的课程教学在创新型人才培养中起着无可替代的关键作用。我们在长期教学实践中,对培养创新型人才思想如何具体地在程序设计类课程教学中实施进行了一些有益的探讨和尝试。针对程序设计类课程的特点,在教学理念、教学内容组织、教学过程各环节的实施中都渗透了培养学生创新能力的新思想。本文总结了我们的思路和做法,提出实施开放式教学,有利于培养学生的创新能力。

程序设计类课程是计算机专业的基础课程,在计算机及其相关专业培养计划中占有重要的地位,它们既重视培养程序设计的基本理论、基本概念,又重视培养程序设计与开发的技能技巧,最终体现为培养学生用程序解决实际问题的能力。学生解决问题的能力可以总结为能否清晰的提炼问题,进行形式化的表达,再用规范的计算机程序写出解决方案。在北京工业大学,我们将开放式的教学理念和教学方法应用于程序设计类课程,对培养学生创新能力进行了尝试。本文总结了我们的一些思路和做法,涉及的程序设计类课程有:高级语言程序设计(或称C语言程序设计)、C++程序设计、Windows编程基础等。

2传统教学过程中的问题与不足

要进行教学改革与创新,首先要研究以前的教学经验与教训。计算机科学与技术学科虽然年轻,但也有约50年的历史,对程序设计类课程教学法的研究一刻也没有停止过,已经积累了非常多的教学经验,有了成熟的课程和教学体系,这是我们必须继承和发扬的。但是,我们在学习继承这些经验的同时也体会到诸多传统教学系统中的问题与不足,我们总结归纳为以下几点:

⑴ 教学内容安排和教材侧重语言规范,轻视程序设计规律。目前绝大多数教材根据语言规范的内在逻辑层次分为若干章节,每章节对语言规范力求面面俱到,求全责备。这种方式确有其优点,层次分明,条理清晰,内容详尽,对于已经有程序语言基础的读者看来确实合理清晰,但对于完全没有程序设计概念的初学者却有很多弊端。例如有些C语言程序设计教材中,讲解数据类型语法知识,仅整数类型就列出了六种之多;讲解各种运算符和表达式,占用相当的篇幅,而这些章节的学习者对编程几乎还没有什么体验。反之,对程序设计方法的学习,对程序设计整体的把握和对编程思维习惯的培养却明显不足。过分纠缠语言细节的布局,使得学习难度增加,需要盲目记忆的内容过多。由于没有编程的成功体验,死记硬背的东西越多,学生越易产生厌学情绪。这种面面俱到的方法貌似基础扎实,实则浪费时间,并且越是强调细节,越是难以把握程序设计技巧,僵化学习头脑,不利于学生提升学习的广度和深度,不利于创新能力的培养。

⑵ 例题和习题注重解释和练习语法问题,忽视程序设计方法。由于死记硬背语法带来的学习难度,使得教师需要相当数量的例题和习题帮助学生理解语法,大量的实践时间纠缠在语法上,不利于培养学生掌握程序设计方法,从全局角度把握程序;不利于提高分析问题解决问题的能力;也没有时间、精力和兴趣自己查阅资料,扩展知识面。这对创新能力的培养显然是不利的。

⑶ 考试试题侧重语言细节。考试导向是不可忽视的学习指挥棒,特别是对于刚刚经过高考的低年级学生。目前我们看到很多C语言程序设计课程的考试题太多的关注了语法细节,而非程序设计。我们认为在学习用语言进行程序设计的过程中,忽视一些语法细节问题,能够使学生从更高的层次、更全面的把握知识,学生可以在编程过程中自行学习讲课中忽略的语法细节。这样可以更好的培养学生的探索意识、自学能力,使学生勤于思考、勤于锻炼创新能力。

为了克服这些弊端,培养学生创新能力,结合程序设计类课程的特点,我们提出“开放”式的教学思路和方法,并在我们的课程教学中实践,初步取得较好的成果。本文在下面几个方面介绍我们的想法和做法,供大家参考。

3开放式教学的思路与实践

⑴ 安排开放式课堂教学内容,提高课堂效率

在高等学校,每门课程的课时是有限的,以C语言程序设计课程为例,许多教师抱怨课时少,难度大。我们在尊重但不拘泥于教材的基础上,采用了开放式的思路安排教学内容。教学内容安排的指导思想是根据程序设计的需要来学习,以作业和课程设计为驱动,减少单纯枯燥的语法学习。“开放式”教学内容安排主要体现在下面两个方面:

① 教材之内的内容开放。

不墨守成规,大胆对教材内容进行取舍,恰当选择,以前必讲的语法细节少讲,甚至不讲,有利于提高程序设计能力的内容多讲、细讲。课上不讲的细节留待学生在完成作业和程序设计题目时自行学习和补充。例如C语言程序设计课程,数据类型讲解,重用途轻语法细节;顺序、选择、循环三种基本结构的讲解,以案例推动,注重程序设计中的应用,以循环为例,for、while、do-while三种基本语句用一个案例,一起讲解,节省课时,并且对程序循环也有更深的理解,学生能够当堂编写循环程序片段。再如,尽早讲解函数,因为结构化程序设计即以函数为基础,这样可以更好的渗透结构化程序设计的概念。函数参数是C语言程序设计教学中的重点和难点内容,在编程解决实际问题中也十分重要,需要占用更多的课时,要按教材安排细致讲解,并且还要在课程的后期再进行总结提高,归纳值参数、地址参数等用法的不同特点,引导学生体会应用的情况,比如地址做参数常用于返回函数的结果等。

② 教材之外的内容开放。

在课程设计和大型作业的驱动下,大力鼓励学生提高学习深度和广度,突破课堂教学的局限。引导学生提出自己感兴趣的编程需求,再自己查阅资料,补充知识,形成自己的解决方案,最后成功完成编程实践。例如,课程设计题目要求学生完成一个小游戏的设计,学生为了将游戏设计的更逼真漂亮,自行学习C语言的图形显示方式的相关知识。再如,学生开始编程时没有结构化程序设计的经验,使得程序越写越庞大混乱,这时教师适时引导,可使学生对结构化程序设计有亲身的体验和认识。学生在这样有意安排的教学过程中有了成功的体验,极大增加了学习的兴趣,挖掘了学生的学习潜力,激活了发现问题、解决问题的创新意识。

⑵ 选择经典案例,熏陶学生良好的编程习惯

对于初学者,模仿是最好的老师。在课程教学中我们突破课程的局限,选择了有一定实用价值,有一定难度的经典案例供学生研读模仿。这样使学生在学习之初就看到程序的威力与精妙,养成良好的编程思维和编程习惯,也使学生对程序设计有更准确的理解。例如Windows程序设计课程,这门课程的大部分内容要学习MFC类库。大家知道,MFC的经典而庞大的应用程序架构在短短的课程教学时间内是很难让学生理解清楚的,因此这门课程采用开放式教学就尤为重要。教材的案例多趋于简单,尽管有些教师认为已经比较难了,但我们认为这种局限于局部细节的难度不利于提高学生的程序设计能力。我们的想法是越是陷于局部越是难以看清框架,学习越枯燥,不利于激发创造力,不利于程序设计能力提高。我们的做法是课上介绍框架和学习的方法,课后精选了MSDN中的经典案例,布置类似作业供学生模仿。这一过程使学生有了很大的成就感,兴趣大增,自信心大增,对于在课上不易弄懂的程序架构问题也开始有了深的思考。

⑶ 设计开放式的课程设计题目,激活学生的创作激情

课程设计是开放式教学体系中激活学生参与激情的关键环节。我们选择的课程设计题目通常有实际的应用背景,有一定趣味性,运用知识点的难度略高于课上内容。课程设计题目是开放的,给出的课程设计题目要求只是课程设计的基本要求,明确告知学生,完成基本要求只能获得70分的成绩,基本内容之外的功能可由学生任意的想像发挥。这样的安排激活了学生的潜能和竞争意识,促使学生大量阅读参考资料,学习课内、特别是课外的知识。当他们最终完成课程设计时,就获得了很好的“顶峰体验”。而这种“顶峰体验”正是培养创新型人才不可缺少的。

⑷ 利用好网络媒体,建立活跃的网络论坛

网络的发展给教学活动带来了新的空间,很多学校也已开始大量借助网络辅助教学。除了通常方法使用网路媒体辅助教学,我们在开放式教学中充分利用答疑和论坛的环节,教师和学生均可以在网上提出问题和回答问题。特别提倡学生之间的相互答疑,从政策上配合以“积分”等形式,对提问多回答问题多的同学给予奖励。

⑸ 控制考试的导向作用,提高学生的程序设计能力

考试在学习中的导向作用是毋庸置疑的,针对开放式教学的实施过程,结合程序设计类课程的特点,我们在考试命题时侧重考查程序设计能力,尽量避免死记硬背的知识环节。考试题型多为程序阅读题,程序填空题和综合的设计题,避免更适于考查单个语法点的选择题和简单填空题等。

⑹ 建立开放的师生关系,做学生的良师益友

开放的师生关系是实施开放式教学的保证。建立开放式的师生关系首先要求教师的心灵应该是开放的,教师要用自己的真心平等地对待和热爱自己的学生。既要爱护基础好、学习上进的学生,指导他们带领其他同学使课程学习更上一层楼;还要不歧视基础差、学习等各方面有问题的学生。另一方面,指导学生开放自己的心灵,克服畏难情绪,增强自信心,树立正确的、严谨的科学研究的态度,充分与老师和同学交流,培养良好的团队合作精神。学生的心态开放了,他们才能大胆地与教师同学进行互动,才能更好地培养创新能力。

4结语

培养创新型人才是一个重大的、紧迫的、长期的、困难的任务,培养创新型人才就要从今天做起,从我们教师每个日常工作做起。实施开放式的教学就是要开放师生的教学思想,开放教学的内容和组织形式,在开放的思维和环境下,学生的创造力和潜能得到更好的发挥,使学生在成功体验中培养创新的意识和能力。

参考文献

[1] 杨冬等. 任务驱动的高级语言程序设计教学[J]. 吉林大学学报(信息科学版),2005,(8):29-31.

[2] 张丽静,潘卫华. 高级语言程序设计教学改革研究与实践[J]. 中国电力教育,2007,(11):48-49.

上一篇:符合湖南城市学院特色的信息管理与信息系统专... 下一篇:深化教学改革 构建创新型人才培养体系