以培养软件技术人才核心技能为目标的双案例资源建设与应用探索
2020-07-09王敏,徐昶,贾露
王 敏,徐 昶,贾 露
(湖北科技职业学院 软件工程学院,湖北 武汉 430074 )
0 引言
20 世纪20 年代,由美国哈佛大学商学院所倡导的案例教学法对培养高素质经济管理人才具有良好的效果。哈佛独特的案例教学法已在全世界的高等学府中得以运用,并得到认可[1]。20 世纪90 年代,我国教育界开始探索案例教学法,教育工作者在各类课程中进行了大量的教学实践,其教学效果得到业界公认[2]。在程序设计类课程中采用案例教学法能有效激发学生的学习兴趣、提高学生的应用能力和工程素养,因此,案例教学法被广泛运用于程序设计类课程的教学中[3-4]。然而,迄今为止,程序设计类课程所使用的案例普遍以优良案例为主,这些案例尚不能满足对学生程序调试能力、发现问题和解决问题能力的训练,开发更多针对性的教学案例,全方位提升学生的核心技能,是高等职业院校教育工作者正在探索的问题。
高等职业院校培养的软件技术人才主要对接软件企业的“程序员”岗位,来自企业调研的结果表明:程序员应具备的核心技能为“程序设计和程序调试”,多数新入职的大学生在程序调试技能方面的欠缺比较明显[5]。同时,用于提升学生程序设计技能的优良案例已经比较丰富,但用于学生调试技能训练的缺陷案例还很欠缺,因此需要建设优良案例与缺陷案例相结合的双案例资源,探索优良案例与缺陷案例相结合的双案例驱动教学模式,以提升学生的程序设计技能和程序调试技能,为软件行业培养更多更优秀的技术技能型人才[6-7]。
1 双案例资源建设
以培养软件技术人才核心技能为目标的双案例资源的建设与应用,旨在练就学生的一技之长,提升学生的就业竞争力和可持续就业竞争能力。案例资源不是案例的堆砌,每一个案例都应该有较明确的技能达成目标;案例资源也不是凭空杜撰的产物,它应该来源于教学实践和工程实践。在Java 程序设计、C#程序设计课程资源的建设中,力求采用科学的方法进行案例积累,通过信息化手段实现了对案例的有效管理和维护,使案例资源充分发挥在人才培养中的作用。
1.1 资源的积累
在日常教学中教师通过案例进行知识点的讲解能达到较好的教学效果,教师通常采用的是教材上提供的原始案例,这些案例多数以正确优良的案例为主,能引导学生掌握程序设计的方法,编写出正确的代码,但在教学中发现,当学生编程遇到问题时,就变得束手无策。很多程序设计类教材有专门的章节介绍如何调试程序,在教学中教师通常集中在某一阶段来介绍调试方法,通常这部分内容只有2 个学时的教学计划,这种将调试技能独立出来的教学内容组织方式,导致学生即便学习了调试知识,也不能将其灵活运用于编程实践中,学生在编程过程中遇到问题无计可施,甚至失去学习信心。调试应该贯穿在程序设计课程的始终,只有这样才能培养学生分析问题、解决问题的能力,同时也能有效提高学生的学习兴趣。要将调试贯穿于教学全过程,就必须有充足的具有针对性的缺陷案例来支撑教学,因此,首先是要积累案例。在课程资源建设中,可以采用如下方法进行双案例资源的建设。
1.1.1 优良案例的优化
程序设计类课程已经有较丰富的优良案例,但存在部分案例枯燥、抽象等问题,这一类案例难以激发学生的学习兴趣,影响教学效果。教师通过集体备课精选现存的优良案例,对枯燥抽象的案例进行优化改编,同时再增加部分生动形象的案例。
1.1.2 缺陷案例的编制
缺陷案例的编制由课程小组教师自行设计,其依据是教学内容的重难点。集体备课前,教师结合教学内容,编制针对性的缺陷案例;集体备课中,将教师编制的缺陷案例进行筛选归类,所谓归类即将某些案例归类用于课堂教学、某些案例归类用于课后练习。
除教师编制的案例外,在教学中还会发现一些学生常犯的错误,因此,应注重在教学过程中收集学生常见错误并将其补充进缺陷案例资源中,同时鼓励学生将学习过程中遇到的问题及解决办法反馈给任课教师。这些案例来源于学生上机练习和课后作业,代表了多数学生易犯的错误,将此作为案例进行教学既能帮助学生避免错误又能训练学生快速排错。因此,在集体备课时,首先是讨论上一次授课中常见的问题,对缺陷案例进行再次整理和完善。
通过集体备课的前、中、后3 个环节,能较好地完善相应教学内容的案例资源。
在第一轮的缺陷案例建设过程中,积累了大量缺陷案例,在进入第二轮完善和使用过程中,课程组教师明显感觉案例使用和维护不方便,尤其是维护后教师之间的共享效率不够高。因此,案例资源信息化建设需要跟进。
1.2 资源的信息化
在前期的建设中,主要针对教学内容的重难点进行缺陷案例的收集,为便于案例管理更加规范有序,提高案例的共享性,还需要对双案例资源进行信息化建设。开发双案例资源共享平台,供教师和学生教学使用。
1.2.1 系统功能设计
1)系统后台管理。
系统后台管理分为用户管理和资源管理两大模块,功能结构如图1 所示。
(1)用户管理模块。用户管理模块包含四大子模块,具体功能如下:管理员登录模块,具有后台操作权限的人员通过用户名和密码方能登录进入后台管理系统;管理员登录成功可对后台管理员、教师和学生信息进行增、删、改、查操作;教师信息管理模块,通过页面对教师个人基本信息进行录入、修改、删除和查看;学生信息管理模块,对学生个人基本信息进行批量导入或通过页面录入、修改、删除和查看;管理员信息维护模块,通过页面对管理员基本信息进行录入、修改、删除和查看,赋予管理员操作权限。
图1 双案例平台后台功能结构图
(2)资源管理模块。该模块包含基础信息管理子模块和案例信息管理子模块。其中,基础信息管理包括课程管理、章目管理、章节管理、知识点管理、案例类别管理;案例信息管理对案例相关的基础信息和案例具体内容进行审核、录入、修改、删除和查看处理。
2)系统前台管理。前台管理分为3 个模块:登录模块、案例信息模块、互动平台模块。
(1)登录模块:系统入口,通过验证3 类用户(管理员、教师、学生)的用户名和密码判断登录系统资格和各自的权限。
(2)案例信息模块:3 类用户对该模块拥有不同的权限,管理员拥有审核、新增、修改、删除和选用全部权限,教师新增、修改和删除的案例以及学生新增的案例必须通过管理员审核方能生效;教师拥有新增、修改、删除和选用权限;学生拥有案例的新增和使用权。
(3)互动模块:主要用于学生交流学习经验,分享学习成果。通过互动调动学生间比、学、赶、帮、超的学习氛围。
1.2.2 数据库设计
对应于功能需求,数据库设计了管理员信息表、教师信息表、学生信息表、课程信息表、章目信息表、小节信息表、知识点信息表、案例类别表、案例信息表、论坛信息表共10 个数据表,其概念设计图如图2 所示。教师信息表和学生信息表沿用学校教务系统中表定义,二者的课程编号(couresid)与本系统的课程表为一对多的关系,论坛信息表保存各用户发表的讨论信息,图2 中字段省略部分为信息登录者id、登录时间、修改者id、修改时间等常规字段。图2 中带标识字段表示主键。
图2 数据库结构图
1.2.3 系统实现
系统功能实现主要针对数据库各表结合用户权限进行不同类别信息的管理。目前,只有管理员具备更新数据库数据的权限,教师和学生只能查询和使用相关课程的案例及发表论坛的权限,可将教师设置为管理员获得更新数据的权限。
2 双案例驱动教学实践
双案例驱动教学的目标是培养学生掌握正确的程序设计方法,同时训练学生在遇到问题时分析问题、解决问题的能力。要实现这一教学目标,就必须将案例资源切实地贯穿于教学准备、教学设计、教学评价各个环节。
2.1 教学准备
在备课环节,首先,是对上一次教学的反思,其中内容之一是任课教师反馈案例使用情况,结合教学实际,提出增补案例意见并进行商讨;然后,选择下一次课备用的优良案例和缺陷案例,同时也可酌情补充新的案例。各任课教师结合各教学班学情从备用案例中选择案例进行教学设计。
2.2 教学设计
为实现教学单元的教学目标,围绕重难点进行教学设计,与常规教学设计所不同的是采用案例教学法以双案例为驱动推进教学过程。教学采用理论与实践相结合,4 节连续实训室授课的方式进行。教学设计包含:①前期学情反馈,对上一单元学生的课后练习完成情况进行点评,指出学生学习中存在的问题,并进一步讲解;②课程内容引入,抛出应用实例提出问题,问题导向提出本次课程内容,程序设计类课程的整体顺序基本是由简到繁,实现同样的功能,后面的程序设计方法往往变得简洁和有效率,因此,提出问题,让学生用前面所学知识思考解决办法,然后指出其缺点,提出本次课能给出更好的解决方法,以激发学生兴趣;③内容讲解,PPT 演示,讲解基本知识点;④优良案例讲解,结合课程内容,采用优良案例演示编程过程,执行通过;⑤学生实践,教师提出问题,全体学生采用本次课的方法编程实现。此间,学生编程、编译、调试会遇到很多问题,教师分小组指点逐一解决,这一过程,教师往往能收集到一些学生常犯错误,可提炼成缺陷案例入库供今后使用;⑥现场点评,结合学生完成情况,分享大家遇到的问题及解决办法,对于典型问题,教师演示引导全体学生学习解决方法;⑦学生分析解决问题,结合⑤⑥教学情况,从准备的与本课程内容相关的3~5 个缺陷案例中选取1 个供学生分析问题、解决问题;⑧综合练习,最后给出2 个与本课程相关的程序设计题和1 个缺陷修改题,供学生完成。通常在课堂时间学生很难完成3 个题目,作为课后练习完成后,学生提交给教师批阅。
整个课程内容设计的先后顺序也是课堂推进的先后顺序。以上设计流程是双案例驱动教学模式试点要求做到的所有环节。
2.3 教学评价
在传统程序设计类课程的成绩评定中,学生平时成绩基本取决于学生到课情况和编程练习完成情况,几乎没有学生分析问题解决问题的评价分值;期末考试中,改错类题目也最多只占10分的分值,缺陷对应能力分值仅占总成绩分值的5%左右。采用双案例驱动的教学评价,其教学评价相较于传统评价内容和方式有所改变,学生平时成绩构成中30%用于评价学生对缺陷案例的对应能力,期末考试中设30 分分值改错题,即学生缺陷对应能力分值占总成绩30%,与传统评价方式相比,分值占比有了明显提升。
3 双案例驱动教学效果
在2017—2018 年第2 学期的“C#程序设计”课程中,选择了2 个班级进行比较试点,其中一个班级采用常规教学法进行教学,另一班级采用双案例驱动教学法进行教学。若采用常规教学评价方式对两个班学生进行评价,即重点考查学生进行正确程序编写能力,试点班级的成绩比普通班级略低,试点班平均成绩为77.72 分,普通班级平均成绩为77.87 分。其原因在于:试点班级在学习中将主要精力集中在代码分析调试上,而非对常见编程题正确代码的记忆上,因此成绩略低于普通班级。但是,若采用双案例驱动的教学评价,试点班级的成绩明显优于普通班级,试点班平均成绩为80.25 分,普通班级平均成绩为72.10 分。
此外,笔者还将双案例应用于学生竞赛培训中[8],在2019 年“蓝桥杯”参赛选手训练中,首次采用双案例驱动的培训模式,并进行对比实验,挑选60 名学生进行分组(小组成员成绩相当,小组间实力相当):优良案例组(30 人)、双案例组(30 人),对其他参赛学生未进行针对性训练。由于竞赛题目难度较大,对学生分析问题解决问题能力要求较高,采用双案例驱动培训模式训练的学生,成绩远远好于常规优良案例培训模式。双案例组获奖比例为43%,优良案例组获奖比例为30%,其他学生获奖比例为27%。
4 结语
双案例资源的建设及双案例驱动教学模式的探索工作,源于企业对软件人才的能力需求,目前,还处在建设和探索的起步阶段,案例资源的建设还需投入更多的人力物力,双案例驱动教学模式还需要不断改进。后续,笔者将通过信息化手段收集更多的学习数据,通过数据分析来优化案例、选择针对性的教学案例。此外,笔者还将配套开发以夯实学生专业基础知识为目标的题库系统,通过反复练习让学生牢固掌握专业基础知识,从而为社会培养更多专业知识过硬、核心技能突出的技术技能型人才,全面提升学生的就业能力和可持续就业能力。