APP下载

培养学生程序设计、实践与创新能力的探索

2016-03-22张永梅马礼孙晶何丽

电脑知识与技术 2016年1期
关键词:因材施教

张永梅++马礼++孙晶++何丽

摘要:如何提高学生的程序设计与实践能力以及系统分析开发应用能力,满足社会对计算机专业学生的需求是高校需要重点解决的一个问题。该文通过改革《C程序设计》教学,培养学生利用C语言编写各种应用程序的能力,在《数据结构》、《算法设计与分析》、《编译原理》等专业课教学中,重视培养学生的算法设计与分析能力,加强关键环节程序设计能力、实践与创新能力的培养,完善各类项目、竞赛、实验实践教学,培养大学生的实践与创新能力,将理论与实践紧密结合,有效提升了学生的编程能力,以及分析和解决实际问题的能力。

关键词:程序设计能力;算法设计能力;软件工程师;实验实践教学;因材施教

中图分类号:G642.0 文献标识码:A 文章编号:1009-3044(2016)01-0178-03

Exploration of Training Students' Programming, Practice and Innovation Ability

ZHANG Yong-mei, MA Li, SUN Jing, HE Li

(School of Computer Science, North China University of Technology, Beijing 100144, China)

Abstract:How to improve the students' programming, practical ability,and the ability of the system analysis and development to meet the social demand for computer science students is one of the key problems to solve. Reform the teaching of "C Programming", train students to develop a variety of applications using C language, pay attention to students' algorithm design and analysis ability in the professional courses such as "Data Structure", "Design and Analysis of Algorithm" and "Compiler Principle", strengthen the key session programming, practice and innovation ability,improve various projects, competitions, experimental and practical teaching,promote the students' practice and innovation ability. The measures closely combine theory and practice,effectively promote the ability of programming, analysis and solution practical problems.

Key words:programming ability; algorithm design ability; software engineers; experimental and practice teaching; teach students in accordance with their aptitude

1 引言

从十三五规划来看,未来五年哪些职业最有“钱途”?《中共中央关于制定国民经济和社会发展第十三个五年规划的建议》明确指出,未来五年,软件工程师愈发“走俏”。一直以来,学生的程序设计能力、实践与创新能力是评判一个学生是否是一名合格的计算机专业学生的重要指标。

2 存在的主要问题

专家预言,未来10年中国的IT界每年需要100万人,其中计算机类人才需求超过40万人,这是一个保守的说法。最近几年来,有不少企事业单位反映计算机类毕业生实际应用知识、动手能力与应用能力不够、程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求。这不仅对学生就业是一个严重的考验,更阻碍了其进一步发展与提升。

造成以上情况的主要原因如下:一是学生在学完与程序设计、算法有关的课程后,对于这些知识仅仅只是停留在了解的基础上,并未达到理解、融会贯通的境界,更没有利用这些知识解决实际遇到的问题。二是教师在讲解程序设计、算法设计与分析的相关知识时,并没有将理论与实际有机结合。三是在实际教学过程中并未对学生进行真正的软件项目开发训练。虽然目前各本科院校的程序设计类课程都有课程设计这一环节,但是大多数都是止于形式,并未予以真实的软件项目支撑,因而收效甚微。四是对第一门程序设计课程的教学不够重视。尽管计算机类专业所开设的课程中很多都含有与编程相关的内容,但作为入门级的程序设计语言课程,其重要性不亚于任何一门专业课。由于当前对第一门程序设计语言课程重视程度不够和教学时数不足,导致了相当一部分学生在学完第一门程序设计课程后,仍然无法独立完成一个简单的程序开发。一个计算机专业大学生出来找工作,连一个程序都写不好,可以说我们的高等教育出了很大的问题,编程能力是计算机类专业学生最基本的能力。

