工程教育专业认证背景下面向对象程序设计课程改革与实践
2022-08-30曲海成
孙 宁 曲海成
辽宁工程技术大学软件学院,辽宁 葫芦岛 125105
工程教育专业认证是国际通行的工程教育质量保障制度,认证的核心理念是“以学生为中心,以产出为导向(Outcome Based Education,缩写为OBE),持续改进”。工程教育专业认证是以培养目标和毕业要求为导向的培养模式,以毕业要求支撑培养目标,课程目标支撑毕业要求。课程是本科教育的核心,各门课程目标的达成在人才培养过程中尤为重要[1-2]。
Java 语言是面向对象程序设计语言的主流语言之一,辽宁工程技术大学软件工程专业面向对象程序设计课程主要结合Java 语言讲授面向对象程序设计思想及方法,是软件工程专业的一门专业核心课程,也是后续课程Java 高级开发技术和软件设计方法的重要基础。该课程对于软件工程专业学生程序设计思维的培养和编码能力的训练具有极其重要的作用,是培养学生综合应用能力和工程实践能力的重要课程之一。
一、教学中存在的主要问题
面向对象程序设计主要讲授面向对象思想及Java语言,该课程具有较强的理论性、抽象性和实践性,该课程在教学过程中存在如下问题。
一是课程目标与毕业要求指标点的对应不足,每个教学内容与环节无法做到对学生的学习效果进行测量、和评价,不能衡量学生通过课程的学习是否达到毕业要求,无法为课程持续改进提供依据[3-4]。
二是课程逻辑性较强,结构较复杂。对于已经学过C 语言程序设计的学生而言,要理解面向对象思想与相关概念较为困难,编程思想难以转变。同时面向对象程序设计要求设计者具有很强的逻辑思维能力、思路清晰,但由于部分学生缺少对逻辑思维的训练,课堂教学难度较高,学习效果不理想[5]。
三是学生实践能力培养不足。部分学生程序设计能力较弱,编写、调试程序经验不足,学生分析问题、解决问题能力得不到有效培养,尤其是不能运用所学知识进行工程应用。实践能力培养达不到预期效果[6]。
四是考核方式单一,不能体现“以学生为中心,以能力培养为核心”的目标,学生学习主动性弱。考核成绩中试卷比例较大,导致一些学生课堂积极性差,考试依赖期末突击复习。部分学生课堂参与程度低,学习效果较差,程序设计能力及创新能力得不到提升[4]。
二、课程教学内容及目标
本课程主要讲授内容包括面向对象思想概述、Java语言基本语法、面向对象程序设计主要思想、面向对象特征、常用类的使用、异常处理、图形界面编程、输入输出流、多线程等主要内容。课程学习目标见表1。
表1 课程学习目标
(续表)
三、教学改革设计与实践
教学改革主要从课程自身特点出发,在明确课程目标的基础上,调整优化课程内容、完善课程大纲、改革教学方法,创新能力培养手段,突出“学生参与”,侧重“能力考核”,在培养学生掌握基础理论的基础上,实现从编程能力、综合应用能力到工程实践能力的全方位能力培养的目标。从而提高教学质量,培养学生解决工程问题的能力[6-8]。课程教学环节与能力培养目标如图1所示。
图1 课程教学环节与能力培养目标
(一)“以学生为中心”的课堂教学,加强学生编程能力的培养
传统程序设计类课程教学模式为“理论课+实验”,授课教师在教室讲解理论并演示程序,学生再通过安排的实验课动手实践,容易产生理论课的讲解和演示学生体会不深刻,实验时又无从下手,理论与实践脱节等现象。本教学模式改革采用“边讲边练,以练代讲”的方法,可以很好地解决理论实践脱节问题。在课程安排中取消实验课,全部学时均在网络教室进行授课,让学生做到“学中做,做中学”[9]。将理论内容结合案例进行讲解,并设计与讲解案例相似或进阶的案例作为课堂训练案例,并指导学生完成。本课程共设计20个课堂训练案例用于“边讲边练”,即教师讲授理论后学生动手实践完成课堂训练案例。设计8 个“以练代讲”启发式训练案例,主要是给出案例的实现流程,让学生在实践后总结规律。
(二)“课内外相结合”的综合训练项目,培养学生综合应用能力
为培养学生综合应用能力,本课程在教学过程中的不同教学阶段增加综合训练项目。综合训练项目的实施包括提出问题、解决问题、优化设计、综合评价等诸多环节。过程如下:首先,教师布置综合训练项目及要求,并给出必要的指导说明,要求学生利用课后时间分组独立完成该项目。其次,采用分组答辩的形式进行验收。项目答辩由自述、演示程序和回答问题构成,每组答辩成绩由教师和学生共同评定,各占50%。最后,教师对答辩及训练项目进行总结,学生根据总结情况对完成项目进行优化,并提交项目报告及程序源代码,教师根据报告内容及规范程度给出报告成绩。
在“承认学生差异、保证发挥个人特长”的前提下,让每名学生最大限度地参与综合训练项目。项目实施采用分组方式完成,在学习过程中确保1/3 的学生能积极主动参与,1/3 的学生能在带动下完成分工工作,1/3的学生能尽自己所能参与项目。让学生各尽所能将自己的才能发挥出来。该环节的引入,能调动学生参与训练项目设计开发、参与分工合作、参与成绩评定、参与竞争。通过参与答辩与评价,产生对问题的多种解决方案的思考,有效开拓思维,使学生真正成为“主体”,而教师尽可能地扮演好“主导”的角色。这提高了学生程序设计能力,培养了学生学习能力、分析解决问题能力、规范文档能力和团队合作精神。
(三)“校企合作”综合实训环节,实现工程实践能力的培养目标
综合实训集中实践环节是以面向对象程序设计课程为基础,并结合数据库原理及应用和软件工程等课程完成的综合课程设计。为期2周的设计要求学生采用面向对象的设计思想,使用Java 程序设计语言,结合数据库技术,按照规范的软件开发流程完成软件系统的设计与开发。该环节从选题、过程指导到最后的成绩考核全程由企业的指导教师来完成。设计题目来源于企业的实际项目,开发过程完全符合企业开发流程,编码及文档的规范符合企业要求,这对培养学生工程实践能力起到积极作用。
(四)形成性评价方式注重“过程考核,能力考核”
面向应用型人才培养,应根据学生特点,采用新型教学模式,选择新型教学方法,从知识为主转变为能力为主,从“一考定终身”向“形成性考核”转变,构建以能力考核为核心的人才培养评价体系,具体评价方法见表2。该评价模式可以充分调动学生的学习积极性,增强学生的自主学习能力,提高学生的创新就业能力和社会适应能力[10]。
表2 形成性评价构成
(续表)
四、课程目标达成度分析
工程教育专业认证中课程的评价主要体现的是课程目标的达成度。课程目标达成度是指任课教师在教学实施过程中所能达到预定目标的程度。课程目标达成度评价是教学评价的重要部分,既反映了学生对相关知识、能力的掌握情况,又是教学设计和教学环节的基本反馈[10,12]。该课程改革内容在2017 级软件工程专业学生中进行了实践,课题组对该课程进行了目标达成度分析。
(一)试卷总体成绩分析
试卷总体成绩分析包括考试成绩分布(见表3)和考试成绩分析(见表4)、试题分项成绩分析(见表5)。
表3 考试成绩分布
表4 考试成绩分析
表5 试卷分项成绩分析
(二)课程达成度分析报告
1.基础数据
学生课程形成性评价考核基础数据见表6。
表6 课程考核基础数据
2.课程目标达成度评价
根据课程目标达成度计算公式(1-1)计算得到课程目标达成度评价见表7。
表7 课程目标达成度评价表
(三)课程改革整体效果分析及持续改进
在培养方案中,设定该课程的课程目标达成度合格标准值为0.7,分析结果显示:
1.整体上面向对象程序设计教学改革的实施能基本支撑课程目标达成度要求。O1、O3和O4符合达成度设定标准,O2 达成度低于设定标准,O5 达成度相对较高。
2.课程目标O2 达成度低于合格标准,分析其原因,主要是对于Java 基本语法的考查中期末考试权重较高,而学生对语法使用比较依赖于集成开发平台。在后续教学中可以考虑基本语法部分实践,要求学生使用记事本作为编辑环境,避免对平台的过度依赖,提高学生基础编程能力。
3.课程目标O5 达成度偏高,不排除分组合作中部分学生“搭顺风车”取得较好成绩,在以后的教学中分组实施要细化小组成员分工,探索合理的评价方式。
4.60%的学生基本能独立完成课堂训练案例,具备程序设计、编写及调试的能力;25%基础较弱的学生能仿照教师案例完成训练内容,并能够理解;15%左右的学生动手能力及积极性有待提高。在后续课程中要探索开发有趣案例,进一步提高学生的兴趣和参与度。
5.学生能根据综合训练项目要求,按照软件开发过程完成综合训练项目的设计与开发,其分析问题、解决问题能力、综合应用能力有所提高。
五、结论
文章以工程教育专业认证为依据,以OBE教学理念为指导,开展了面向对象程序设计课程的改革实践,分析了2017 级学生课程目标的达成度。该课程改革能使学生充分参与到教学中,对学生基础知识的掌握,程序设计、编写、调试能力的培养,分析问题、解决问题能力的提高,软件开发过程及文档书写的规范等方面均具有重要意义。同时,还培养了学生团队合作精神,引导和激发了学生的创新精神和创新能力。该课程改革在学生能力培养方面取得了初步成效,但仍需改进教学方法和手段,才能真正使学生的学习状态由被动向主动转变。