兴趣驱动的Java程序设计课程教学改革研究

2019-11-30 04:55梦,谢
计算机教育 2019年11期
关键词:情景案例教学方式

彭 梦,谢 雅

(湖南工程学院 计算机与通信学院,湖南 湘潭 411104)

1 Java 程序设计课程教学问题分析

作为面向对象的程序设计语言,Java程序设计教学具有理论抽象难懂、知识点多、实践性较强等教学特点[1-2]。针对这些教学特点,国内外各大高校开展了大量的相关研究,从理论上提出了一些解决方案,如基于项目的教学方法、基于案例教学方法、结合在线资源的教学方法、互动教学方法等[3-5]。但是这些Java教学方法和措施都通过加大资源和时间投入来提高教学质量,由于受课时压缩、实验条件、学校考评标准、教师自身素质等诸多因素的影响,学生的学习兴趣得不到有效培养,教学效果受到严重的影响。具体表现在以下几方面。

1)课堂教学没有按照学生的兴趣发展来灵活运用教学方式,抽象理论没有结合学生的环境背景产生共鸣,缺乏趣味性。

首先,Java程序设计概念多且较抽象,纯面向对象编程理论和编程思想非常难懂,比如多态的意义和应用、接口的意义和应用、泛型的意义和应用等,这对大多数学生来说是一种新的体验和挑战。然而,传统Java课程的教学方式大多采用灌输式的教学方法进行教授,忽略了学生的个性发展和综合素质的培养,难以培养学生的实践能力与创新能力[6-7]。

其次,在 Java程序设计教学过程中,课堂教学大多是按教材的编排章节、讲解理论知识,理论教学与学生的生活情景脱节,使课堂教学抽象、枯燥。因此,学生在学习中逐渐丧失兴趣,学生的知识运用能力培养的效果不甚理想[8-9]。

2)实践教学的环境配置不合理,实践教学的内容脱离应用场景,激发不了学生学习 Java的兴趣。

传统Java实践教学环境的配置层次度不够,不同类型的实践教学环境呈现扁平化布局,不能形成一种逐次递进的教学环境运用机制。在这种缺乏层次导向的教学环境体系中,学生的实践培养容易出现阶段性断层,严重阻碍了学习兴趣发展的连续性。

其次,目前很多高校Java语言实践教学缺乏计算思维能力的培养,实验内容一般是为了验证书本理论知识的可行性而设计,脱离了实际的应用背景,激发不了学生的学习兴趣。这种缺乏应用导向的实践教学不利于学生综合素质的培养,导致学生根本无法理解该门课程的精神意义关键所在,学生的动手与动脑相结合的实践运用能力得不到有效的培养。

2 兴趣驱动的Java 程序设计课程教学改革措施

2.1 课堂教学改进

课堂教学是课程教学的基础,是学习知识的源头。从课堂教学内容和课堂教学方式出发,培养学生对Java课程知识学习的兴趣,能将对课程知识学习的兴趣转化为动力,应采取基于兴趣驱动的改进方法:基于情景感性认知的课堂教学内容改进、基于个性分类的课堂教学方式改进。

2.1.1 基于情景感性认知的课堂教学内容改进

采用基于情景感性认知的教学,在课堂教学中将知识点涉及的实例整合成一个情景体系,通过具体情景对抽象的知识点进行演绎,从感性层面上进行关联,分别使用夸张趣味的情景实例、学生生活情景实例、基于情景的教学资源3种方式,提高学生对知识的感性认识,从而升华到理性认识,见图1。

图1 基于情景感性认知的教学改进方案流程图

首先,采用夸张和趣味情景的类比实例来激励学生的感性认知,在短时间内加强学生对抽象理论的感性认识,提高学生对知识的敏感度。例如讲解“父类引用指向子类对象”这一抽象概念时,为了激发学生的兴趣,引入平时学生上厕所时只顾着带报纸而忘记带卫生纸这么一个喜剧性的情景案例。让学生发挥想象力思考怎么解决这一问题,引导学生将实际问题中“报纸替代卫生纸”的现象与理论知识中“父类引用指向子类对象”的概念之间建立联系。同时指出这种场景下报纸失去了原本的阅读功能,因为子类“报纸”被当成了父类“纸张”来使用,只具备纸张的属性和功能。同理,反过来引入普通纸张无法代替钞票的功能去购物这一极端夸张的情景案例,通过阐述父类“纸张”不具备子类“钞票”的购物属性和功能,解释“子类引用不能指向父类对象”这一抽象概念的深层理论原因。

其次,由于讲授者和学习者在知识储备和生活阅历上存在较多差异,讲授者所举的类比实例有时无法在学习者中引起共鸣。因此,应通过接近学生生活情景下的类比实例,加强学生对知识的直观性和感性认识,提高学习的动力和热情。例如,在开始讲授接口的概念时引入“USB接口设计”案例。U盘、打印机、移动硬盘都是USB设备,不同的USB设备有不同的驱动程序,但都继承了同一个USB接口标准,并实现了USB接口的功能。讲授完Java接口编写法则后,学生会自然而然地将接口的设计原理运用到实际的问题中,编写接口继承代码实现各种USB驱动程序的设计。因此,通过在学生头脑里建立一个与自身生活情景相关的“知识—实例”联想框架体系,将大大提高学生的知识运用和动手能力。