为适应十三五规划对计算机专业学生的新要求,我们应该改革《C程序设计》教学,培养学生利用C语言编写各种应用程序的能力,在《数据结构》、《算法设计与分析》、《编译原理》等专业课教学中,重视培养学生的算法设计与分析能力,加强关键环节程序设计能力、实践与创新能力的培养,完善各类项目、竞赛、实验实践教学,培养大学生的实践与创新能力。提高学生的综合素质,提高人才培养质量,努力培养服务国家和首都社会与经济发展的社会主义优秀人才。

3 培养学生程序设计能力、实践与创新能力的具体措施

教育教学工作应该以学生为主体,同时充分发挥教师的引领、指导作用,二者有机结合,相互配合,这样才能充分调动学生的学习积极性和主动性,从而达到最佳的教学效果。因此本文以“学生为主体,教师为主导”这一思想为指导,建立一套具有我校特色的教学模式,以及培养学生程序设计能力、实践与创新能力的关键环节实践教学体系,有效提升学生分析和解决实际问题的能力。

3.1改革《C程序设计》课程的教学方法,培养学生的程序设计能力

《C程序设计》是我校计算机专业的第一门程序设计课程,为保证课堂质量,改变以前大班授课方式,采用小班上课;在教师安排上,充分考虑教师的教学经验、工作责任感,以及实际项目的开发经历;改革《C程序设计》课程的教学方法,将教学内容分解为必须掌握的内容和提高内容,采用小班上机实验,按照学生的不同层次,给出不同的实验内容,对于层次高的学生,给学生另外布置一些趣味程序设计题目、竞赛题目,以及目前计算机一些前沿问题;该课程的考核成绩由期末机考成绩和平时成绩两部分组成,各占50%。在平时成绩中,阶段考试占30%,提交实验程序占45%,实验报告占5%,作业成绩占15%,考勤占5%,进一步完善考试环境和考试方法,加强学生编程上机的能力训练。

3.2在专业课教学中,重视培养学生的算法设计与分析能力

采用不同的编程语言实现同样一个问题,效率是完全不一样的。对算法的研究被公认为是计算机科学的基石。在专业课教学中,如《数据结构》、《算法设计与分析》、《操作系统》、《编译原理》等专业课教学中,使学生掌握算法设计的常用方法,以便能够运用这些方法独立地设计解决计算机应用中的实际问题的有效算法,并能够利用已有算法解决实际问题。此外还要使学生学会分析算法,估计算法的时空复杂性,从而对算法进行评价,评定算法优劣的标准要看它的时间复杂性、空间复杂性和人工复杂性,其中时间复杂性最为重要,通常是用时间复杂性来衡量某个算法的“好”或“坏”。

3.3 加强关键环节程序设计能力、实践与创新能力的培养

许多课程都有上机编程实验内容,如《C程序设计》、《面向对象程序设计》、《数据结构》、《算法设计与分析》、《Java程序设计》、《操作系统》、《汇编语言程序设计》、《数据库原理》、《编译原理》、《软件工程》、《计算机网络》、《软件测试技术》等课程,都要求学生完成一定数量的设计性、验证性实验。还设立了工程与学术实践、计算机硬件课程设计、软件课程设计、独立实验课程以及毕业设计等实训科目,坚持编程实践四年不间断。培养方案中提供了软件工程、计算机网络、嵌入式技术三个方向的选修课程模块,学生可根据自己的兴趣和学习情况有目标地选择学习,达到了因材施教的目的。

例如软件课程设计“实验室设备管理系统”首先要求学生进行基本的分析,例如:这个系统要具有什么功能、可以抽象为哪几类对象、要应用哪些算法、采用哪种数据结构等。之后,学生根据分析好的内容进行编程,编程中要考虑到诸如:代码逻辑、异常处理、可扩展性等问题。完成一定代码后要进行单元测试,通过单元测试后,要对整个软件进行测试,例如,功能测试、回归测试等,保证软件的正确运行。最后,教师进行软件验收,验收达标后要完成相应的课程设计实验报告等。这一系列的开发流程使学生掌握了一个软件的真正开发过程,提高了学生的综合编程能力,如:需求分析能力、算法设计与分析能力、数据抽象能力、编程实现能力、软件测试能力,有效提高了学生的程序设计能力,以及实践与创新能力。一些学生在毕业设计中利用没有学过的计算机语言和开发工具进行软件开发,充分体现了学生具备了自主学习其他语言和开发工具的能力。

