APP下载

软件工程专业综合能力培养研究与实践

2022-03-25张墨华万金梁

大众科技 2022年1期
关键词:程序设计素质专业

张墨华 万金梁 

软件工程专业综合能力培养研究与实践

张墨华万金梁

(河南财经政法大学计算机与信息工程学院,河南 郑州 450046)

文章针对软件工程专业学生综合能力培养中存在的问题,通过调查IT企业的非技术个人素质要求,分析软件开发人员的综合素质要求,提出软件工程学生能力培养指标体系。基于学科竞赛的程序设计能力的培养模式,重构程序设计能力的培养目标,从课程、教学、实验室、学科竞赛驱动等多方提出优化举措,结合目前高校软件工程专业学生素质培养体系的不足,开展“五位一体”的融合培养的综合能力培养实践。

程序设计能力;个人综合素质;综合能力培养;能力培养指标;学科竞赛

引言

随着高等教育改革的不断深入,学生综合能力的培养已经成为高等教育的首要任务[1]。有学生反映,虽然学习成绩不错,但是表达能力和沟通能力差,不够自信,所以在面试时非常被动。从河南财经政法大学计算机与信息工程学院生源上看,来自农村的孩子居多。目前中小学教育仍然是以应试教育为主,综合素质的培养基本上被束之高阁,所以到了大学之后,大学教育依然面临着一个素质教育的严峻现实[2]。

从师资构成上看,绝大多数任课老师是从校园毕业后直接进入工作岗位的,在学校时从事的也多是理论性的研究工作,入职后也缺乏如何做好教学的培训,而且多数老师也是从这种模式下培养出来的,导致大学的综合素质教育在课堂上也没有得到很好的贯彻执行[3]。另外,高校师资缺乏对企业特别是IT企业招聘、用人和管理的深入了解,导致对学生的教育无法做到针对性。从学生管理工作来看,由于专职辅导员人数少,且上级部门的任务和活动多,导致和普通学生的接触少,学生被动参与活动,活动效果很难奏效。部分班级凝聚力不够,无法组织有效的活动,学生集体感不强。

软件工程专业学生的综合能力内涵很多,通过对IT企业的非技术个人素质要求的分析,得出软件开发人员的综合素质要求,提出软件工程学生能力培养指标体系。本文将其分为个人能力、职业能力和人际交往能力,通过对这些能力的构成和培养模式进行探讨,并对河南财经政法大学计算机与信息工程学院目前培养模式存在的问题进行了分析并提出改进措施。

1 IT企业的个人素质要求

通过搜集并分析一线IT公司的招聘要求,得出这些要求基本可以分为两类:技术条件和个人素质。例如,百度公司某开发岗位的要求是“优秀的分析问题和解决问题的能力,勇于解决难题;强烈的上进心和求知欲,较强的学习能力和沟通能力,具备良好的团队合作精神”。阿里巴巴某开发岗位的要求是“有很强的分析问题和解决问题的能力,有强烈的责任心;有团队精神,良好的抗压能力,心态积极,能主动融入团队;技术视野开阔,学习能力好,对业界新技术敏感,喜欢钻研,具有良好的学习能力并注重团队合作”。在这些一流IT企业的招聘要求中,创新意识、学习能力、沟通和表达能力、团队协作能力、责任心、抗压等词语频频出现,反映了IT行业对员工应当具备的素质具有某些共同的期望。众所周知,IT行业的技术发展日新月异,因此对于员工的学习能力是非常高的,而且IT企业的工作压力很大,因此,能够承受压力也成了大多IT企业对员工的一项要求。

2 软件开发人员综合素质分析

软件工程本科专业的培养目标是培养能够分析、设计、开发、维护软件领域相关工程问题的专用人才,通过培养毕业生的综合能力,使学生具备利用信息技术的理论和方法解决软件工程中复杂的专业任务或实际问题的能力,学生能够评估和考虑影响专业活动领域的经济、社会、技术和环境因素[4]。

2.1 抽象思维、分析和综合能力

软件开发人员成为行业专家的必备素养中,抽象思维(理论分析)、分析思维、集中注意力的能力、表达能力(向他人表达自己的想法的能力)、可视化能力(思维建模)等是最重要的素养。具体来说,软件工程专家应该具有包括质疑、验证、假设、推理等推理能力和批判性思维;具有质量意识和追求卓越的态度;掌握基本的数学研究、工程研究、设计研究和社会科学研究的方法;具有自我接纳、自我调节、自我意识、自我提升的认知能力;对社会、环境、道德、伦理、可持续发展等问题具有敏感性;具有使命感、毅力、承诺、自我激励、奉献等精神;还应具备适应性、灵活性、思想开放及多任务处理能力[5]。