最后,基于情景制作趣味小视频和动画,将知识点和多种教学媒体资源相结合,通过文字、语音和动画等多种媒体交互刺激的形式,将大量的知识点生动感性地呈现给学生。例如,在讲授数据流和处理流的区别时,利用动画演示自来水通过普通水管和套接在水管上的过滤器时产生的不同效果,使学生将上述情况归结为数据流和处理流两种抽象类的使用原理和使用规则。教学资源对其他教学环节起到了支撑作用,因此对教学资源的优化运用和整合,将大大提高Java教学质量和效果。

2.1.2 基于个性分类的课堂教学方式改进

学生的个性发展各有差异,导致其对教学方式喜好不同,表现为对某一种教学方式接受程度高、兴趣较强。依据学生的人才类型,学生的个性和兴趣会呈现类内聚合、类间发散的特点,因此应按照学生的兴趣和个性发展,灵活分类运用教学方式。对不同类型的人才培养合理运用不同教学方式,将大大提高教学效率和单位时间的学习产出。

基于个性分类的教学方式改进措施,根据人才的个性类型适当调整各种教学方式在人才培养过程中所占的比例权重,既兼顾传统的专业理论知识教学,又能满足人才分类的个性化教学的需要。例如,对于学术研究型人才,重在培养科学创新,应该增加问题探索型教学方式的比例,通过设置一些细节难点问题,引导学生自主进行探索;对于工程型技术人才,重在培养综合能力和运用实践能力,应该增加项目驱动型教学方式的比例,通过将项目和知识点结合起来进行讲授,引导学生将课本知识应用到实际项目;对于应用型技术人才,重在强调新技术和新成果的推广,应该增加实践操作型教学方式的比例,通过介绍前沿发展的技术和问题,引导学生扩充自己的知识视角。

2.2 实践教学改进

实践教学是培养知识运用能力和创新能力的主要平台,从实践教学的教学模式和体系配置出发,培养学生对Java课程知识运用和创新的兴趣,将对课程知识运用的兴趣转化为动力,并采取相应的改进方法:小步快跑的实践教学模式改进和进阶式教学环境的实践教学体系改进。

2.2.1 小步快跑的实践教学模式改进

案例教学模式是实践教学最为有效的教学模式之一,但传统的案例教学中案例的安排不合理,往往不是案例设计得太难使学生无从下手,就是案例设计得太容易使学生的分析解决问题的能力没有得到应有的锻炼和开发,从而失去学习兴趣。

现有研究表明,学生的学习是一个循序渐进的过程,从知识概念的理解到知识运用和创新是一个知识能力从低级形态向高级形态的漫长演变,书本上的理论知识需要多次强化巩固才会内化成学生自己的知识体系,而不是一蹴而就的过程。因此,针对案例教学的不足,采取小步快跑式的实践教学培养模式,通过多频率、低强度地重复运用Java知识点去分析解决问题,在学生头脑里建立一个兼具深度和广度的“知识—案例”联想框架体系,使学生克服对运用Java编程解决实际复杂问题的恐惧。

该模式不是让学生从头到尾解决一个复杂的案例,而是首先通过教师设计多个案例的初级解决方案引导学生思考问题,然后学生独立进行二次分析完成剩余程序,从而实现能力提升,逐步提高学生对多个知识点的综合运用能力,见图2。每个案例学习不仅培养了学生对新知识点的运用能力,更重要的是巩固强化了原有知识运用的广度和深度,通过多次“小步快跑”获取稳定牢固的长足进步。学生在迭代解决案例的过程中通过一点点进步的积累,逐步获得运用越来越多的知识解决复杂问题的个人成就感,大大提高了学生对专业知识学习的兴趣。

图2 小步快跑的实践教学模式流程图

小步快跑式实践教学培养模式的具体实施步骤分为3步。首先,按照内容将每个案例分为学习模块和强化模块两个部分:学习模块涉及当前实验主题对应的知识点,是本次实验需要重点掌握的新知识;强化模块涉及其他章节的知识点,是以前案例中需要巩固强化的已有知识。学习模块通过抛出问题,引入新的知识点概念,主要锻炼学生对知识概念的理解和基本运用。强化模块通过对已有知识点的不断刷题进行强化训练,提高知识运用能力的广度和深度。

其次,教师实现初级解决方案设计,负责完成每个案例中学习模块的70%代码和强化模块的80%代码,其中强化模块的空缺代码主要依据学生以往实验中出现的错误,以查漏补缺的形式进行设计。同时,教师将引导学生掌握问题的解决思路,帮助学生搭建程序的基本框架。

