程序设计教学与实践改革探讨

(整期优先)网络出版时间:2010-05-15
/ 3

程序设计教学与实践改革探讨

洪升彪

洪升彪

(湖南工业大学计算机与通信学院,湖南株洲412007)

摘要:基于计算机程序设计教学在高等教育中的重要意义,本文分析了程序设计教学中存在的问题,并从理论教学、实践教学、教材建设和考试改革等几方面论述了计算机程序设计课程教学的思路与实践。

关键词:程序设计;精讲多练;案例教学;课程设计;教材建设;考试改革

中图分类号:TP311文献标识码:A文章编号:1007-9599(2010)05-0000-02

Practice&TeachingReforminProgramDesign

HongShengbiao

(TheUniversityofHunanTechnology,Zhuzhou412007,China)

Abstract:Basedonthecomputerprogramdesignteachinginhighereducationistheimportantsigniificanceoftheprogram,thispaperanalyzestheprogramsintheteachingofdesignandfromthetheoreticalteachingandpracticalteahcing,teachingmaterialconstructionandtestreformaspectsdiscussesthecomputerprogrammingcoursesteachingidealandpractice.

Keywords:Program;Teachessential&plentyofpractise;Casemethodinstruction;Courseexercise;Examinationrefrom

随着各行业对计算机技术要求的提高,目前各高校对所有专业的学生加强了程序设计课程的教学。本文分析了计算机程序设计教学中存在的问题,并结合教学实践探讨解决问题的措施。

一、存在的主要问题

程序设计教学难度较大,在学生稍具备或完全不具备程序设计基础时就学习程序设计使得教学难度增加。教学中有许多名词和概念对于初次接触程序设计的学生来说有一定难度,有些内容之间彼此交叉又互相关联,要求教师组合提炼课堂教学内容,有步骤分阶段的教授知识。加上由于地区和城乡差别,学生的起始水平相差较大,这对教师的讲授进度及复杂控制提出了比较高的要求。

学生学习目的不明确,学习兴趣低。起始水平的差异导致教学过程中部分学生失去听课兴趣,甚至丧失学习信心。另外大学低年级的学生没有完全从中学的学习方法走出来,或不适应大学的教学方法和手段,使得学习困难,积极性不高。多数学生以通过相关课程考试作为学习目的,不明白开设程序设计的作用,学习仅满足于简单的试题的解答,考完就丢,学习动力不足。

课程教学和考核方式单一。程序设计课程一般采用的是教师课堂讲授加学生实验的形式,教师在课堂上常常采用计算机多媒体“填鸭式”教学,多媒体教学虽上课信息量大,但不能完全取代传统教学手段,比如说一些算法的讲解和有些程序的运行过程,一定要结合口头讲授、黑板即兴画图说明等,否则学生很少主动思维或思维脱节,达不到教学效果。上机实验是程序教学的重要组成部分,而上机目标不明确、实验流于形式,大多数学生仅满足于将教程或实验教材上的程序代码输入电脑,没有程序设计各个环节中发现问题、分析问题、解决问题的煅炼与实践,有时实验课甚至变成了老师理论课的延续。传统笔试考核方式偏重于记忆性内容、语法、语句、计算能力的考核,缺少对学生编程能力和程序调试能力的应有测试。

教学内容偏重于语言语法、语句规则,而忽视编程能力的培养,包括使用参考资料的能力、使用开发工具的能力、Debug的能力和项目部署的能力,学生独立分析问题和解决问题的能力没有得到应有的煅炼与提高。这些内容在学生实际动手环节中很重要,而且这有利于学生学习能力的提高。因此有必要在程序设计教学内容和方法上做一些调整,以促进学生程序素养的提高。

二、解决程序设计教学与实践中问题的方法

(一)理论教学精讲多练,辅以案例教学

程序设计的教学目标是使学生具有使用该语言开发应用程序的基本能力,针对课程知识量大、学时相对较少的矛盾,为达到教学目的,教师讲授时应强调精讲而让学生多练,充分煅炼学生的实际开发和程序调试能力,最大限度地调动学生的积极性。

教学时应淡化繁琐的语法规则,以短小精悍、针对性强的案例引出基本语法和程序设计的方法和技巧,从而使学生形成深刻、牢固的记忆;强调开发环境帮助功能的使用,要求学生学会利用计算机学习计算机技术的能力。教学内容的组织从程序设计基础入手,始终围绕程序设计思想和方法展开,以大量课时介绍程序调试技术和一些典型的应用程序的设计思路。教学教程分若干个单元进行,每个单元以一个基本概念为中心,组织一批知识点。

教师在教学中的作用主要体现在两个:一是介绍本单元教学内容的核心概念,另一个是指导学生如何自行学习本单元的所有知识点,后一方面更重要,因为现在的各种程序设计语言,尤其是面向对象程序设计语言体系博大精深、内容庞杂,仅凭课堂听讲无论如何是不能完全掌握的,只有掌握正确的自学方法,并通过大量的编程实践才能逐步提高个人编程能力。

教学过程中利用现代化的教学手段,采用多媒体教学,通过课件将某些难以理解的概念以形象化的方法进行演绎,使之便于理解,也可以将项目开发的全过程在大屏幕投影显示出来,这种教学方式直观、高效、信息量大,是传统教学方式所不能比拟的。

(二)加强实验教学改革

程序设计是一项实践性很强的工作,在教材的选用上应尽量地选择带有大量实验内容的教材,以提高学生运用该程序设计语言进行编程和综合创新的能力。另外任课教师也可以根据学生的学习情况,自己设计实验课内容。程序设计语言课程仅通过课内实验环节是很难达到预想目标的,为此在课程基本内容结束后应增加课程设计教学环节。

