新工科背景下程序设计类课程的核心能力

2018-09-13 11:22梁新元
电脑知识与技术 2018年17期
关键词:核心能力新工科

梁新元

摘要:新工科成为当前高等教育研究的热点,论文分析了新工科背景下人才能力的存在问题和研究现状,讨论了新工科背景下计算机专业人才能力的研究进展。从计算机相关专业的程序设计类课程角度,论文提出了新工科背景下程序设计类课程中学生核心能力要求。该文提出程序设计类课程的7种专业核心能力和5种通识能力,为人才培养目标提供了参考标准,是对新工科思想实践的有益探索和尝试。通过教学实践证明,这些能力要求能有效地提高教学效果和提升学生实践能力。

关键词:新工科;程序设计类课程;核心能力

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2018)17-0146-04

Abstract:Emerging engineering education is the research hotspot of high education at present. After analyzing the present situation and problem of talent competence in the Context of Emerging Engineering Education, the paper discussed the research situation of talent competence of computer specialty. From a course's point of view, this paper presented the core competence of programming courses of computer specialty. The core abilities which included seven specialty core abilities and five general abilities provided a reference standard of personnel training objective, and offered an effective practice exploration of emerging engineering education. Teaching practice showed that it is an effective competence standard to obviously enhance students practical ability and improve the effect of learning theory.

Key words:Emerging Engineering Education; Programming Courses; Core Competence

人才培养是高等学校最根本的任务,人才培养质量是高校的生命线。工程教育随着工业的新技术、新业态、新产业、新模式为特点的发展不断改革,当前新工科研究成为工程教育创新改革的主流。2017年,教育部组织高校形成了“复旦共识”、“天大行动”和“北京指南”,新工科成为当前教育研究的热点。2018年,教育部公布首批612个新工科研究与实践项目,升级传统工科,提高人才培养质量,提升国家教育实力。

1新工科背景下人才能力存在问题与研究现状

“复旦共识”[1]提出地方高校的建设思路:对区域经济发展和产业转型升级发挥支撑作用,发挥自身优势,凝炼办学特色,深化产教融合、校企合作、协同育人,增强学生就业创业能力,培养大批具有较强行业背景知识、工程实践能力、胜任行业发展需求的应用型和技术技能型人才。

一些教育研究学者深刻分析并指出了我国现行工程教育的瓶颈。中国高等教育学会前会长瞿振元[2]认为工程教育主要存在的问题是人才培养缺乏明确标准、工程教育理科化倾向较严重、工程师价值观和工程师伦理教育被忽视、工程技术人才质量差强人意、师资队伍建设没有满足现代工程教育要求、教师重科研论文产出轻实践教学能力等。北京理工大学张辉[3]指出,我国工程教育诸多问题导致工科学生上岗适应慢,人文素养、心理素质、沟通能力和动手能力差,自主学习和创新能力不足,团队合作意识缺乏,对现代企业工作流程和文化了解甚少,难以应对社会需求。

能力导向教育(Competency-based Education,CBE)是由美国麦克莱兰(McClelland)发起,他认为核心能力是学生成功就业和可持续发展的关键要素,只有核心能力才是学生成功就业和可持续发展的关键要素。基于能力的教育日益受到业界和大学的重视,国际高等教育界倡导大学教育传授知识与技能,培养和测评学生的核心能力;大学教育的重点已开始由知识与技能传授,逐渐转向学生核心能力的培養与测评,以确保毕业生能够满足企业与未来社会对高素质人才的需求。因此,核心能力已成为人力资源开发和管理的评价标准。欧美等国的企业界和工业界正广泛利用能力模型来选择、教育、培训、评估和提升员工。

