以实践能力为程序设计课程改革

以实践能力为程序设计课程改革

摘要:程序设计课程的实践能力内涵和实践教学方法特色,对工程教育模式的开展和落地具有重要的作用。结合工程教育的基本要求,本文首先分析了程序设计课程的实践能力内涵,在此基础上,通过知识点关联重构实践教学内容,以项目驱动的实践过程改善教学方法,并设计一体化的实践教学平台加强教学过程管理。通过课程的改革,有力地促进了工程教育的推进。

关键词:计算机教育;程序设计课程;工程教育;实践能力

1引言

工程教育专业认证是保证工程教育质量、实现工程教育资格国际互认的重要基础。教育部在2006年3月成立工程教育专业认证专家委员会。目前,国内许多大学都先后开展了工程教育认证,并将其作为专业建设和和课程改革的重要举措。程序设计类课程是计算机相关专业学科体系重要组成部分,一直发挥着计算机基础理论的验证、设计和应用等实践方面的作用。如何面向工程教育认证,加强程序设计类课程建设,满足工程教育认证的规范,切实提高学生的专业实践能力,是一线教师面临的现实问题。近年来,一些教师和学者对工程教育认证专业背景下的专业课程建设进行了研究。王帅杰、罗杰等从培养目标和毕业要求等方面研究了新能源科学与工程专业课程体系设置、机械制造工艺等课程建设,有力地支撑了工程教育认证[1-2]。在程序设计类课程方面,蒋社想等研究了工程认证背景下的高级语言程序设计课程改革,从教学辅助平台、教学内容、教学方法、课程评价体系等方面进行改革,满足了工程教育专业认证人才的培养要求[3]。佟强等针对工程教育认证要求,结合C语言程序设计教学中的问题,提出一种以课程设计项目为驱动的教学改革方法,实现了教学质量的提高[4]。从目前的文献来看,相关研究大多集中在以产出为导向的工程教育认证的约束下去开展课程建设,没有深挖工程教育的对实践能力要求内涵。实践是工程的灵魂,是工程教育的基本特征[5]。只有从工程教育的实践内涵出发,加强对教学实践环节的优化和管理,才能更好地促进工程教育认证的落地。本文首先分析了工程教育认证和程序设计课程对实践能力的本质要求,以此为基础探讨了面向工程教育认证的以实践能力为导向的课程改革方法。

2实践能力内涵

2.1工程教育的实践本质

工程是人们以预想目标为依据,在特定环境资源条件约束下,运用相关的多学科知识和手段,有计划、有组织地设计和建造某一特定人工物的实践活动[5]。工程的基本属性是实践性、综合性和创造性。目前,高等学校的工程教育其实质是通过对专业领域的本科生进行系统训练,使其在基础知识、素养和工程实践方面具备一定能力,在毕业后三到五年内成为一个合格的专业人士。工程教育认证是为保证高等教育质量,根据专业标准及流程对一个专业的办学情况进行考察,从而判断其办学质量的评价过程。实践环节和实践能力也是工程教育认证考查的重要方面。在计算机专业的工程教育认证标准中对实践环节有明确的要求:要求具有满足教学需要的完备实践教学体系,主要包括实验课程、课程设计、现场实习。在工程认证方法和流程中,对实践能力也有相应的要求:认证专家至少有1/3成员为申请认证专业领域的在职工程师;要考察实验技能实践、计算机应用、科学研究与工程设计方法的基本训练,重视学生综合运用所学的知识,分析解决工程问题的基本能力[6]。

2.2实践能力分析