最后,学生根据基本程序框架完成主要业务逻辑处理流程的程序编写,在二次程序开发时独立完成学习模块30%剩余工作量和强化模块代码20%剩余工作量。在学习完案例后,通过案例总结将案例中涉及的知识点进行归纳、串联和体系化,总结各种技术的特点、基本原理、基本开发步骤、相关技术要点。

因此,相比让学生从零开始解决问题,小步快跑式的实践教学模式花费同样的时间,让学生接触到4~5倍的相关案例,大大提高了学生知识运用能力的广度和深度,增强了学生举一反三、触类旁通的能力。例如,在实验主题为“多线程”的案例设计中,使用“太阳系星体运行演示”案例。分析该案例,发现需要解决以下几个问题:如何定义一个抽象的天体、如何定义地球和月球、如何模拟多个星体各自的运行轨道等。对应到课程中的知识点分别是抽象类、类的继承、多线程,其中属于学习模块的有多线程相关代码,属于强化模块的有抽象类、类的继承相关代码,通过这个案例学生既重点掌握了“多线程”新知识点,又巩固了“抽象类”“类的继承”等已有的知识点。

2.2.2 进阶式教学环境的实践教学体系改进

依据学生对专业知识体系的掌握程度,将Java语言的学习进度分为初级、中级、高级3个阶段,在每个阶段学生的关注点会相应发生变化。学习阶段等级越高,学生越有运用专业知识解决复杂工程问题的动力和积极性,相应地,越是需要平台更高、资源更丰富的教学环境为其服务。通过这种层次的教学环境体系引导学习,学生的学习进度按照逐次递进的方式良性发展。进阶式的教学环境体系既能为理论知识转化为实践知识提供阶梯型的接口,又可以为学生走向企业、走向职场提供了循序渐进的模拟演练平台。

以学校计算机与通信学院的进阶式教学环境建设为例,见图3,首先在大一阶段,全面开展新生Java语言实验日常训练活动,每天新生都要强制进入实验室进行两个课时的编程设计,极大地提高了学生的动手能力;然后在大二阶段,要求所有学生按照自己的兴趣和特长加入一个Java主题创新实验室或竞赛兴趣小组,以项目和竞赛的感性形式直接促进大学生的专业兴趣,帮助大学新生构建合理的专业知识结构框架;最后在大四阶段,要求参加卓越计划的所有学生进入相应的校企合作项目小组,去企业学习和锻炼,提前进行企业需求的对接,培养了学生的全面综合素质能力和解决复杂工程问题的能力。

图3 基于学习进度的层次教学环境体系结构

3 教学改进前后的效果对比和分析

3.1 调查对象和内容

为了验证教学改进方法的效果,笔者在湖南工程学院计算机与通信学院采集了大量的学生信息进行抽样调查。本次调查统计了计算机科学与技术专业学生信息,总共样本数为210份,有效问卷200,对比这些学生在传统教学和兴趣导向教学改进措施后的问卷调查结果。

3.2 调查结果和分析

问卷调查结果表明本文提出的兴趣导向教学改进措施提高了学生的Java学习兴趣,提高了Java课程教学的质量和效率,见表1和表2。

表1 学习兴趣的问卷调查 %

表2 学习时间的问卷调查 %

由表1和表2可知,基于学习兴趣驱动的Java教学改进提高了学生的学习兴趣,增强了学生的学习主动性和积极性,激发了学生的潜能,将学术和实践紧密结合,提高了学生对抽象专业理论的感性认识,提高了学生的综合素质能力,提升了其解决复杂工程问题的积极性。学生与学生之间也相互讨论,相互指导,学习气氛良好。

4 结语

近3年,笔者已经将兴趣驱动的思路和措施融入Java教学活动中,锻炼和提高了学生的学习质量和学习效率。根据院系近三年参加创新项目、程序竞赛和毕业就业情况,湖南省大学生研究性学习和创新性实验计划获批10项,其中在2017和2018年大学生创新创业项目中获国家级项目2项;2015年到2018年湖南省程序设计大赛中,学生共获湖南省赛区一等奖 1项,三等奖 6 项;毕业生从事与Java相关软件开发工作,工资水平比其他计算机类学生高出20%左右。

虽然从传统教学迁移到基于兴趣驱动的教学,教师需要付出更多的努力,但是从目前的教学效果看,基于兴趣驱动的教学将学生的兴趣特点转换为学习优势,实现专业发展和个性发展的协调进步,对于促进知识运用能力和创新能力都有很大的帮助,提高了学生综合素质能力和解决复杂工程问题的积极性。

猜你喜欢
情景案例教学方式
情景交际
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
优化教学方式 提升初中语文教学质量
高校钢琴教学方式拓展的思考与实践
灵活采用教学方式 提升语文教学效率
以“问题化教学”为导向 有效转变物理教学方式
石化企业情景构建的应用
楼梯间 要小心