计算机专业学生程序设计能力培养的探索与实践
- 来源:教育与学习 smarty:if $article.tag?>
- 关键字:程序设计能力,案例教学,教学模式 smarty:/if?>
- 发布时间:2024-06-14 15:16
何昭青
(湖南省第一师范学院,湖南 长沙 410205)
[摘要]程序设计能力是计算机专业学生的基本能力,也是最重要的能力,必须花大力气培养。本文从教学的角度分析当前计算机专业学生程序设计能力培养中存在的问题,提出了切实可行的有助于程序设计能力培养的“重实践的课程教学模式、分层次培养学生程序设计能力”的针对性的策略和措施。
[关键词]程序设计能力;案例教学;教学模式
1、引言
程序设计能力是计算机类专业学生的基本能力, 也是检验计算机类专业毕业生是否合格的基本标准。但目前的事实是,很多计算机专业学生程序设计能力低,毕业后不能胜任计算机行业的工作,不得不就业于非计算机行业。如何提高计算机专业学生程序设计能力,培养满足社会需求的计算机专业人才,是教学改革的重点,笔者在多年的教学实践中,积累一些经验,并应用于实际教学,收到较好的教学效果。下面从教学的角度,分析当前教学存在的主要问题,提出了一些有效的方法和建议,与大家共享,希望起到抛砖引玉的作用。
2、现状及存在的主要问题
目前的现状是计算机专业学生程序设计能力整体水平低,原因很复杂,本文仅从教学的角度来分析其主要存在的问题,归纳起来主要表现在:
2.1 “重理论,轻实践”的教学模式不能满足计算机类程教学的要求
在教学模式上,很多课程基本上仍以课堂讲授为主,实践课时少。计算机大都数课程都是实践性很强的课程,如果没有
足够的实践教学,是很难让学生弄清楚理论知识,更不用说把知识运用于实践。这种“教师讲,学生听,重理论,轻实践”教学模式,教学直观性差、效率低,信息量小,教学进程缓慢,不利于学生自主学习能力和程序设计能力的培养,以至于课程学习结束了,学生还不明白该课程的作用和意义,明显影响教师授课的效果。
2.2 教师、管理者对程序设计能力培养过程认识不够明晰
程序设计能力的培养,不是一门课程或一个教师就可以解决的问题,它需要在整个大学学习过程中逐步培养,是由多门课程的学习和多个老师的教授共同完成,是一个“接力棒传递”的过程。但教师、管理者并没有非常清楚地意识到这一点,因此,很多教师在课程教学中,不注意“承前启后”,对本课程的教学任务重点不是特别清楚,采取“因书施教”,被教材牵着走,弱化了课程在程序设计能力培养中“接力棒传递”作用。例如,程序设计语言教材都是从语法开始编写的,第一次开设课程设计语言课程,语法是教学的重点,但后续开设的语言类课程,语法就不是讲解的重点,但很多教师还是沿用教材的安排,花大量时间介绍语法,从而影响教学目标实现。
2.3 实践教学环节管理不严,学生编写代码量太少
实践教学环节是计算机课程教学中一个重要的必不可少的环节,必须严格管理。实际情况是,很多课程的实践教学常常是做样子,没有发挥它的真正作用。表现在:一是学生不重视,很多学生认为实践课可去可不去,或者去了也是干别的事情;二是实践课教师的配备也不充足,一个班级的学生实践课,常常是由任课教师一个人担当,从而严重影响实践教学效果。三是学生程序代码编写不积极主动,除了完成老师布置的作业、实验、课程设计,再没有编写其它代码,代码编写量太少。
2.4 教师缺乏项目开发实践经验
从师资力量来看,教师队伍的知识结构不全面,主要表现为程序开发实践经历不丰富。从事计算机教学的老师,很多没有亲自参与软件项目开发,缺乏一定的实践经验,因此在讲解实际应用系统开发时,不能生动活泼,游刃有余。教师队伍的实践开发经历有待进一步加强。
3、提高学生程序设计能力的主要策略和措施
针对上述分析存在的问题,在现有的条件下,提出如下切实可行的策略和措施。
3.1采用“理论+实验+设计”的课程教学模式
计算机课程是实践性很强的课程,针对这一特点,对计算机课程增加“课程设计”综合实践环节,采用“理论+实验+设计”的教学模式,改变了传统“重理论,轻实践”的状况,使课程实践环节比以前得到大大的加强,有利于学生对知识的理解和程序设计能力的培养,尤其是“课程设计”这个实践环节,能激发学生的学习兴趣、拓宽学生的思路,有利于培养学生分析问题、解决问题的综合能力。“课程设计”安排在课程结束后立即进行,由任课教师完成。这种课程教学模式,不但要求教师注重理论知识的传授,更应重视理论的实践应用,使学生的实践教学不再是一句空话,学生的程序设计能力训练得到有效的保证。
3.2 分层次培养学生的程序设计能力
程序设计能力培养是由多门课程即“课程群”和很多教师共同完成。培养学生程序设计能力,可分四个层次[1]:基本程序设计能力、模块化程序设计能力、数据库应用系统开发能力以及多层分布式系统开发能力。这个四个层次有一定的逻辑先后关系、相互联系和相互促进。在教学过程中,狠抓学生这四个层次程序设计能力的训练培养。
3.2.1 基本程序设计能力的培养[2]
基本程序设计能力是程序设计能力进一步提高的基础,也是后续许多计算机专业课程学习的基础,由大学一年级第一门程序设计语言课程来完成,对于大多数学生来说,这是一个新的领域,因此必须高度重视。学生的基本程序设计能力表现为能比较熟练地运用一门高级程序设计语言提供的数据类型、运算符、语句和函数和过程独立地编写解决简单问题的程序,在一定的程序设计集成环境下独立地上机调试程序,掌握最基本的程序测试和调试的方法。为了有效培养学生基本程序设计基本能力,在教学过程中 从程序设计语言的选择,教材的选用,到任课教师的安排,都必须进行周密的考虑。
根据多年的教学实践经验,谭浩强编写的《C语言程序设计》作为程序设计课程的启蒙教育,是比较好的选择;教学人员安排,要求至少具有三年教学工作经验、工作责任感强的老师担任此课程的教学。
3.2.2 模块化程序设计能力的培养
学生在学完第一门程序设计课程后,只掌握基本程序设计能力,能编写处理一些简单的问题程序(代码通常不超过20行)。对于复杂一点的问题,还不能运行模块化技术分解一个程序的功能进行设计程序。模块化程序设计能力培养主要由《C语言课程设计》完成,由《C语言程序设计》教师担任,更利于学生能力培养。在《C语言课程设计》中,教师重点培养学生抽象思维能力,对程序要解决的复杂问题按功能进行分解成一个个具有独立意义的子功能,用C语言函数分别实现各个子功能,并使每个函数包含程序代码长度符合学生容易理解的代码长度。
案例教学法是快速培养模块化程序设计能力的有效教学方法。任课教师精心准备几个典型的案例[3],并对这些案例进行详细分析、讲解,让学生运行程序和阅读程序代码,分析程序中各函数的功能和算法,分析各函数间的调用关系,使学生对程序的一般组成和结构有一个直观的认识,然后让学生模仿一个类似的实例,编制一个程序实践,使学生逐步适应和学会运用抽象思维方式,学会模块化程序设计技术,编写出有一定规模、具有一定实用性的程序的能力,从而掌握模块化程序设计的基本思想。在后续课程学习中,如《数据结构》、《操作系统》,教师要对模块化程序设计技术做进一步加强、提高。
3.2.3数据库应用系统开发能力的培养
信息管理系统应用非常广泛,信息管理系统实际上就是数据库应用系统,因此,数据库应用系统开发技术是计算机专业类学生必须掌握的技术。数据库应用系统开发能力(单机环境)的培养主要是通过《数据库原理》、可视化面向对象程序设计(如VB)等课程设计完成。
在实践教学中,主要采取两项措施保证这种能力的训练。一是教师讲解数据库原理、面向对象程序设计(如VB、Delphi)课程时,一定要仔细分析一个信息系统开发案例,如“图书管理系统”,“人才信息管理系统”,“学生信息管理系统”等等。这种生动实用的案例学习,能激发学生的学习兴趣和动力,也很容易使学生理解掌握数据库应用系统开发的一般规律。二是通过随后开设的《数据库课程设计》、《VB课程设计》、《Delphi课程设计》,要求学生自己用学到的知识,严格按照软件工程的思想,开发数据库应用系统实例。这种反复的训练,使学生数据库应用系统开发能力得到进一步巩固、完善。
3.2.4 多层分布式系统开发能力的培养
随着Internet/Intranet网络的发展与广泛应用,应用系统的规模不断扩大,业务量的变化,用户需求的进一步提高,多层分布式应用系统开发模式成为系统开发的主流,掌握多层分布式系统开发的基本过程、思想,也成为学生程序设计能力必不可少的教学内容。这种体系结构的软件设计,要考虑两个个方面的问题,一个是业务逻辑层(也叫应用服务器)设计,是程序设计的一个重点难点。另一个是网络环境下,软件系统部署和运行在多台计算机上,需要相互协调地工作,必须考虑网络通信协议的使用,客户端与服务器之间怎样建立连接,以及怎样实现数据的交流等因素。
这个层次通常在数据库应用系统开发能力培养和计算机网络课程开设后进行。多层分布式系统开发编程技术训练,可以在第三个层次培养案例基础上进行,只需将系统的单机环境改为网络环境,教师学生都只要把精力重点放“多层、分布式”技术上,既节约了时间,而且效果好。
3.3 加强实践环节要求和管理[4]
计算机课程光是“听老师讲”和“自己看书”是绝对不够的。在努力提高课堂教学的同时,必须大力加强实践环节的要求和管理。“理论+实验+设计”教学模式,表明实践环节的重要性,但还得管理好实践环节。对于课程的实验环节主要从以下几个方面加强落实管理。
一是抓好常规实验。教师必须认真对待上机实验课,要像理论课教学那样,每次都要明确指明实验的目的、要求,对上机实验内容要精心安排,对学生上机实验要严格监督。
二是抓好课程设计,即综合实训。为了快速、有效培养这方面的能力,通常由课程设计的指导教师,分析几个代表行的案例,然后由教师布置一些事先想好的课程设计作业,以小组为单位进行课程设计。每一个小组要挑选一到两个专业素质较好的学生担任正副组长,让他们对本组项目全权负责,充分发挥优秀学生在课程设计中的积极作用,既可以减轻指导教师的压力,又有利于课程设计质量的保证,发挥学生的创造能力。课程设计落实得好,将使学生的知识运用能力和程序设计能力得到迅速成长,教学效果也显著。
为了保证学生认真对待实践环节,防止学生复制或不做,比较好的办法是要求每个学生提交实践作业,并进行批阅,批阅的成绩,参与课程结束的期末成绩评定,实践表明,这种办法效果非常好。
三是组织各种程序设计比赛,鼓励学生自己积极编写程序代码,对于程序代码编写多又好多学生,给予表扬和适当的物资奖励,提倡在大学毕业前,编写10万行代码。试想一个在校大学生,如果编写了近10万行的代码,程序设计能力一定达到较高水平。
3.4 将科研项目与学生程序设计能力培养结合起来
教师要积极参加科研活动,通过科研项目活动不断提高科研水平、教学水平和实践水平。在进行科研过程中,可以将优秀好学的学生吸收进来,共同完成科研项目的开发。将科研与学生程序设计设计能力培养两者结合起来,不但提高了教师的实际项目开发能力,也培养了学生的知识应用能力、解决实际问题能力和程序设计能力。
4、结束语
程序设计能力是计算机专业学生的基本能力,同时又是最重要的能力,需要花大力气培养。试想一个软件开发团队,如果没有几个程序设计能力强的程序设计人员作坚强后盾,无论需求分析和设计方案做得多么好,最终可能只是空中楼阁。因此,培养学生程序设计能力值得去研究和探索。不断改革教学手段,采取有效的措施,强化实践教学力度,提高学生的自主学习能力和程序设计能力,培养出更多满足时代需求的合格计算机应用人才,具有重要的现实意义和深远历史意义。
[参考文献]
[1]李祎, 李用普. 电子信息专业学生计算机能力培养体系构建研究[J]. 合肥学院学报,2007,(8).
[2]李勇军. 怎样提高学生的编程能力[J].信息技术,2006,(4).
[3]李尧. VFP教学中采用案例教学法的分析与实践[J].内江师范学院学报,2006,(12).
[4]徐进华. 提高学生程序设计能力的几个措施[J]. 计算机时代,2005,(11).
[作者简介]
何昭青,女,1964年生,汉族,硕士,湖南邵阳人,湖南第一师范信息技术系副教授,主要研究方向:网络教育,软件工程,计算机优化算法。