2.2 社会需求的设计能力

社会需求的设计能力指的是利用各种信息科学和技术来应对社会需求,包括提取和定义需求、问题分析与建模、系统实施和评估等。在具体软件设计实践中,其包括概念化想法,识别并制定问题,综合运用各种学科和技术,从公共卫生和安全、文化、经济、环境、伦理等角度识别问题,等等。并在这些约束条件下找到问题的求解方案,验证结果,用图画、数学公式、程序等方式来展示想法,按计划不断规划和实施,并期望以整体方式执行任务。

2.3 专业交流能力

由于软件工程师的专业活动会涉及收集、传输、处理、存储信息,可以说其所有专业活动都具有交际色彩,软件开发人员需要将他们的困难和愿景传达给客户、管理层、同事和最终用户,此外还需要准备技术文档和最终用户的使用文档。软件开发人员需要让自己站在最终用户的角度,才能提供有用的产品。专业交流能力是在交流领域的知识、能力和技能的基础上建立有效、集中的专业互动能力。软件开发人员的专业沟通素质包括有目的地组织沟通的能力、以理解的方式倾听他人意见的能力、以积极的情绪讨论尖锐问题的能力,以及对相互冲突的个人之间进行调解的能力等,这些能力可以保证软件开发人员应对职业活动过程中的各种交流情况。

2.4 搜索、处理和分析多种来源信息的能力

能够搜索、处理和分析多种来源信息的能力是程序开发人员必备的一项非常重要的技能,这一能力涉及到认知技能(使用符号的能力、使用广义结构的能力、建立问题求解过程动态模型的能力等)和进行自我调节的元认知技能(将心理行为转移到新条件下并设定新目标和提出新想法的能力、识别认知活动困难的能力、自我控制能力等)。这类能力可以通过以下过程进行训练:熟练使用各种软件工具;确定收集和处理信息的有效方法;开发自己的算法来求解问题;证明程序的正确性;评估软件产品的效率;制定实验计划并处理实验数据等。

2.5 团队合作能力

与其他工程行业相比,软件行业更加重视团队合作。大型多场点、多文化的全球团队同时在世界不同地区工作,以满足不同文化背景客户的需求。工程师在软件行业的大部分时间都花在与其他程序员一起工作上。团队合作能力与软件工程专家的专业交际能力密切相关,其基础是交际知识和交际技术。交际知识是关于交流的类型、阶段、方法和技术;交际技巧涉及掌握心理和实践活动,能够根据对象的交际知识和能力,有目的地调节其交际活动,例如:以适当的形式形成信息文本的能力、演讲技巧的能力、接收反馈的能力、克服各种沟通障碍的能力等。

2.6 职业道德素养

软件开发人员的职业道德与其他领域的专业人士并没有太大区别,是从业人员的必备素养,其职业道德意识包括:专业活动对社会和自然的影响、技术与社会及自然之间的关系、对版权及信息安全的理解等。

2.7 环境保护意识

软件工程人才的专业能力也要对人类的安全、健康和福祉、环境保护做出贡献。技术与环境存在双重关系性。一方面,技术(例如:纳米计算会对降低能耗和降低碳排放发挥前所未有的巨大作用)可以帮助解决环境问题;另一方面,技术本身也是造成重大环境退化的原因,例如:用于制造产品的工程过程会消耗能源量等。技术的这种双重性意味着技术的发展需要构建更符合可持续发展的流程,同时还要生产出对更可持续发展社会做出贡献的产品。培养学生对环境的道德责任也体现了新时代可持续发展理念下的育人思想。

3 软件工程学生能力培养指标体系

通过上节对软件工程开发人员综合素质的分析,结合IT企业对学生的素质要求,表1为软件工程专业学生综合素质指标。本文将软件工程专业学生综合素质分为三个一级能力指标、八个二级能力指标,并给出每个二级能力指标的具体要求。

表1 软件工程专业学生综合素质指标

4 软件工程学生综合能力培养实践

根据上述关于软件工程学生能力培养指标的研究,河南财经政法大学计算机与信息工程学院分别从技术素养和个人素质两个方面开展了相关的培养实践。

4.1 基于学科竞赛的专业设计能力培养实践

程序设计能力是软件工程专业人才培养中技术素养中的核心能力,也一直是教学的重点,但从目前来看,教学效果不是很理想。结合近几年河南财经政法大学计算机与信息工程学院《C语言程序设计》《数据结构》《算法设计与分析》相关课程的开设和考试情况,以及参加有关竞赛的情况,对学院的程序设计教学中存在的问题进行分析。

