APP下载

基于程序设计能力培养的计算机专业实践教学体系的思考

2012-08-15何昭青傅红普

湖南第一师范学院学报 2012年1期
关键词:计算机专业程序设计课程设计

何昭青,彭 立,傅红普

(湖南第一师范学院 信息科学与工程系 湖南 长沙 410205)

基于程序设计能力培养的计算机专业实践教学体系的思考

何昭青,彭 立,傅红普

(湖南第一师范学院 信息科学与工程系 湖南 长沙 410205)

程序设计能力是计算机专业学生的基本能力,也是最重要的职业能力。如何提高计算机专业学生的程序设计能力,一直是研究的热点。多年的实践教学表明,“重实践教学,加强程序设计课程群建设,构建分层次、牵引递进式实践教学体系”是有效的策略和措施。

程序设计能力;课程群建设;实践教学体系;职业能力

一、引言

程序设计能力是计算机专业学生必须具备的基本能力,是计算机专业毕业生顺利就业于行业岗位的重要条件。但目前的事实是,很多计算机专业学生的程序设计应用能力低,毕业后不能胜任计算机行业的工作,不得不就业于非计算机行业。如何提高计算机专业学生程序设计能力,培养满足社会需求的计算机专业人才,是当前及今后一段时间内很多高校教学改革的重点和难点。在研读大量国内外相关资料,以及对多年实践教学进行分析思考总结后,我们提出了切实可行的“重实践教学,加强程序设计课程群建设,构建递进式、分层次培养学生程序设计能力的实践教学体系”的策略和措施。

二、重实践教学

计算机专业学生程序设计能力整体水平低,原因很复杂,实践教学没有得到真正重视是主要原因之一。要么课程实践课时少,要么实践教学流于形式,没有得到真正有效的落实。而计算机大都数课程都是实践性很强的课程,如果不认真对待实践,不把实践教学落到实处,学生很难弄清楚理论知识,更不用说把知识运用于实践。改变课程教学模式、加强实践监管和引导学生参与教师科研项目等方式,是重视实践教学的有效策略和措施。

(一)采用“理论+实验+设计”的课程教学模式

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

(二)加强实践环节的要求和管理

“理论+实验+设计”教学模式,表明实践环节的重要性,但还得管理好实践环节。对于课程的实验环节主要从以下几个方面加强落实管理:

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

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

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

(三)组织程序设计比赛

组织学生参与系部、学校、省及国家组织的各种程序设计比赛。通过各种比赛活动,调动学生编写程序代码的兴趣和潜力。另外也鼓励学生自己主动编写代码,对于程序代码编写得多又好的学生,给予表扬和适当的物资奖励。提倡在大学毕业前,编写10万行代码。试想一个在校大学生,如果编写了近10万行的代码,程序设计能力一定能达到较高水平。

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

鼓励学生参与教师的科研项目的研究与开发。运用专业知识解决实际问题的真实实践,使学生更能体会到自身的价值和知识的魅力,更有益于培养学生的知识应用能力、解决实际问题能力和程序设计能力[3]。

三、基于程序设计能力培养的分层次、牵引递进式实践教学体系构建与实践

程序设计能力的培养,是一个循序渐进的过程,需要贯彻大学四年整个学习过程。以程序设计课程群建设为主导,构建了基于程序设计能力培养的分层次、牵引递进式实践教学体系。该实践教学体系有五个层次[4]:基本程序设计能力、模块化程序设计能力、数据库应用系统开发能力、多层分布式系统开发能力和校外专业顶岗实习。这五个层次有一定的逻辑先后递进关系,它们相互联系、相互促进。前四个层次在校内完成,第五个层次在校外完成。在教学过程中,狠抓学生这五个层次程序设计能力的训练培养。

(一)基本程序设计能力的培养

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

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

(二)模块化程序设计能力的培养

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

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

(三)数据库应用系统开发能力的培养

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

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

(四)多层分布式系统开发能力的培养

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

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

(五)校外专业顶岗实习

校外专业顶岗实习,主要是对学生进行职业素养培训。在大四的第一个学期,学生被安排到合作公司进行长达2个月的专业顶岗实习。实习期间,公司将对学生实行员工式管理,不仅要参与公司实际项目,而且也进行上班出勤考核。通过2个月的校外专业顶岗实习,学生专业知识的综合实践应用能力得到进一步巩固提高,协作能力更强,具有责任感和良好的团队精神,职业素质得到提升。

四、结束语

程序设计能力是计算机专业学生的基本能力,同时又是最重要的职业能力,需要花大力气培养。试想一个软件开发团队,如果没有几个程序设计能力强的程序设计人员作坚强后盾,无论需求分析和设计方案做得多么好,最终可能只是空中楼阁。实践表明,实践教学环节的重视和实践教学体系的不断完善,毕业生的整体知识运用能力明显得到不断提高,社会对毕业生的满意度也在逐年提高。但软件设计能力具有时代性强、变化快的特性,学生软件能力的培养又是一个系统工程,因此,研究和探索学生程序设计能力的培养,仍是今后一个时期内计算机专业教学研究、教学改革的重点。

[1]姜贵平.高校计算机专业实践教学的薄弱环节及改进措施[J].实验室研究与探索,2010,(4):66-69.

[2]何昭青.计算机专业程序设计语言类课程教学探讨[J].湖南第一师范学院学报,2008,(3):40-42.

[3]刘磊安,闫大顺.基于应用能力与创新意识培养的实践教学体系设计[J].计算机教育,2010,(10):147-149

[4]何昭青,阳西述,彭立,胡湘勇.计算机专业软件设计课程群建设的研究与实践[J].赤峰学院学报,2011,(12): 226-228.

On Computer Practice Teaching System Based on the Program Design Ability Cultivation

HE Zhao-qing
(Information Science and Engineering Department,Hunan First Normal University,Changsha,Hunan 410205)

The ability to design program is a basic ability and also the most important professional ability for a computer student.And how to improve the student's ability of programming has been the focus of research.A study after years of teaching practice shows that an effective teaching should stress on practice teaching,strengthen program designing curriculum group construction,and construct a hierarchical,traction progressive practice teaching system.

ability to design program;curriculum group construction;practice teaching system;professional ability

TP3-4

A

1674-831X(2012)01-0062-04

2011-09-10

湖南省科学技术厅科技计划课题(2011FJ3162);湖南省教育厅科技课题(11C0282)

何昭青(1964—),女,湖南邵阳人,湖南第一师范学院教授,硕士,主要从事计算机教育,计算机优化算法,Web 3D研究;彭立(1974—),男,湖南汨罗人,湖南第一师范学院讲师,硕士,主要从事软件体系结构,Web服务技术研究;傅红普(1973—),男,湖南汨罗人,湖南第一师范学院副教授,硕士,主要从事计算机视觉和机器学习研究。

[责任编辑:胡 伟]

猜你喜欢

计算机专业程序设计课程设计
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
基于Visual Studio Code的C语言程序设计实践教学探索
龙凤元素系列课程设计
中秋明月
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
基于Articulate Storyline的微课程设计与开发
职业高中计算机专业教学改革浅析
PLC梯形图程序设计技巧及应用
开放大学课程设计与资源开发