构建有效的能力模型是实现能力教育的关键。顾佩华[4]等人介绍了汕头大学的CDIO工程教育改革主要成果之一—《CDIO能力大纲》,就提供了关于工科毕业生学习产出的四层次分解方案,主要针对专业层面和学校层面。2005年,美国劳工部就业培训局提出了一个通用能力模型,并作为布什总统“高增长行业就业培训计划”的一部分。ETA的通用能力框架是一个9层的金字塔结构,底层是高层的基础。底层是行业通用能力,层次向上移动,代表更为具体的职业能力。其中,1层到3层为底层,描述基本能力,包括个人效能、学术能力和职场能力;4层和5层为中间层,描述行业相关能力,包括整个行业的技术能力和具体行业的技术能力;6层到9层为高层,描述职业相关能力,包括特定职业知识、特定职业技能、特定职业要求和管理能力[5]。2012年,美国国家科学院发布了一份报告,给出了能力分类初步方案,即总结出21世纪的技能由认知、内省和人际3类能力构成[5]。工业4.0背景下,工业和商业界越来越要求工程专业培养学生的“21世纪的技能”,如有效交流、批判性思维、系统思维、问题解决、协同合作、数据决策、创新创业和自我管理等技能。这些能力是个人未来职业成功和生活幸福的基础。[6]Ernst A. Hartmami和Marc Bovenschulte首次对工业4.0的能力需求进行了分析,提出了基于技术路线图分析的能力需求预测方法,并将其应用于工业4.0能力结构的定性分析,得出定性技能和定量技能的要求[7]。2015年,Lars Gehrke和Amo T. Kiihn等以德国和美国为例,探讨了工业4.0时代未来工厂的工人资格和技能,列举了20项具体的知识和技能[8]。知识、能力、素质是高等教育人才培养质量评价的基本指标,马万民[9]构建了基于知识、能力、素质的高等教育人才培养质量评价模型,但该模型过分强调知识的作用,对能力评价不足。尽管现在对学生核心能力的界定和分类还有争议,但周开发[10]根据第四次工业革命背景下的工程发展新趋势,借鉴EmSt和LarS的能力需求分析方法,提出新工科学生核心能力分类架构提出的新工科人才社会能力、技术能力、学术能力、知识能力和个人效能5类核心能力矩阵结构,值得借鉴学习。

2新工科背景下计算机专业人才能力的研究进展

教育部高等学校计算机类专业教学指导委員会副主任蒋宗礼[11]教授认为:新工科背景下教育基本理念要从面向课程的教育转向面向产出的教育,而面向产出的教育培养解决复杂工程问题的能力;《计算机类专业教学质量国家标准》应该给出推荐的知识领域、培养基本要求,以及计算机类专业人才的能力构成等。

参考英国、美国及欧洲发达国家有关工程类专业的能力评价标准,陆永忠[12]建立了软件工程专业人才培养质量评价模型,给出了完成与软件工程相关的任务所需要的关键能力主要包括交际能力、信息技术能力、计算的应用能力、合作能力、解决问题的能力、改进和创新能力共6个方面。

张永梅[13]等人认为计算机专业本科毕业生应具有计算思维能力、算法设计与分析能力、程序设计与实现能力、系统能力,计算机专业实践性要强。但不少企事业单位反映计算机类毕业生实际应用知识、动手与应用能力不够、程序开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求[13]。程序设计能力是评判一个学生是否是一名合格的计算机专业学生的一个重要指标。如何客观地评价计算机专业本科生的程序设计能力、实践与创新能力,并建立有效的评价体系,是亟需解决的问题[14][15]。张永梅[13]等人将计算机专业学生的综合能力通过编程、实践、创新3个方面进行评定,建立了评价体系。评价体系的3个一级指标中,编程能力可被分解为数据表达能力、程序理解能力、系统认知能力、问题分析能力、硬件基础能力、基础科学素养和程序修改与复用能力7个方面进行评定,实践能力可分为实验性课程、实习、竞赛、资格证书的获取和参与项目5个方面进行评定,创新能力则可从学生的创新意识、创新思维、创新知识表达和创新类实践给出评定结果。评价体系的3级指标是课程、实践活动、竞赛、专业证书等方面的成绩,而创新方面的3级指标应该是问卷调查中的学生自评数据,因此,该指标体系是基于课程成绩进行的评定。

