时间:2024-05-04
李文敬 廖伟志 闭应洲
摘要:本文介绍了计算机程序设计课程实验教学在提高学生编程、系统开发能力中的作用、特点以及现状。通过对构成学生编程和软件系统开发能力的要素进行研究,提出了计算机程序设计课程实验教学的量化质量标准,并对质量标准所包含的指标进行了必要和可行性分析。初步试验表明,实施该质量标准收到了一定的成效。
关键词:程序设计课程;实验教学;质量标准;编程能力
中图分类号:G642 文献标识码:A
引言
目前,在高校的计算机本科专业中,程序设计课程都制订了较为完整的课程教学大纲和实验大纲,任课教师以此作为课堂教学和实验教学的指导。任课教师按照程序设计课程教学大纲的要求进行教学与考核,基本达到了考核学生所掌握的程序设计基础理论和基本编程能力,基本符合理论考核的质量标准要求。但是,按照实验大纲进行教学和实验,学生的实际编程能力和动手能力却没有得到很大的提高,学生的软件系统开发能力与社会的要求相差较远。为此,我们对现有的实验教学质量标准和实验教学大纲进行研究分析,发现目前的实验教学质量标准大都是学校层面制订的,用于对实验教学进行宏观指导和管理的文件,而课程实验教学的质量标准却不多见。目前,普遍的做法是以实验教学大纲代替实验教学质量标准来实施,但实验大纲仅起到实验指导以及提出简单的、模糊的实验要求的作用,没有明确的、具体的、量化的指标。因此,我们从提高学生编程能力和动手能力出发,对计算机程序设计课程的实验教学质量标准进行研究,用明确的、量化的、具体的指标对学生的实验提出具体的目标要求,构建程序设计课程实验教学的质量标准。有了实验教学质量标准,使学生明确实验时要完成的任务,教师在实验教学过程中所承担的具体责任,学校教学管理部门的质量监控更加具体、规范和科学,对提高学生编程能力和动手能力起到保障和促进作用。
1计算机程序设计课程实验教学的作用
计算机程序设计课程实验教学的作用主要体现以下几个方面:(1)通过验证性实验,上机输入程序代码、运行、调试和修改等操作,达到掌握各种语句、语句结构、语法和规则;逐步掌握各种出错提示的含义和修改程序的办法;加深对程序语句的理解,熟悉简单程序的设计方法,提高学生的读程能力。验证性实验仅能体现出学生对本课程各种语句的基本掌握和对简单程序的理解。(2)通过设计性实验,使学生掌握利用计算机来求解一个具体问题的步骤,它可以体现一个学生编程能力与水平的高低。设计性实验的步骤包括:第一步,分析问题;第二步,建立数学模型,学生充分运用所学的数学、物理等知识来建立数学模型;第三步,学生运用计算机中的算法策略对数学模型进行分解,得出求解问题的步骤,即算法;第四步,学生按照算法,运用程序设计语言编写源程序;第五步,上机调试,得出结果。通过设计性实验,使学生掌握解决问题的步骤和方法,培养学生分析和解决某一个具体问题能力,培养学生的创新精神和严谨的科学态度。(3)综合性实验一般是指软件系统的设计与开发,要求学生综合运用所学知识、数据库、本语言工具来解决一个实际的综合性问题,它能够体现一个学生的软件系统设计与开发的能力与水平。软件系统开发包括系统的需求分析、系统的总体框架设计、系统的模块设计、系统的详细设计(功能设计)、系统的调试等几个阶段。通过需求分析,可以确定系统必须具备的操作功能以及数据的存储功能,从而确定系统的总体框架,系统界面所包含的模块数和后台数据库;系统的模块设计是对每一个模块进行子模块的设计和功能模块的设计;系统的详细设计即对每一个功能子程序进行编程实现;系统调试就是对系统的各功能进行调试验证。综合性实验是多门计算机课程(语言工具、数据库、软件工程等)的综合运用,也是软件系统所属应用领域多种知识的综合运用,更是程序设计课程自身基本知识、各种语句、基本结构、设计方法、设计技巧等编程技术的综合运用。通过综合性实验进一步培养学生分析和解决问题的综合能力、创新精神,是提高学生动手能力和软件系统开发能力的有效方法。(4)通过实验使学生掌握算法的实现过程,程序的运行、调试和修改过程,掌握系统开发的基本方法、基本操作和基本技能,获得独立编程和开发系统、书写实验报告的能力,增强学生的感性认识,加深学生对专业理论的理解。
2计算机程序设计课程实验教学的特点
实验教学是教学过程的一个重要的环节,它从实践的角度来验证专业理论的正确性,增强学生的感性认识,加深学生对专业理论的理解;通过实验使学生掌握实验的基本原理、基本方法、基本操作和基本技能,获得独立测量、观察、处理实验数据、分析实验结果、书写实验报告等能力。通过设计性和综合性实验,提高学生分析问题、解决问题的能力,培养学生的创新精神和严谨的科学态度。计算机程序设计课程的实验教学和其他理工科课程的实验教学一样,但是,它有其自身的特点,主要表现在以下几个方面。
(1) 实验设备准备比较简单或可以省略。程序设计课程的实验教学使用的实验设备是计算机,所使用的系统软件安装一次后,可以长期保存并重复使用,准备阶段或可以省略。
(2) 学生实验的大部分工作,可以在进入实验室之前完成,进入实验室只进行编辑与程序的调试运行。在进入实验室之前,学生预先可以进行程序的分析、设计、程序代码的编程等工作。实验时,学生直接进行源程序的输入、编辑运行和调试,若得不到结果,请求指导教师进行指导。
(3) 利用计算机强大的存储功能与快捷方便的网络,实验可以分阶段完成。如果一个程序较大,一时完不成,可以将其保存起来,待有时间再接着编写和运行调试。
(4) 实验可以随时随地进行。现在计算机的普及率相当高、网络快捷方便,学生可以随时随地完成实验室中没有完成的程序或设计与编写新的程序。
(5) 实验的对象具有重用性。程序设计过程中,具有相同功能或相近功能的算法,其代码可以重用,大大提高学生的编程速度和编程技巧。
(6) 实验结果可复制性和不易监控性。由于程序的可复制性和实验过程的不易监控性,使得教师对学生所编写的程序的原创性和真实性难以判断。基于以上特点,程序设计课程的实验教学具有很大的灵活性和学生独立完成实验难于判断性,从客观上要求我们必须建立程序设计课程的实验教学质量标准,用以衡量学生必须具备的编程能力和基本要求。
3实验课程形式与实验类型
目前,高校实验教学有课程内实验教学和独立开设的实验课程两种形式。其中,独立开设的实验课程为单独设置的实验性课程,其教学活动以独立的课程形式组织,单独计算学分,单独考核与登记学习成绩。课程内实验教学通常是一门课程中的实验教学内容,与理论教学一起构成一门课程,其成绩归入课程成绩。计算机程序设计课程的实验教学大都属于课程内实验教学形式。课程由理论教学和实验教学两部分组成,教学课时的分配大约为3∶1,课程的成绩和学分的也基本由3∶1比例构成。
实验类型分为验证性实验、设计性实验和综合性实验。验证性实验是指学生在一个设计完整的实验框架重新验证是否达到原理所描述的结果,学生通过观察和操作巩固和加强有关知识内容、培养实验操作能力的重复性实验。程序设计课程的验证性实验一般是指由教材或实验指导书提供的完整程序,学生通过编译系统编辑代码并运行得到正确的结果。其目的是验证原理的正确性或程序设计正确性。学生通过实验巩固和加强对所学语句、语法、简单算法设计的理解。设计性实验是指给定实验目的要求和实验条件,由学生自行设计实验方案、选择或制作仪器并加以实现的实验。开设设计性实验的目的在于激发学生学习的主动性和创新意识,培养学生独立思考、综合运用知识、提出问题和解决复杂问题的能力。程序设计课程的设计性实验要求学生掌握被解决问题的分析、算法设计、算法实现、调试运行等编程的每一个步骤,提高学生的程序设计能力。综合性实验是指在学生具有一定基础知识和基本操作技能的基础上,运用某一门课程或多门课程的综合知识对学生实验技能和实验方法进行综合训练的一种复合性实验。开设综合性实验的目的是对学生的实验技能进行综合训练,培养学生的综合分析能力、实验动手能力、数据处理以及查阅资料的能力。程序设计课程的综合性实验就是要求学生掌握软件系统开发的方法、步骤,提高学生软件系统开发能力。
4计算机程序设计实验教学的现状
实验教学在培养学生实践能力和创新精神中起着越来越重要的作用,特别是随着本科院校第二轮教学工作水平评估工作的完成,各院校的专业建设、课程建设都取得了明显的成效,每个专业都制订了完善的人才培养方案,每门课程也制订了完整的教学大纲和实验教学大纲等相关的材料,制订了规范、科学的质量监控措施,这些都很好地促进了高校教学质量的提高。在计算机程序设计课程的实验教学大纲中,增加了设计性实验和综合性实验的个数,对提高学生的编程能力有了很大的促进作用。但是,大部分程序设计课程都缺少实验教学的质量标准,实验教学环节对提高学生的编程能力和软件系统开发能力还存在诸多不足,主要体现以下几个方面。
(1) 学校一般都制订了实验教学质量标准,这个质量标准是学校从宏观层面对各类课程的实验教学准备、教学过程、教学效果等提出的目标管理,比如,教学文件是否齐备、实验课表是否齐全、教师备课是否认真、实验准备是否规范等等,它不是具体课程的质量标准。从目前的调查情况来看,大部分的程序设计课程都没有实验教学质量标准。但是,对于程序设计课程的实验教学来说,有明确的、具体的、量化的质量标准尤为重要。
(2) 用实验教学大纲替代实验教学质量标准,学生的实验效果没有衡量的尺度,没能真正体现出学生的编程能力。实验大纲主要包括课程名称、实验目标与要求、实验教材、考核方式、实验项目内容等,从其所包含的项目看,不包含明确的、具体的、量化的指标。但是,往往却以实验大纲作为质量标准来看待,实验教学只要按照实验大纲完成实验,学生写完实验报告就算完成实验教学,学生的编程能力无法衡量。
(3) 实验教学大纲中增加了设计性和综合性的实验数量,对于提高学生的编程能力有了一定的促进作用。但是,没有具体的、量化的指标来规范设计性和综合性的实验项目,任课教师执行起来随意性大,学生实验完成的任务偏少,学生编程的效果、编程能力的提高都没有评判的标准。
(4) 教师对学生实验教学成绩的评定,大都以学生撰写的实验报告为依据,这样的成绩评定比较单一,不能真正体现出学生的编程能力。应该制订出实验教学质量标准,从多方面考核学生的实验效果与编程能力。
(5) 没有课程的实验教学质量标准,学生不明确需要完成实验数量、教师也无法知道学生要做实验多少才会达到要求,学校教学管理部门对教师实验教学的教学质量监控也无法落到实处。
(6) 学生在实验过程之中,做的大都是验证性的实验,对于设计性和综合性的实验完成达不到目标要求,这里虽有教师要求不严的原因,也有学生畏难的成份。但主要还是任务、目标不明确所致。
(7) 学生预习与准备不足,实验前不做算法设计和编程,而是到实验时才忽忙对题目进行分析、算法设计、输入与编辑源代码,运行调试,往往一次实验课只能完成1~2个简单的程序设计或调试,浪费宝贵的实验时间,实验效率低。
5实验教学质量标准的研究
计算机程序设计课程是应用性很强的课程,这些课程的教学质量和教学效果主要体现在学生的实际编程能力和软件系统开发能力上。而学生编程能力的培养除了要求学生掌握扎实的基本语句、语法、规则外,还要通过实验教学来培养学生的编程能力和软件系统开发能力。所以,程序设计课程的实验教学显得尤为重要,而要使实验教学取得良好的效果,必须制订科学、规范的质量标准,用以检验和考核学生的实验效果,确保学生编程能力和软件系统开发能力的提高。为此,我们主要从构成学生的编程能力和软件系统开发能力的各要素出发,对程序设计课程的实验教学过程所必须达到的质量标准进行研究,作为制订计算机程序设计课程实验教学质量标准的依据和指导。
5.1构成学生编程能力的要素
构成学生编程能力的要素有很多,概括起来主要有:
读程能力程序由语句、语法、规则构成,就像一篇文章由文字、词组按照一定的语法组成语句,若干语句按照描述的内容组成文章。要读懂一篇文章,首先要认识字,懂得每个语句的意思,才能读懂文章的内容。读程序也有同样的道理,要读懂一个程序,必须弄懂程序设计语言的每一个关键词、语句的结构、语句的语法规则、语句的作用。但是,读程序与读文章还有本质的区别,程序是一个算法的标准语言描述,算法复杂,则相应的程序代码就复杂,阅读起来就较困难。但在很多实际问题中,要实现的功能却相同或相近,它们的程序代码也相同或相近。所以,要培养学生的读程能力,必须要求学生多读程序,从读懂简单的程序开始,到读懂较为复杂的程序,达到阅读较为复杂的程序时,能很快知道程序所实现的功能以及还原出程序所实现的算法。
算法设计能力算法设计是指设计求解某一特定问题的一系列步骤,这些步骤可以通过计算机的基本操作来实现。算法设计能力是学生编程能力高低的主要标志,是提高学生编程能力的关键,是构成学生编程能力的关键因素。所以,要培养学生良好的算法设计思想,对算法设计过程严格训练,使学生对算法设计的步骤:(1)问题分析;(2)数学建模;(3)数据结构设计;(4)算法设计;(5)算法表示等能够形成良好的算法设计的习惯,并按照这些步骤和思路进行设计。此外,还要培养学生掌握算法设计的方法和一些基本的策略。
编写代码能力编写代码就是算法实现。如果算法设计过程完成得比较好,具有良好的算法表示方式,则将其用程序设计语言来描述会变得相对容易。编写代码的能力主体现在对算法表示方式的理解以及程序设计语言各语句的实际应用。编写代码的能力可以通过对基本结构的算法描述和各种不同的算法描述进行编码来培养。
程序调试与改错能力程序的调试能力包括掌握常用的调试方法,能读懂程序出错提示以及修改出错的程序,能较快地发现出错的原因和作出正确的修改。
5.2实验教学质量标准包含的指标
从构成学生编程能力的各要素来看,它们有些可以通过理论教学来培养,但有些必须在实验教学过程中培养。因此,我们认为,在制订实验教学质量标准时,应该包括以下指标:
(1) 掌握程序设计语言编译系统的安装。达标要求,独立成功安装一次以上。
(2) 掌握编译系统各菜单的命令及常用命令按钮,并熟练使用它们进行相关的操作。达标要求,用具体的程序来检验每一个命令的实际操作,弄清每一个操作所产生的结果,在实验3~5次后进行考核。
(3) 掌握编译系统出错提示的具体内容、出错标志及位置、修改的方法。达标要求,教师通过举例,将编译程序时经常出现的出错提示进行示范;学生编译程序时随机出现的一条或多条出错提示,能够指出它的内容、程序出错的位置以及改错的办法。
(4) 掌握源程序的编辑、编译、运行、调试及改错、源文件及相关文件的存盘和调用。达标要求,源文件及其相关文件的创建、编辑,正确存盘和正确调用;编译、运行、调试过程、生成可执行文件正确。
(5) 实验大纲中规定的每一个编程实验项目,学生要完成的验证性实验个数不少于5个,要求学生在编辑完成后,先阅读程序,试运行后得到一个结果,然后再通过运行程序、调试程序得到正确的结果,最后比较这两个结果的一致性。达标要求,教师现场出2~3个程序,让学生编辑后,先由学生读程序,给出一个结果,然后再通过运行程序,比较读程得到的结果与计算机运行结果,通过这样的实验来提高学生的读程能力。
(6) 实验大纲中规定的每一个编程实验项目,学生要完成的设计性实验个数不少于10个。达标要求,每一个实验项目完成后,任课教师现场考核学生设计性实验2~3个,学生现场进行设计、编程、运行调试,得出正确的结果。
(7) 与数据库连接实验操作。要求学生掌握该语言源程序1~2种连接数据库的方法。达标要求,学生现场用该语言编写代码连接数据库或手动连接数据库,运行程序调用数据库,并对其进行相关操作。
(8) 程序设计课程,要设置1~2个综合实验项目。其中,1个实验项目由任课教师预设题目,要求包含整个课程的相关编程内容,如菜单、工具栏、状态栏、功能命令等模块及功能程序,使学生得到综合的训练和应用;另一个实验项目可以由学生自己选题,实现学生自己感兴趣的领域。
5.3实验教学质量标准的分析与试验
我们提出的质量标准中,第(1)~(4)项指标主要是考核学生对实验环境、程序调试运行的能力。在多年的教学实践中,我们发现这些指标也是构成学生编程能力的不可缺少的要素。一般编程能力强的学生,他们都能熟练使用编译系统的各种命令、命令按钮、各种出错提示以及调试程序的各种方法,反之,编程能力低的学生,这些方面的操作不够熟练,有些菜单中的命令甚至没有使用过,对出错提示不知何意,程序出错了,不能独立修改或排除。所以,设立实验环境和程序调试的质量标准是必须和可行的。第(5)~(8)项指标主要考核学生的读程能力、编程能力、数据库操作能力、综合编程能力。目前,实验教学大纲中,虽然包含了实验项目、实验目的和实验内容,但是,大部分都写得简单,要求和目的不够明确,没有量化的标准。我们设立的指标就是根据不同的实验项目、实验方法,对它们进行量化和强度的拓展,给学生和任课教师有一个明确的要求。使学生明确自己要完成的任务,教师在实验教学过程中必须承担的具体责任,学校教学管理部门可以根据这些具体的指标对实验教学过程进行质量监控。这些指标的设立,可以避免目前由于缺乏具体的质量标准,任课教师在实验教学过程中要求学生完成的任务随意性大,学生读程、编程普遍偏少,编程能力普通不高的情况。
目前,我们正在“高级语言程序设计”课程的实验教学中实施这一质量标准,实验的效果较为明显。在经过试验总结和不断完善后,将在计算机程序设计课程中逐步地实施这一具有量化指标的质量标准。
6结束语
实验教学环节是培养应用型人才的重要一环,根据社会对人才的需求以及编程能力的要素,确定实验教学质量标准,用量化的形式来强化实验教学目标。实验教学质量标准的建立,将给程序设计课程构建起理论质量标准和实验质量标准,改变目前理论强实践动手能力弱的局面,变成两手都要硬,切实提高学生的编程能力和软件系统开发能力。
参考文献:
[1] 何钦铭,姚青. 软件工程人才培养的实践与思考[J]. 计算机教育,2004,(10).
[2] 吕国英. 算法设计与分析[M]. 北京:清华大学出版社,2006.
[3] 周荣辉,郝晓枫,赵宏宇. 学生程序设计能力培养的思考[J]. 吉林大学学报:信息科学版,2005,23.
Research on the Quality Standards of Computer Programming Course Experimental Teaching
LI Wen-jing,LIAO Wei-zhi,BI Ying-zhou
(College of Computer Science and Information Engineering, Guangxi Teachers Education University, Guangxi, Nanning 530001, China)
Abstract: The paper introduces the features of computer programming course experimental teaching and its status, roles on enhance student programming and system development capacity.The constituent elements of students programming and software systems development capabilities was studied. Put forward the quality standards of computer programming course experimental teaching. Necessary and the feasibility of its indicators were analyzed. Preliminary experiments show that the implementation of the quality standards has received a certain degree of effectiveness.
Key words: programming course; experimental teaching; quality standards; programming capacity
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!