3.4完善各类项目、竞赛、实验实践教学,培养大学生的实践与创新能力

鼓励高年级学生参与由教师指导的ACM国际大学生程序设计大赛的华北地区选拔赛、北京市大学生科学研究与创业行动计划、北方工业大学“科园杯”大学生科技活动项目或教师负责的国家基金、科技支撑计划、横向科研等课题,在教师的指导下完成需求分析、算法设计、算法分析、实验结果及分析等环节,最后提交打印版书面报告或论文,提高大学生的动手能力、解决实际问题的能力。积极组织学生参加“挑战杯”全国大学生课外科技活动、“全国大学生电子设计竞赛”等各类竞赛,锻炼学生团队协作能力、实践与创新能力。将专利、论文、科技竞赛活动等以学分纳入考核,对取得突出成绩或有特殊成就的学生,在推免研究生、奖学金评定等方面予以优先考虑,激发创新动机,提升创新意识和创新能力。完善实验实践教学,实验人员做好实验课程辅导,稳定丰富课内实验环节。积极拓展有工程背景的企业导师参与实践环节,与Oracle、文思海辉等知名企业建立校企合作关系,试点推出校企合作实践环节课程,如与Oracle合作《项目管理实践》课程,与文思海辉合作《企业实训》课程。

4 结论

在“十三五”规划课题研究中,“信息经济”首次被列入,这也意味着信息产业有望成为“十三五”规划中的新增亮点。本文分析了高等学校培养计算机专业人才程序设计能力、实践与创新能力存在的主要问题,给出了改革和建设措施,有助于提高学生的编程能力、实践能力和创新能力,有利于培养经济社会发展急需的信息产业人才。

参考文献:

[1] 葛亮,朱庆生,王茜. 计算机程序设计课程自动化教学评价平台研究[J]. 计算机教育,2013,18:91-94.

[2] 唐志军,吴笑峰,席在芳. 面向实践创新能力的工科研究生培养模式探讨[J].山西科技,2015,30(5):91-93.

[3] 马丹,乔兴,姜明明.大学生综合素质的评价方法与应用[J]. 数学的实践与认识, 2014,44(9):295-300.

[4] 田立勇,于宁,张兰芬. 大学生科技创新实践能力综合评价[J]. 辽宁工程技术大学学报(社会科学版),2010,12(6):650-652.

[5] 马礼,张永梅,宋丽华. 培养计算机类专业学生硬件方向创新能力的研究与实践[J]. 计算机教育,2010(2):1-4.

[6]王锐. 改革计算机实验课,提高计算机教学水平[J].科技与教育,2008(5):197-198.

[7]曹晓兰,彭佳红,彭剑. 计算机本科生编程能力与软件能力的培养研究[J]. 计算机教育,2014(4):72-75.

[8] 耿国华. 程序设计能力培养模式的探索与实践[J].中国大学,2009(3):30-32.

猜你喜欢

因材施教
将“减负增效”与“因材施教”落到实处
——哈尔滨市萧红中学教学与作业改革实践
小学作文如何实施“因材施教”的策略
明确“因材施教” 促进个体发展
从《论语》看因材施教
浅析如何在声乐教学中实施因材施教
因材施教在小学教学中的应用意义
小学数学“因材施教”探索——着眼整体,发展学生个性特长
因材施教,拓宽中学信息技术教学之路
多媒体技术让小学语文教改实验更轻松——运用多媒体技术实施“大班额条件下的因材施教”探索
巧抓课文及学生特征因材施教