课内实验主要是根据理论教学讲授的知识点布置实验习题让学生上机实践,以加深对课堂理论内容的理解和掌握,习题难易应有一定的梯度,以保证让不同水平的学生都能学有所获。在理解基本概念的基础上循序渐进提高应用程序难度,有意识加强综合知识点之间的联系。课程设计主要是在学完整门课程后综合应用所学知识完成比较大型项目的开发,培养煅炼学生模型抽象、程序编辑、程序调试的综合能力,在此阶段应将软件工程的思想融入到程序设计课程的教学过程中。课程设计选题应涵盖范围广,每个选题基本覆盖所有的教学内容,结构完整,工作量较大,学生可以独立完成,也可以参考其他资料和别人合作完成,只要能够完成这些应用程序的开发,他们的程序设计能力均可得到很大地煅炼和提高。

(三)根据教学目标和内容抓好教材建设

教材不仅应有对程序设计语言的的基本知识、常用算法的介绍,而且在对基本知识的介绍过程中,应给出一些与实际结合的例子,课后设计一些针对性较强的实验内容,使学生学完课程后,在动手能力、开发应用程序能力方面都得到较好的训练。

“精讲多练,案例教学”采用单元式教学,每个单元围绕一个中心概念组织一批知识点,传统章节体的教材无法满足这样的教学要求,因此要求教师编写程序设计课程的讲义,内容也按教学单元组织,每个教学单元包括以下内容:教学目标和学习要求:为教师和学生规定明确的教学和学习目标是非常重要的。教师用教学目标规划教案,确定讲授重点;学生可根据学习目标调整自学安排,及时检验学习效果。授课内容:是教师课堂讲授的内容。一般来说,“授课内容”是本单元所有教学内容的“纲”,起着联系本单元所有知识点的作用。自学内容:“自学内容”和“授课内容”一起组成了一个单元的基本教学内容,“自学内容”部分通常是“授课内容”的延伸和继续,由学生利用课外时间自学。调试技术:介绍集成开发环境的使用方法,以及如何调试、连接和运行应用程序项目。程序设计举例:例题均与本单元的授课、自学或调试技术等内容密切相关,是学生自学和复习本单元内容的重要参考资料,也是学生完成单元上机习题的模仿依据。单元上机练习题目:上机题目均为应用编程题目,均要求学生通过设计、编码和调试等步骤完成一个完整应用程序。

(四)以重视应用能力培养为导向改革考试内容和方法

考试的方法和内容对于学生学习具有重要的导向作用,就程序设计类课程而言,传统的笔试很难真正考出学生的实际水平。传统考试中对于学生源代码中的错误,是应当扣分的,但在实际项目开发过程中,源代码中的语法错误很难避免,而且借助于编译程序很容易纠正这类错误。程序中真正致命的错误应是“运行错误”,如地址越界、死循环等,会使程序不能正确运行,甚至导致死机。但是仅仅通过目视查看源代码是很难找出产生“运行错误”的原因的,只有通过熟练的调试技术,在程序的动态运行中才有可能找到“运行错误”的根源。学生调试程序的能力和经验,在传统考试中是没法得到考核的。

因此,改革传统的笔试,采用书面考试、上机考试、课程设计相结合的方式全面考核学生学习效果。书面考试可以侧重于对基本概念的理解和掌握方面,以考查学生对基础知识的掌握情况;上机考试可以让学生在规定的时间内对给定的设计题目编出程序,并在计算机上调试通过,评卷的依据是学生完成编译通过的可执行程序,据其已实现的功能和质量进行评分,不再参考源代码,以此考查学生的综合应用能力和快速编程能力;课程设计可将学生分成若干小组,每组布置一个稍大的有实际应用背景的程序设计题目,由小组成员分工完成,目的是考核学生运用程序设计语言解决实际问题的能力和协作编程的能力。

这种考试方法要求学生具有全面掌握程序设计的知识和应用开发能力,包括算法设计、模块接口、代码编写、程序调试等各个方面。这就要求学生平时多上机、多实践,真正熟悉程序设计的各个环节。这种考试方法对学生学习方法的导向是正确的,使学生认识到程序设计绝不是简单地对程序语言知识的掌握,也不仅是单纯地写代码,还要认真对待设计开发过程中的其它环节,才能真正学到程序设计的技术。如果学生平时不在课程上投入时间和精力,想仅在考前突击复习一下书本知识,则很难通过这样的考试。

总结这次教改,有几点深刻印象:制定课程教学目标,修订课程实施方案,对教学内容、进度和实验辅导安排统一调整;加强教研,促进教师间的交流,提高教师的业务素质;集体讨论制作教案和课件,统一教学计划,规范教师的授课内容,提高教学质量;加强教学网站建设,丰富网站内容,包括网上答疑、网上作业、教学课件展示等,为课程的教学提供网上支持;建设课程考试题库并不断更新,便于学生平时进行学习效果检测;加强实验教学和课程设计的力度,培养提高学生程序设计的综合能力。

参考文献:

[1]龚建华,刘惠.在高级语言程序设计中融入软件工程思想的教学改革思路[J].贵州教育学院学报,2009,3

[2]郑艳华,何永玲等.计算机程序设计类实验教学的改革-基于“任务驱动”方式的“小组教学”方法的尝试[J].福建电脑,2007,8

[3]马海英.培养程序设计能力的研究[J].电脑知识与技术,2008,4

[4]赖晓晨.程序设计课程创新教学模式探索[J].中国大学教学,2008,7

作者简介:洪升彪(1972.1-),男,湖南株洲人,讲师,硕士,主要从事网络信息安全与数据库技术的教学与研究