4.1.1程序设计能力的培养目标

在分析学院程序设计能力教学效果之前,首先需要明确程序设计能力到底是什么。众所周知,“程序=数据结构+算法”,它点出了程序设计能力培养的本质。以下列出了程序设计能力的主要指标。

(1)用特定编程语言实现已知算法的能力,可以用完成所用的时间和代码质量来衡量。

(2)在复杂环境下对算法进行优化的能力。

(3)对实际问题进行逻辑抽象的能力。

(4)对已知问题进行数据结构和算法的设计能力。

(5)代码安排和组织的能力,也即具体设计的能力,可以用代码规模来衡量。

(6)精通一种面向对象的语言,理解其实现机制,包括对语言的优势劣势的理解,能够深入达到底层编程水平。

(7)具有良好的编程风格的意识。

(8)为已知任务选择正确的语言工具的能力。

(9)具有进行单元测试和快速排错的能力。

(10)能够快速学习一门新语言的能力。

以上这些指标是一个优秀程序开发人员应当具备的主要技术能力,应当始终贯穿在学院程序设计课程教学中。

4.1.2现有程序设计教学能力培养的不足

在河南财经政法大学计算机与信息工程学院,《C语言程序设计》《面向对象程序设计(C++)》《数据结构》《算法设计与分析》是程序设计能力主要的培养课程,与综合性院校相比,课时安排比较适中。

从能力培养的要求来看,《C语言程序设计》课程的教学目标对学生的要求较为初级,教学目标会涉及初步的计算思维的培养、算法设计与分析的能力、积累编程经验、程序设计风格等。但是仔细分析,其教学目标依然存在缺陷,主要体现在缺乏和实际关联。目前,学院的程序设计类课程教学普遍存在如下问题。

(1)以传授教材知识为主,学生学习缺乏自主性和主动性,导致大量课时放在了语法或算法的讲解上,而不是应用上。例如《C语言程序设计》,由于偏重于知识传授,会导致更加重要的数据结构、指针、函数、文件等内容的教学没有时间保证,往往以介绍性为主,学生甚至难有实验的机会。

(2)实验主要是验证性教学为主,难以达到培养学生自主解决问题能力的目标。

(3)教学缺乏分层培养的考虑,无法照顾到学有余力的部分学生,课程考核标准较低,只保证了教学要求的最低标准。

(4)课程教学和实践脱节,学生的实践教学只是验证学过的内容,而不知如何应用到实践中,从而导致学生缺乏深入学习的兴趣。

4.1.3基于学科竞赛,加强专业能力培养

根据前述问题的分析可以看出,程序设计教学中存在的问题更多的是教学组织和方法的问题,需要进行扭转[6]。具体举措如下。

(1)课程建设方面:加强数学课的相关教学;按照程序设计能力培养的目标,重新修订教学大纲和实验大纲;构建服务于《C语言程序设计》《数据结构》《算法分析与设计》等课程的题库,采用OJ平台作为平时的教学和竞赛,满足多层次教学的需要。

(2)师资培养和团队建设方面:将《C语言程序设计》《数据结构》和《算法设计与分析》的老师组成教学团队,统一教学目标,明确分工,实行共同备课;组建ACM竞赛教练团队。

(3)教学模式方面:彻底抛弃以知识传授为主的教学模式,采用基于问题解决的教学模式,积极采用翻转课堂、小组讨论、竞赛等多种方式组织教学,活跃课堂气氛,发挥学生学习的主动性和创造性,让老师真正成为学生学习的引导者。

(4)实验室开放方面:拿出多个机房作为常规开放实验室,不安排课程使用,满足学生们随时到实验室实验使用。

(5)建立竞赛体系,浓郁学院学习气氛、强化程序设计能力的培养:学院组织ACM校内竞赛及选拔,优秀者可以给予创新学分;竞赛所取得成绩可以作为相应课程的平时成绩,其成绩达到某种水准可以取得课程免试的资格。

(6)组建高水平创新人才培养实验班:创建高水平创新人才培养实验班,其生源从对应年级中选拔,动态管理,可进可出。以参加高水平学科竞赛驱动高水平创新人才的培养,通过这种特殊发展形式,形成突破,引领学院整体教学水平的提高[7]。

4.2 “五位一体”融合培养的综合能力培养实践

在软件工程专业学生非技术的个人素质培养方面,要做到教师、学生、学生管理人员、教学管理人员、企业“五位一体”的融合培养机制。