从以上文献可以看出,人才的核心能力成为新工科教育研究的重要内容。但是,新工科的研究方面目前主要以宏观理论性研究为主,微观实证研究的不多,本文打算从微观方面对课程需要的能力进行探索。从以上文献可以看出,现有的论文主要是从国家、学校或专业等宏观角度进行人才质量评价,设定相应的能力要求和评价标准,这些标准非常宏观、抽象和理论化,从课程角度很难量化,从教师角度很难执行。本文结合近年来的课程教学实践经验,从计算机相关专业的程序设计类课程教学实际出发,从教师角度和课程角度提出新工科背景下程序设计类课程中学生能力要求,方便实现以实践能力为核心进行有效的人才质量评价和教学质量控制。

3新工科背景下程序设计类课程的学生能力要求

程序设计类课程主要包括《C语言程序设计》《C++程序设计》《C#程序设计》《Java程序设计》《网页设计》等语言课程。还可以包括《数据结构》和《算法分析与设计》等课程。

程序设计类课程是实践性非常强的课程,因此学生的实践能力是最重要的能力。具体说来,学生的编程方面的能力主要有识记语法知识的能力、阅读程序的能力、修改程序错误的能力、编写程序的能力等方面的能力,即具有记、读、改、写的能力。还要具有能够测试程序漏洞的测试能力,程序逻辑思维的能力以及系统分析和设计能力。以上能力是程序设计类课程要求的核心专业能力,是新工科的核心专业能力。这些能力中最重要的是编写程序的实践能力,没有编写程序的实践能力,就无法进行系统分析和设计。实践能力包括修改程序错误的能力、编写程序的能力、测试能力、逻辑思维的能力以及系统分析和设计能力。

当然,还要具有总结归纳能力、口头表达能力、沟通交流能力、团队合作精神和合作能力、创新思维和创新能力,这部分能力可以说任何专业都需要的通识能力,反映了学生的综合素养。这些能力围绕核心专业能力服务,是新工科的核心素养部分。实践能力是创新能力的基础,没有实践能力就无法进行创新。

3.1核心专业能力

3.1.1 识记知识的能力

程序设计类课程通常都会有比较多的语法知识点,主要包括数据类型、表达式、循环结构、分支结构、函数及函数库等。这也是大多数教材主要编写的内容,甚至大多数教材主要讲语法知识,对于编程方法却很少介绍。教师在讲授时也主要讲授语法,然后再介绍一些案例。识记知识的能力主要是识记大量的语法知识,并适当识记一些编程相关知识。当然,要识记这些知识要求学生具备一定的总结归纳能力和知识的辨析能力。学生需要认识并记住这些语法知识,才能阅读程序并应用这些语法知识进行程序编写。因此,识记语法知识的能力是程序设计的基础能力,是程序设计的入门必须的能力。所以,识记语法就像考驾照,要先背交规一样。但是记得交规的人,却未必会开车。因此,语法的识记能力并不代表能编程。这也是大多数教学中存在的误区,老师以为仔细讲解语法学生就会编程了,而且老师还会更加拼命地讲解更细更多,结果是学生编程能力还是很差。这是典型的精英教育思维,以为老师讲得越透彻,学生越容易懂,学生会在课后花大量时间练习编程。从教学实践来看,由于缺乏课后适当数量和适当方式的练习,大多数学生会永远停留在语法识记阶段,离真正能够独立编程还差得很远。

3.1.2 阅读程序的能力

阅读程序的能力主要是根据给出的程序,能够理解程序的基本功能。通俗的说就是读懂程序,能读懂教材的案例程序,能读懂教师和他人编写的规范程序或优秀案例。阅读程序的能力反映了学生对于基本语法知识的熟练程度,是对语法知识的初级运用。阅读程序的能力反映了学生对程序逻辑的理解能力。阅读程序能力是编写程序的基础,不能阅读程序的人无法理解他人的编程思想,是没有能力编程的。教学实践中,常常发现不少学生根本没有读懂教材程序,只会当打字员把案例程序输入电脑,程序运行成功就算万事大吉。