实践能力是计算机专业开设程序设计类课程的核心能力目标。按照马克思主义的观点,实践是指人能动地改造客观世界的物质活动,是人所特有的对象性活动。实践能力是人能动地改造客观世界的物质活动能力。从程序设计类课程在计算机学科体系中的地位来看,其侧重于解决计算机学科中的工程应用型问题。其学科主要方法是基于理论的设计,以及在设计基础上工程方法。程序设计课程的特征如图1所示。从图1中的分析可以看出,程序设计课程培养的能力更侧重于工程应用能力,结合程序设计课程的特点,计算机工程、应用能力又可以分成三种专业能力,其中两项基本能力:算法分析与设计能力、程序设计与实现能力;一项综合能力:系统开发设计能力。程序设计课程的这种能力要求是由课程体系设置、任务特点、课程方法论和课程特色决定的,这其实就是程序设计课程的实践能力内涵。通过以上分析看出,程序设计类课程的实践能力要求与工程教育的实践本质是相符的。正是基于这一认知,本文展开了以实践能力为核心的课程改革。Java程序设计是一门典型的程序设计课程,并且围绕Java课程,可以形成程序设计基础、Web程序设计、企业级程序设计等具有不同层次的课程体系。而实践环节是程序设计课程教学的主要环节,一些小班的程序设计课程已经从教室移到机房,将课堂学习和实践锻炼融二为一。本文主要以Java课程为例,通过实践环节的改革,来探索程序设计类课程的改革。

3课程实践环节改革

3.1课程实践内容

同一门专业课程不同单元知识点之间的在知识的继承性、互补性等方面存在紧密的关联关系。基于知识点关联,设置合理的验证性实验和设计性实验项目,完善实验环节对理论内容的覆盖,加强单元实验对综合性实验及课程设计的支撑,强化学生的专业基本能力训练。以Java编程基础课程和Java课程设计为例,设计环境配置、基本语法、面向对象等3个验证性实验,输入输出、图形界面、数据库访问等3个设计性实验,以及“简单学生成绩管理系统”一个综合性实验。验证性实验和设计性实验加强了对单元知识点的掌握,提高了程序编码和设计能力;综合性实验通过对知识点的综合应用,提高了程序设计能力。在课程设计阶段,要求学生独立设计开发一个完整的软件系统,提高学生程序设计和系统开发能力;课程设计的要求正是建立在课程实验的强化训练之上的。对于相关专业课程,单元知识点之间可能存在较强的支撑和应用关系。在设置实验环节时,有倾向性地加强相关课程内容之间的关联,提高学生的综合应用能力。如在JavaWeb应用开发课程中,关于JavaBean的开发和应用是一个重要知识点,并和Java编程基础课程中对象、包等知识点密切相关,故在面向对象实验中,要加强相应内容的实践。

3.2基于项目优化实践环节

课内实验、课程设计、企业实训、毕业设计是面向工科学生采取的不同实践手段,与课程体系有机结合在一起,构成系统的教学实践体系。传统教学执行过程中,各种实践手段和环节之间缺乏支撑和延续关系,对培养学生的实践能力非常不利。通过企业案例引进和教学实践总结,凝练优质项目案例,在研究专业课程之间相关知识点的关联关系的基础上,围绕项目功能模块将相关专业课程的实验有机结合,实现课程实验用例统一化。通过项目驱动实践环节,强化学生的程序设计和算法设计能力,同时也使学生理解把握专业整体知识体系,实现专业知识综合应用、解决复杂工程问题等系统化训练,提高学生的系统能力。例如,在Java相关课程的实践环节中,使用电子商城项目,将相关课程的实验串联起来,加强对学生系统开发能力的培养。相关课程的实践环节关系如下所示:电子商城项目的会员模块包含注册登录与喜好推介子模块,在软件工程课程的需求分析、软件设计、编码与测试实验中可以引入相应的案例;注册登录模块与JavaEE中的身份验证、输入校验相关,进而与JavaWeb开发中的JDBC和内置对象实验相关,而这些内容又以Java编程基础中JDBC与类和对象实验为基础,其中JDBC由于数据库课程中数据库与表、存储过程等内容相关。在相关课程课设单元实验时,以电子商城作为案例,学生在实践过程中,将体会到学习的循序渐进性,在不知不觉间已掌握的分析和解决复杂系统问题的能力。项目驱动的实践环节优化模型如图2所示。

