提高学生程序设计能力的主要策略和措施

  马大力

  计算机课程是实践性很强的课程,针对这一特点,对计算机课程增加“课程设计”综合实践环节,采用“理论+实验+设计”的教学模式,改变了传统“重理论,轻实践”的状况,使课程实践环节比以前得到大大的加强,有利于学生对知识的理解和程序设计能力的培养,尤其是“课程设计”这个实践环节,能激发学生的学习兴趣、拓宽学生的思路,有利于培养学生分析问题、解决问题的综合能力。“课程设计”安排在课程结束后立即进行,由任课教师完成。这种课程教学模式,不但要求教师注重理论知识的传授,更应重视理论的实践应用,使学生的实践教学不再是一句空话,学生的程序设计能力训练得到有效的保证。

  一、分层次培养学生的程序设计能力

  程序设计能力培养是由多门课程即“课程群”和很多教师共同完成。培养学生程序设计能力,可分四个层次[1]:基本程序设计能力、模块化程序设计能力、数据库应用系统开发能力以及多层分布式系统开发能力。这个四个层次有一定的逻辑先后关系、相互联系和相互促进。在教学过程中,狠抓学生这四个层次程序设计能力的训练培养。

  二、基本程序设计能力的培养

  基本程序设计能力是程序设计能力进一步提高的基础,也是后续许多计算机专业课程学习的基础,由大学一年级第一门程序设计语言课程来完成,对于大多数学生来说,这是一个新的领域,因此必须高度重视。学生的基本程序设计能力表现为能比较熟练地运用一门高级程序设计语言提供的数据类型、运算符、语句和函数和过程独立地编写解决简单问题的程序,在一定的程序设计集成环境下独立地上机调试程序,掌握最基本的程序测试和调试的方法。为了有效培养学生基本程序设计基本能力,在教学过程中 从程序设计语言的选择,教材的选用,到任课教师的安排,都必须进行周密的考虑。

  根据多年的教学实践经验,谭浩强编写的《C语言程序设计》作为程序设计课程的启蒙教育,是比较好的选择;教学人员安排,要求至少具有三年教学工作经验、工作责任感强的老师担任此课程的教学。

  三、模块化程序设计能力的培养

  学生在学完第一门程序设计课程后,只掌握基本程序设计能力,能编写处理一些简单的问题程序(代码通常不超过20行)。对于复杂一点的问题,还不能运行模块化技术分解一个程序的功能进行设计程序。模块化程序设计能力培养主要由《C语言课程设计》完成,由《C语言程序设计》教师担任,更利于学生能力培养。在《C语言课程设计》中,教师重点培养学生抽象思维能力,对程序要解决的复杂问题按功能进行分解成一个个具有独立意义的子功能,用C语言函数分别实现各个子功能,并使每个函数包含程序代码长度符合学生容易理解的代码长度。

  案例教学法是快速培养模块化程序设计能力的有效教学方法。任课教师精心准备几个典型的案例[3],并对这些案例进行详细分析、讲解,让学生运行程序和阅读程序代码,分析程序中各函数的功能和算法,分析各函数间的调用关系,使学生对程序的一般组成和结构有一个直观的认识,然后让学生模仿一个类似的实例,编制一个程序实践,使学生逐步适应和学会运用抽象思维方式,学会模块化程序设计技术,编写出有一定规模、具有一定实用性的程序的能力,从而掌握模块化程序设计的基本思想。在后续课程学习中,如《数据结构》、《操作系统》,教师要对模块化程序设计技术做进一步加强、提高。

  四、数据库应用系统开发能力的培养

  信息管理系统应用非常广泛,信息管理系统实际上就是数据库应用系统,因此,数据库应用系统开发技术是计算机专业类学生必须掌握的技术。数据库应用系统开发能力(单机环境)的培养主要是通过《数据库原理》、可视化面向对象程序设计(如VB)等课程设计完成。

  在实践教学中,主要采取两项措施保证这种能力的训练。一是教师讲解数据库原理、面向对象程序设计(如VB、Delphi)课程时,一定要仔细分析一个信息系统开发案例,如“图书管理系统”,“人才信息管理系统”,“学生信息管理系统”等等。这种生动实用的案例学习,能激发学生的学习兴趣和动力,也很容易使学生理解掌握数据库应用系统开发的一般规律。二是通过随后开设的《数据库课程设计》、《VB课程设计》、《Delphi课程设计》,要求学生自己用学到的知识,严格按照软件工程的思想,开发数据库应用系统实例。这种反复的训练,使学生数据库应用系统开发能力得到进一步巩固、完善。

  五、多层分布式系统开发能力的培养

  随着Internet/Intranet网络的发展与广泛应用,应用系统的规模不断扩大,业务量的变化,用户需求的进一步提高,多层分布式应用系统开发模式成为系统开发的主流,掌握多层分布式系统开发的基本过程、思想,也成为学生程序设计能力必不可少的教学内容。这种体系结构的软件设计,要考虑两个个方面的问题,一个是业务逻辑层(也叫应用服务器)设计,是程序设计的一个重点难点。另一个是网络环境下,软件系统部署和运行在多台计算机上,需要相互协调地工作,必须考虑网络通信协议的使用,客户端与服务器之间怎样建立连接,以及怎样实现数据的交流等因素。

  这个层次通常在数据库应用系统开发能力培养和计算机网络课程开设后进行。多层分布式系统开发编程技术训练,可以在第三个层次培养案例基础上进行,只需将系统的单机环境改为网络环境,教师学生都只要把精力重点放“多层、分布式”技术上,既节约了时间,而且效果好。

  六、加强实践环节要求和管理

  计算机课程光是“听老师讲”和“自己看书”是绝对不够的。在努力提高课堂教学的同时,必须大力加强实践环节的要求和管理。“理论+实验+设计”教学模式,表明实践环节的重要性,但还得管理好实践环节。对于课程的实验环节主要从以下几个方面加强落实管理。

  一是抓好常规实验。教师必须认真对待上机实验课,要像理论课教学那样,每次都要明确指明实验的目的、要求,对上机实验内容要精心安排,对学生上机实验要严格监督。

  二是抓好课程设计,即综合实训。为了快速、有效培养这方面的能力,通常由课程设计的指导教师,分析几个代表行的案例,然后由教师布置一些事先想好的课程设计作业,以小组为单位进行课程设计。每一个小组要挑选一到两个专业素质较好的学生担任正副组长,让他们对本组项目全权负责,充分发挥优秀学生在课程设计中的积极作用,既可以减轻指导教师的压力,又有利于课程设计质量的保证,发挥学生的创造能力。课程设计落实得好,将使学生的知识运用能力和程序设计能力得到迅速成长,教学效果也显著。

  为了保证学生认真对待实践环节,防止学生复制或不做,比较好的办法是要求每个学生提交实践作业,并进行批阅,批阅的成绩,参与课程结束的期末成绩评定,实践表明,这种办法效果非常好。

  三是组织各种程序设计比赛,鼓励学生自己积极编写程序代码,对于程序代码编写多又好多学生,给予表扬和适当的物资奖励,提倡在大学毕业前,编写10万行代码。试想一个在校大学生,如果编写了近10万行的代码,程序设计能力一定达到较高水平。

  七、将科研项目与学生程序设计能力培养结合起来

  教师要积极参加科研活动,通过科研项目活动不断提高科研水平、教学水平和实践水平。在进行科研过程中,可以将优秀好学的学生吸收进来,共同完成科研项目的开发。将科研与学生程序设计设计能力培养两者结合起来,不但提高了教师的实际项目开发能力,也培养了学生的知识应用能力、解决实际问题能力和程序设计能力。

  八、结束语

  程序设计能力是计算机专业学生的基本能力,同时又是最重要的能力,需要花大力气培养。试想一个软件开发团队,如果没有几个程序设计能力强的程序设计人员作坚强后盾,无论需求分析和设计方案做得多么好,最终可能只是空中楼阁。因此,培养学生程序设计能力值得去研究和探索。不断改革教学手段,采取有效的措施,强化实践教学力度,提高学生的自主学习能力和程序设计能力,培养出更多满足时代需求的合格计算机应用人才,具有重要的现实意义和深远历史意义。

关注读览天下微信, 100万篇深度好文, 等你来看……