3.1.3 修改程序错误的能力

修改程序错误的能力是指对于有错误的程序如何进行修改的能力,也可以称为排错能力或者程序调试能力。程序设计过程常常容易出现错误,学生编程成败往往取决于错误能否排除。通过多年的教学实践发现,编程能力与排除错误能力成正相关关系。编程能力强的同学排除错误的能力也很强;编程能力弱的同学排除错误的能力也很弱,编程过程中容易出现大量错误,却没有能力排除错误。因此,排除错误的能力成为程序设计中非常重要的能力。

因此,编写程序中对于错误的排错能力称为程序调试能力,编程能力的重要内容,或者说就是编程能力。程序调试能力能过关的人才能真正学会编程。教学实践发现,大多数学不会编程的同学就在程序错误排除这个阶段遇到困难,无法排除错误,备受打击,从而容易产生放弃念头。因此,经常出现这样的现象,不会编程的人不会排错,不会排错的人基本上不会编程。从这个角度说,培养学生排错能力是非常重要的,在教学中要经常给学生讲常见错误怎么排除,在实践练习中要加强这方面的训练。教学实践中,教材、教师和学生都容易忽视排错能力的训练。

3.1.4 编写程序的能力

编写程序俗称写程序或写代码,编写程序的能力又称为编程能力或编码能力或程序设计能力,就是根据设计要求能够编写出代码完成规定的功能。程序要能够正确的运行出结果,要求没有语法错误和逻辑错误。程序编写的能力是程序设计类课程最核心的实践能力,是综合性和应用性最强的能力。许多能够熟记语法知识的同学,往往无法编写出一个非常简单的程序,反映出编程能力非常差。能读懂程序不一定能独立写出程序,只是把案例程序输入运行更不能说能编写程序,只是实验验证而已。编写程序是对语法知识的熟练应用阶段,编程要求学生能够熟练的掌握和运用语法知识,清晰的逻辑思维能力,熟练地排除遇到的错误,还要掌握常用的软件测试的方法才能编写出不存在逻辑漏洞的错误。因此,编写程序的能力是综合性和应用性最强的实践能力。

3.1.5 测试程序的能力

测试程序的能力就是测试程序漏洞的能力,能够检测程序可能存在的逻辑错误和功能缺陷。在编程过程中,必须进行测试才能发现这些错误,才会进一步去排除错誤。测试程序错误在《软件工程》中称为软件测试,是极其重要的章节,有的学校还开设《软件测试》专业课程。甚至有的学校开设了软件测试专业,专门培养从事软件测试相关岗位的专业人才。事实上,大的软件公司往往有专门的软件测试人员和测试岗位。因此,软件测试能力是基本的编程实践能力,软件测试也是专业的工作岗位。因此,有必要在程序设计类课程植入软件工程中的软件测试思想,培养学生良好的工程习惯和逻辑思维能力,也可以在程序设计类课程提高设计报告的撰写能力。

3.1.6 程序逻辑思维的能力

程序逻辑思维的能力是指编程人员对于程序逻辑的理解和思维能力,养成很强的程序逻辑思维。程序设计需要较强的逻辑思维能力,尤其是对程序逻辑的理解和运用。可以说在读程序、改程序、写程序和测试程序中都要有逻辑思维能力。在绘制流程图、写伪代码、进行系统分析和设计中都需要很强的逻辑思维能力。可以说,这个软件就是逻辑产品,因此逻辑思维是整个软件设计的基础。高质量的程序要求简明、层次分明、代码规范、逻辑清晰;低质量的程序往往逻辑混乱、思维混乱,别人读不懂,编码者自己也读不懂。系统分析与设计的相关图表也能逻辑清晰的展示设计思想,表达设计意图。

3.1.7 系统分析和设计能力

