文/庞光垚
递进式单案例教学法在Java课程中的应用
文/庞光垚
针对当前Java课程关于案例教学过程中存在的问题,结合Java课程的学习任务以及特点,本文提出了递进式单案例教学法。该方法根据教学大纲知识点逐步深入的特点,选取学生容易理解的一个案例,对案例进行任务分解。任务分解不以功能拓展为主线,而是以模拟企业级开发项目为目标。使用新的知识点不断对功能进行重构、优化,从而达到让学生熟练掌握编程技术,具备企业级开发的分析思维以及掌握开发方法的目的。
Java技术;教学方法;案例教学法;递进式教学法;教学改革
1.引言
随着Internet的发展得以迅速流行,并占据了显著地位,Java作为一种面向对象的程序设计语言,因为其具有通用性、高效性、平台移植性和安全性等特点,得到了除微软外的所有主要软件提供商的认可[1]。随着移动互联网,尤其是Android阵营的急速发展,无论企业或者个人开发者都选择了Java作为核心技术来构建他们的应用系统,由此奠定了Java作为主流开发技术的地位。
因此,目前国内许多高校对学生的技术培养主要是以Java、Jsp、SSH架构、安卓等Java体系为主,Java程序设计课程效果的好坏直接影响了后续技术学习的优劣。如何更好地发挥Java课程实践性强的特点,使学生具备很强的动手实践能力、掌握Java程序开发技巧、积累项目开发经验从而胜任企业需要是当前亟待研究解决的问题[2]。
Java教学一直以来都采用理论加上机课的方式进行授课,所使用的案例多数为教材中零散的小例子。而这些例子存在几个方面的不足:一是例子多以算法为主,学生花在算法的精力远大于学习编程技术的精力;二是例子过于零散,课程学习完之后,学生仍然无法将各个知识点融合运用,对面企业级开发更加无从下手;三是即使使用企业级案例,仍然过于零散,无法贯穿,更无法体现知识点递进式演进的特点。外加学生缺乏项目实训,往往会出现理论知识和实践脱节的情况,无法形成工程化的开发思想,开发实际项目的能力和经验不足[3]。
针对上述问题,笔者提出了递进式单案例教学法,并应用在了Java课程教学过程中。实践证明,这种方法能够有效地解决上述问题。
2.递进式单案例教学法
项目教学法源自美国哈佛大学的课堂教学模式,以建构主义的学习理论为依据,其4大要素是情境、协助、会话和意义建构[4]。该方法中教师的教学重点在于为学生提供真实的情境,在情境中展示案例,激发学生学习兴趣,促使学生充分理解问题的复杂多样性,最终解决问题以达到教学的要求。
递进式单案例教学指教师选取一个学生能理解的案例,并将其分解为多个子任务。每个子任务根据教学大纲逐步引入新的知识点,随着知识点学习的不断深入,则相应地对子任务对演进或者重构,通过该方法,学生能够循序渐进地掌握所有知识点,同时理解项目演进的流程以及功能实现的思路以及方法。
根据心理学家布鲁纳的学习动机理论,教学过程要重视学生的学习动机,而动机分为内在动机和外在动机,内在动机比外在动机更重要[5]。而笔者认为,最能调动学生积极性的做法就是让学生因为成功而产生成就感。按以往初学学生反映,理解的最大难点在于知识点掌握之后如何开发出带界面的软件系统。而递进式单案例教学法就是通过案例实现的递进演示,先让学生实现控制台操作的简单系统,再慢慢引导界面实现。以此类推,再按该思路实现数据存储等的功能,最终在课程学习完成之后,能够掌握知识点,理解软件实现的思路和方法,最终做出让学生自豪的完整软件系统。
3.递进式单案例教学法的实施
本门课程的教学对象是大二下学期的学生,已经以Java语言学习过面向对象课程,理解Java的基本语法。但是编程能力比较弱,不懂如何运用Java知识,不理解系统实现的原理和方法。针对这些特点,案例选择了学生经常接触的ATM取款机作为原型,并且始终以该案例贯穿整个Java教学过程。在课堂上用代码跟学生进行互动,让学生以紧凑的节奏跟随老师一起推进实现案例。
3.1递进式单案例的设计
为了便于理解,ATM案例选择登录、查询金额、存款、取款以及转账等常规功能。表1为笔者Java课程教学中AMT案例划分的子任务列表。任务1以最低要求实现所有功能;任务2以面向对象的思维进行代码重构,灌输面向对象思维;任务3以代码的方式,让学生直观地理解接口、继承;任务4结合控制台的输入输出以及常用的组件,构建出具备完善功能的ATM系统;任务5引导学生把系统控制台处理的方式修改为界面操作方式;任务6首次提出存储的概念,让学生理解永久性存储及其技术实现;任务7则以企业级开发的思维把数据持久化到数据库;任务8则以线程的方式让学生体会到多用户登录以及单点登录高级应用;任务9、10引导学生实现CS结构的客户端以及服务器端;而任务11则对系统代码进行了优化,让学生理解系统的复杂多变性。
表1 ATM案例子任务划分
3.2案例的教学过程
ATM案例虽然功能不多,但是涉及的内容很多。而既要让学生掌握知识点,锻炼出较强的编程能力,又要让学生理解系统的开发过程和学习到系统的开发思路及开发技术。为达到这个要求,我把整个Java教学过程分为3个阶段:
3.2.1第一个阶段,主要培养代码规范以及编程能力。该阶段要求教师把知识点讲透彻,在演示代码实现的时候简单详细。最主要的是让学生动起来,所以布置的课程练习以及作业,以填空的方式,先填代码段,再填写方法,最后填写整个类。
3.2.2第二个阶段,主要引导学生理解功能分解、设计分析以及解决问题的能力。以界面开发为例,前期先灌输给学生面向对象、分层等的设计思想,接着对程序结构进行分层,把业务和视图相分离。最后在业务逻辑不变的情况之下,把控制台的输入输出转换为界面操作。让学生理解面向对象的设计方法,以及程序实现的多样性。
3.2.3教师在课堂上当场编写服务器端程序以及客户端程序。然后逐步对学生提要求,能够把老师下发的客户端修改配置文件登录成功则达到了最低标准,能够调用接口进行存钱等功能则为优秀,能够模仿老师的写法完成服务器端则加分。该阶段让学生理解难度激发挑战心理,而以极低的要求则培养了学生的自信心,从而达到了由内而外的学习提升。
通过这由浅到深的三个阶段,加上课程设计的功能拓展以及系统优化,可以让学生建立起健全的Java学习体系。
4.结论
在对12级约150个学生进行教学改革实验的过程中,课堂气氛非常活跃,基本上所有的学生都在努力编写代码实现功能,能够跟随授课教师步骤实现功能的达80%以上,其中每次都有大概25%的学生能够完成授课教师布置的拓展功能,课程设计的答辩场面也非常活跃,学生沉浸在自己的实现成果当中。由此可见,递进式单案例教学法,能够激活学生的兴趣以及自主性,从而达到熟练掌握Java相关知识点、具备较高编程能力、有较强的系统分析能力和理解能力的要求。最终Java课程的教学效果得到了显著提高。
[1]施霞萍,张欢欢,王瑾德,等.Java程序设计教程[M].北京:机械工业出版社,2006:2-3.
[2]张业男.利用贯穿案例进行JAVA教学的探索[J].农业网络信息,2013(2):118-119.
[3]任平红,陈矗等.贯穿案例教学法在JavaWeb程序设计教学中的应用[J].计算机教育,2014(14):67-69.
[4]张哲,陈桂生.在Java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007(18):23-25.
[5]陈琦,刘儒德.当代教育心理学[M].北京:北京师范大学出版社,2007:210-230.
庞光垚(1986.03-),男,汉族,广西浦北县,硕士,助理工程师,主要研究方向:软件工程。
G
A
2095-9214(2015)03-0083-02
梧州学院信息与电子工程学院)