以河南财经政法大学计算机与信息工程学院为例,学院按照学校课程教学范式改革的要求,重新设计新的教学方案,尝试新的教学模式,贯彻以能力培养为目标的教学要求,所有课程均要有意识地发展学生的人文精神和交流技能;完善学业指导办公室的值班制度,要求教研室主任定时值班接待学生进行咨询,时间表应在每学期开学时工作给所有同学;规范任课教师办公时间,要求每位任课教师针对自己所教班级,选择合适的办公时间用于接待学生,进行面对面的沟通;加强网络课堂的应用,形成老师和学生积极在网上沟通的习惯;加强《文献检索和科技论文写作》课程的教学,将这门课和《学科前沿》相结合,注重培养学生自主学习、总结、写作、表述的能力;集中实践是一个很好的综合培养学生能力的机会,充分发挥集中实践的作用,将培养学生团队协作、沟通交流、写作、表达等能力充分地融入实践教学中;提高教师对综合素质培养的认识水平,加强教师在此方面的能力;从学生管理角度,结合课堂教学在能力培养上的不足,重点组织一些不同形式的系列活动,特别是小规模组织的活动,面向所有学生,加强综合能力的培养。例如,充分利用课前十分钟锻炼学生的演讲能力,可以通过班级运动会提高同学们的归属感和集体荣誉感等;加强各类社团和俱乐部的建设,在合规的情况下,鼓励其自由发展和活动组织;加强班干部的培养,建立一个品学兼优、踏实肯干、具有领导力的骨干团队,凝造一个积极向上的班级氛围;加强就业指导课程和专业结合的深度,与专门的企业进行合作。

5 结束语

本文以提升软件工程本科学生职业综合能力培养为聚焦点,通过对专业能力培养(以程序设计能力为主)存在问题的分析,给出以竞赛驱动程序设计能力培养模式;非技术个人素质的培养,通过“五位一体”融合培养的综合能力培养体系,以学生个人综合素质能力为主线,环环相扣、螺旋进阶、持续优化,形成了软件工程专业学生职业综合能力培养的特色。

[1]彭家骏. 试析计算机应用型人才培养模式的探索与实践[J]. 河北农机,2021(5): 101-102.

[2]张燕. 大数据时代背景下应用型高校大学生综合素质评价体系研究[J]. 山西能源学院学报,2021,34(1): 34-36.

[3]纪嘉宜. 试论计算机科学与技术专业学生应具备的专业能力和综合素质[J]. 电脑知识与技术,2020,16(31): 122-123,125.

[4]王元成. 新形势下的计算机应用技术创新分析[J]. 中国新通信,2021,23(5): 100-101.

[5]毕瑶家. 高校学生能力评价模型的研究及应用[D]. 青岛: 青岛科技大学,2020.

[6]刘冬冬,丁正祁. 基于学科竞赛的计算机专业学生创新能力培养[J]. 黑河学院学报,2020,11(6): 110-112.

[7]王宇蒙. 以竞赛育人探索设计学计算机实践创新型教学[J]. 创新创业理论研究与实践,2021,4(8): 175-177.

Research and Practice on the Cultivation of Comprehensive Ability of Software Engineering Specialty

Aiming at the problems existing in the comprehensive ability training of software engineering students, this paper investigates the non-technical personal quality requirements of IT enterprises, analyzes the comprehensive quality requirements of software developers, and puts forward the ability training index system of software engineering students. Based on the training mode of programming ability of subject competition, reconstruct the training objectives of programming ability, put forward optimization measures from curriculum, teaching, laboratory and subject competition drive. Combined with the shortcomings of the current quality training system for software engineering students in colleges and universities, we carry out the practice of comprehensive ability training through the "five in one" integration training.

programming ability; personal comprehensive quality; comprehensive ability training; ability training indicators; discipline competition

G462

A

1008-1151(2022)01-0143-04

2021-09-28

河南省新工科研究与实践项目“财经院校计算机类专业复合型实践教学资源体系探索与实践”(2020JGLX043);教育部产学合作协同育人项目“复杂工程背景下的软件工程专业实践教学体系的改革与实践”(202002273021);教育部产学合作协同育人项目“产教融合校企协同的软件工程专业新工科培养体系探索与实践”;教育部产学合作协同育人项目“基于创新创业能力导向的软件工程专业教学改革与实践研究”(202002240034)。

张墨华(1979-),男,河南财经政法大学计算机与信息工程学院副教授,博士,研究方向为机器学习、图像处理。

猜你喜欢

程序设计素质专业
一句话惹毛一个专业
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
专业降噪很简单!
高铁乘务员的素质要求及其养成
专业化解医疗纠纷
更聚焦、更深入、更专业的数据分析
高职高专院校C语言程序设计教学改革探索
素质是一场博弈
什么是重要的素质