3.3构建专业实践教学平台

实践能力本质上是一种应用能力。相比理论教学,在实践环节教学中,教师和学生之间的交互,以及学习过程中的引导与控制显得更加重要。在实践内容重构和实践环节优化的基础上,建立集学、教、管于一体的专业实践教学平台,加强学习过程引导,促进了以实践能力为导向的课改措施的落地。实践教学平台体现了三个特点:(1)以“学”为中心的资源建设。依托程序设计课程组,建设课程实验题库,课程设计项目题库,录制讲解或演示视频。为了提高学生程序热情,构建各类程序竞赛题库及结合教师科研项目的实践题目。学生在完成课程基本要求后,还可以根据兴趣,进行拓展学习。教师可以通过学生学习情况,选拔学生参加竞赛和科研项目。(2)以“教”为引导的平台设计。教师登录平台可以浏览学生前期课程及实践环节实施情况。根据课程关联,参考教学资源,设计课程实验和课程设计项目。授课期间,教师学习任务;解答学生问题;查看学习进度,进行线上线下混合教学。学生登录平台,可以查看课程实践任务,在个人终端设备进行程序设计或登录云桌面进行实践;还可以通过线上或线下方式,进行学习交流和提问。(3)以“管”为手段的教学过程实施。学生使用平台完成程序设计课程的实践,多门程序课程的学习,共用同一账号;平台提供学习过程跟踪控制,记录学生学习过程;通过一些关卡任务设置,引导和激励学生持续学习;平台保留学生每门课程的学习记录,系统地完成学生的专业实践训练。教师通过学习平台,实时掌握学生的学习进度,及时发现学习中存在的问题,以线上或线下方式进行针对性指导;完整的过程跟踪记录,为课程考核提供了更加全面的依据,也提高了成绩的合理性与科学性。

3.4对毕业要求的支撑分析

工程教育认证注重培养目标、毕业要求与教学内容和方法的一致性检查。通过Java课程验证性实验、综合性实验的实施,支撑了培养计划中“毕业要求4:具备设计和实施工程实验的能力,并能够对实验结果进行分析”;通过基于项目驱动的课程实验、课程设计实践环节,支撑了“毕业要求3:掌握工程基础知识和本专业的基本理论知识,具有系统的工程实践学习经历”;同时,综合性实验、综合性课程设计的开设,部分支撑了“毕业要求5:具有综合运用理论和技术手段设计系统和过程的能力”。

4结论

以实践能力为导向的程序设计课程改革方案紧密贴合工程教育与专业认证要求的实践本质,以及程序设计课程的实践能力内涵,从基于知识关联的实践内容重构、基于项目的实践环节优化、实践环节平台管理等方面,对程序设计课程进行改革。从2014年开展校级优培课程“以实践能力提升为导向的Java系列课程改革”项目,相关措施经过多年探索和实施,有力地促进了相关专业工程教育认证和学生程序设计实践能力的提升。目前,开设程序设计类课程的计算机科学专业和软件工程专业已分别于2017年和2019年相继通过了工程教育专业认证。以实践能力为导向的程序设计课程改革,也明显提高了学生的程序设计能力和热情,改善了学生的就业。近几年来,学生参加省部级以上及省级以上行业协会举办的各类程序竞赛,二等奖以上获奖次数有数十次之多。通过对连续两届学生的就业数据分析,毕业之后的IT从业率提高了十多个百分点;根据学生的反馈,多数都选择了程序设计的开发、运维工作。以实践能力为导向的程序课程改革措施契合了工程教育理念,随着各项改革措施的落实,程序设计课程体系将日趋完善,在学科体系中会发挥更大的作用。

作者:王社伟 单位:河南工业大学信息科学与工程学院