《软件工程》就是采用工程化的方式开发和设计软件,分成可行性研究、需求分析、概要设计、详细设计、编码、测试及技术文档的编写等阶段。《软件工程》是从整个软件项目的工程化设计角度进一步提升学生的逻辑思维能力、逻辑设计能力和编码实现能力,提升系统的分析能力和撰写报告的能力,提高学生解决复杂工程问题的能力。程序设计类课程是《软件工程》的前导课程,它的目标是培养学生的工程能力即编写程序的能力。

系统分析和设计能力主要体现的是对系统的需求分析、概要设计、详细设计等方面的能力,能实现复杂管理系统的分解和合并,是解决复杂问题的能力,是新工科背景下的核心能力。系统分析和设计能力主要通过撰写报告来体现,主要撰写实验报告、课程设计报告和综合设计报告,主要训练学生的书面报告能力,反映了学生的系统分析和设计的水平。撰写报告的能力是一种书面表达能力,是计算机专业非常重要的能力。软件设计的思想、设计图、测试方法与结果、归纳与总结等方面都需要通过报告来体现。软件设计图包括大量的图形,比如软件结构图、流程图、数据流图、E-R图等。在《软件工程》中会将软件设计过程中需求分析、概要设计、详细设计这几个阶段用到的图进行系统的介绍。《软件工程》课程还要求学生能够撰写各种专业类型的报告,主要包括需求分析报告、概要设计报告、详细设计报告和软件测试报告等。可以说报告既是专业能力的体现,又是专业人员之间交流的重要工具。程序设计类课程其实是为《软件工程》的学习打下基础。因此,在这些课程中的报告要体现软件工程的思想,逐步训练系统分析和设计的能力,才能逐步培养解决复杂问题的能力,逐步具备新工科的思维。

3.2通识能力

3.2.1 口头表达能力

口头表达能力是指学生能用自己语言,采用口头方式说出来,要求说得简洁、清楚明了。可以表达自己的思想,介绍自己的想法,提出自己的疑问,回答老师或者同学提出的问题。理工科专业的学生尤其是男生,普遍都存在口头表达能力很差的现象,不愿意表达,不善于表达。口头表达能力在任何专业都非常重要,对于计算机专业这样的理工科专业显得尤其重要。因为计算机专业的软件产品通常是一个无形的逻辑产品,口头表达能力强才能有效地介绍自己的工作和作品,才能在团队中进行有效的沟通和交流,对于个人的职业发展尤其重要。

3.2.2 沟通交流能力

沟通交流能力是将自己想法以适当方式告诉他人的能力,争取他人支持或理解自己想法的一种能力。沟通交流能力是表达思想、解释和回应他人信息的能力。通过沟通交流最好能与他人就相关想法达成一致意见,或者相互交流达成一致看法。因此,沟通的时间、地点、对象和方式都非常重要。口头表达能力就是一种沟通交流能力。沟通方式,还可以有书面沟通、网络沟通和电话沟通等沟通方式。

3.2.4 团队合作精神和合作能力

团队精神是指学生具有团队合作意识,能够一起合作、相互支持、协同配合完成共同的任务。团队合作精神是现在社会非常重要的素质,尤其是对于现在计算机专业的学生更加重要。因为,现在计算机要完成的任务越来越复杂,通常都需要团队合作才能完成,因此团队协作精神和合作能力非常重要。口头表达能力、书面表达能力和沟通能力在团队合作中都显得非常重要,这些能力能够有效地促进团队合作。

3.2.5 创新思维和创新能力

创新思维是指以新颖独创的方法解决问题的思维方式,通过这种思维能突破常规思维的界限,思维模式提出有别于常规或常人思路的见解为导向。创新能力就是具有创新思维,能创造性地提出问题和创造性地解决问题,可以是新思想、新理论、新方法和新发明的能力。创新能力由多种能力构成,主要包括学习能力、分析能力、想象能力、批判能力、提出问题的能力、解决问题的能力、实践能力和综合整合能力。对于计算机专业来说,創新能力非常重要,新问题和新技术不断涌现,因此,提出新的解决方法显得尤其重要。解决问题时需要整合相关学科、专业和课程的知识,因此新工科要求的跨学科整合能力非常重要。计算机专业的程序设计类课程,首先要求学生具备较强的实践能力,能够整合本课程内部相关知识,整合本专业内部相关课程知识,能够综合运用多种知识和方法解决复杂的实际问题。学生先具备课程专业知识整合能力,再培养专业课程间知识整合能力,才能逐步具备跨学科整合的能力,逐步培养具有新工科所需要跨界整合能力的人才。

4 结束语

本文提出程序设计类课程的7种专业核心能力和5种通识能力,是对新工科思想在程序设计类课程中实践的探索和有益尝试,只有能力标准明确才能更好地确定人才培养的目标。通过最近5年在《C语言程序设计》、《C++程序设计》和《数据结构》3门程序设计类课程的教学实践证明,本文提出的学生能力要求符合程序设计类课程的教学质量要求,都能提供相应测量和评定方法;能够有效提高学习效果和学生实践能力,能够提高80-90%学生的编程能力;大幅度提高学生的上机考试及格率,平均及格率从50%提高到80%;大幅度降低差生率,平均值从33%降低到11%。

参考文献:

[1]“新工科”建设复旦共识[EB/OL]. [2017-07-02]. http://www.moe.edu.cn/ s78/A08/moe_745/201702/120170223_297122. html.

[2] 瞿振元. 推动高等工程教育向更高水平迈进[J]. 高等工程教育研究,2017(1):12-16.

[3] 张辉,王辅辅. 社会需求导向下工程人才培养中存在的问题及对策[J].江苏高教,2016(1):82-84.

[4] 顾佩华,胡文龙,林鹏,等. 基于“学习产出”(OBE)的工程教育模式——汕头大学的实践与探索[J]. 高等工程教育,2014(1):27-37.

[5]MICHELLE RE. Competency models : a review of the literature and the role of the Employment and Training Adminis-tration(ETA) [EB/OL]. (2008-01-09) [2017-03-28]. https://www. careeronestop. org/competencymodel/Info_Documents/OPDRLiteratureReview. pdf.

[6] 周红坊,朱正伟,李茂国. 工程教育认证的发展与创新及其对我国工程教育的启示——2016年工程教育认证国际研讨会综述[J]. 中国大学教学,2017(1):88-94.

[7] ERNST A H, MARC B. Skills needs analysis for “industry 4.0” based on roadmaps for smart systems [R]. The moscow school of management SKOLKOVOs education development centre (SEDeC) — International labour organization, 2013.

[8] GEHRKE L, KtiHN A T, RULE D, et al. A discussion of qualifications and skills in the factory of the future[ EB/OL].[2017-03-20]. https://www. researchgate.net/publication/ 279201790 A Discussion of Qualifications and Skills in the Factory of the Future A German and American Perspective.

[9] 马万民. 高等教育人才培养质量评价模型研究[J]. 中国软科学,2008(8):153-156.

[10] 周开发,曾玉珍. 新工科的核心能力与教学模式探索[J]. 重庆高教研究,2017,5(3):22-35.

[11] 蒋宗礼. 新工科建设背景下的计算机类专业改革[J]. 中国大学教学,2017(8):34-39.

[12] 陆永忠. 软件工程人才培养质量评价体系研究[J]. 中国高等教育评估,2006(4):47-49,67.

[13] 张永梅,马礼,孙海燕,等. 基于模糊神经网络的程序设计能力实践与创新能力评价方法[J]. 实验室研究与探索,2017(2):18-22.

[14] 左国平,谢红艳,邱小平,等. 基于神经网络的高校教师课堂教学质量评价[J]. 中国现代教育装备,2011(3):97-99.

[15] 张金梅,员世芬,谢克明. 人工神经网络在教学质量评价体系中的应用[J]. 太原理工大学学报,2005,36(1):37-39.

猜你喜欢
核心能力新工科
“新工科”建设的五个突破与初步探索
面向新工科的Python程序设计交叉融合案例教学
跨境电商人才核心能力分析及培养路径选择
习近平领袖核心能力的演进轨迹
我国高校英语专业学生核心能力培养研究综述