五步教学法在《java程序设计》课程的教学设计探讨
——以“抽象类”为例

2014-03-28 11:48何国荣
杨凌职业技术学院学报 2014年2期
关键词:子类Java程序设计程序设计

纪 娜, 何国荣

(杨凌职业技术学院信息工程学院, 陕西 杨凌 712100)

0 引 言

目前,《Java程序设计》因为其具有实践和操作结合性很强的特点被杨凌职业技术学院信息工程学院计算机应用技术专业(信息管理方向、软件技术方向)列为核心基础课,其后续课程有:《JSP开发技术》、《J2EE项目开发》、《Android程序设计》等。所以本课程学生的掌握程度将直接影响后续课程的学习。然而,该课程是基于java语言进行讲授的一种面向对象的程序设计语言,面向对象思想是一种在客观事物上进行抽象的思维模式,对很多学生来说接受并掌握该模式存在一定学习难度。因而在学生的学习过程中缺乏主动性,同时存在的畏难情绪又导致本课程学习效果不好,学生不愿学习的恶性循环。

为了提高学生学习的主动性,获得良好的学习效果,作者通过不断探索,结合近几年讲授《java程序设计》的教学实践经验,提出了“五步教学法”的教学模式,从课程讲授过程进行整体的设计分析,教学实践显示该教学方法能取得良好的教学效果。下面以《java抽象类》这一节教学设计为例来说明五步教学法在《java程序设计》课程中的教学过程。

1 五步教学法的指导思想和过程

教学设计是为了达到最优化的教学效果采用系统化的方法解决教学问题的过程和策略[1]。五步教学法则是在案例教学法的基础之上根据课程教授和学生的接受程度进行提炼总结得出的一种教学方法,该教学法秉承“以学生为主体”的教育理念,体现《Java程序设计》课程的学习重点:解决问题,结合“模块化、任务驱动”的教学观念,将学生的技能培养贯彻在教学的过程中,以学生的需求为教学起点,倡导学生主动参与、勇于探究的一种适用于教学《java程序设计》课程的新型教学方法[2]。该方法的具体环节有:“引入任务→分析任务→完成任务→总结→新的任务”的五个步骤进行教学。下面以《抽象类》这一节教学设计为例来说明《java程序设计》课程的教学过程。

1.1 课程教学设计的依据和思路

《Java程序设计》在授课中重点讲解的是面向对象程序设计中的诸多概念,例如封装、继承、多态、抽象类和接口等。在诸多概念中,抽象类作为一种程序设计模式很难在教学过程中被学生所理解。为了让学生理解、掌握并学会用该种模式设计程序,就必须设计好课堂教学过程,创造学生主动参与、探究、实践的学习情境,使得学生处于动态的学习活动中。

在设计本堂课的教学过程时,首先根据“满足Java人才市场需求、符合高职学生学习特点、提高学生职业技能”为课程讲授的主要目的,综合使用“启发式教学法”、“任务式教学法”等多种教学方法,重点培养学生的程序开发创造能力,强调“教学做一体化”,在教中做、在做中学、在学中练。在本文中,“Java中的抽象类”授课过程按照“任务驱动、实例讲解”的模式进行,采用“引入任务→分析任务→完成任务→总结→新的任务”的五个步骤进行教学。任务的选取原则是真实、有趣、容易入手、易于教学。

本次课的授课过程设计,是以一个实际的任务为例展开教学,并将知识点融入项目的完成过程。通过“典型任务”引入问题→教师引导学生分析问题→引入Java有关的的语法解决问题→教师总结学习要点→布置新的任务→学生“模仿编程”的教学组织方式,培养学生的专业技能。

1.2 学习背景

抽象类体现了面向对象设计中数据抽象的思想,是面向对象程序设计思想的精髓之一。针对Java程序设计中学生对抽象类和子类的概念难以理解、不会使用的问题,课程设计时通过引入容易入手的求解三角形和矩形面积的案例讲解抽象类和子类的概念、特点和使用方法,帮助学生能够学会并真正掌握Java中抽象类和子类的特性,掌握抽象类的设计思想、学会使用抽象类。

1.3 学习主体分析

《java程序设计》课程的学习对象是信息管理专业2011级学生,已经学习过抽象类相关概念。通过前期学习,学生对于Java语言已经有所了解,可以编写简单的Java程序,但是对他们而言抽象类的理解和掌握是一个难点,因此有必要通过编程案例分析讲解Java中的抽象类,以激发学生的好奇心、提高学生的学习兴趣、提升学习效果,帮助学生掌握抽象类的设计思想。

1.4 课程教学设计方案分析

课程教学进行时,分为五个阶段展开:分别对应了五步教学法的组织过程。在课堂教学设计环节中,教师要熟悉教学内容单元,能较好的切分授课知识内容、精心设计任务。通过引导学生对任务进行认真的研究和深入的分析,提出解决问题的办法。

(1)引入任务。选择具有代表性的典型任务(案例)引入问题, 引起学生的注意、引发思考。这一阶段是教与学的起点。例如,本次课程引入求解三角形和矩形面积的Java编程案例,引发学生的主动思考——怎样用抽象类来设计求解程序?

①工作任务。进行一个图形编辑软件的开发,其中一项任务是计算各种图形的面积,例如在一个程序中计算三角形、矩形这样一些有具体概念,又是不同的形状的面积。

②任务要求。a.设计一个抽象类shape; b.设计矩形、三角形具体的子类; c.在抽象类中求解子类面积; d.编写一个测试类,在主方法中生成2个子类对象,用多态的方式调用area方法输出他们的面积。

③引导学生思考。a.一个抽象类shape的设计格式; b.矩形、三角形具体的子类的表现形式; c.子类面积如何求解; d.编写一个测试类,在主方法中生成2个子类对象。

(2)分析任务。本环节主要是以任务为驱动、实践应用为目标,帮助学生深刻理解抽象类的定义。

①分析过程。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,所以形状就是一个抽象概念。

由于形状这个概念在问题领域并不是直接存在的,那么要从具体的形状入手分析:矩形和三角形都具有边长、并且都要求面积,可以根据抽象类的语法格式进行分析设计:

②教师提问。将分析过程进行升华,将图例改编成计算机语言,用UML图表示。

③引导学生。根据类的表示方式,编写出矩形和三角形的属性和方法的UML图。

④设计思路。将这些分析过程总结归纳之后,强化了知识点和技能点。例如,在本次课程教授中,通过任务的分析引入抽象类和子类的概念和使用方法。学生通过一个具体的任务学到了知识点,但是还没有转化为自己的技能。

(3)完成任务。在这个环节中,主要是以分析为基础,按照Java语法格式完成任务。此环节帮助学生学会设计抽象类和其子类。

①完成过程1。Shape类由于覆盖所有图形的共性,定义宽泛,它的求面积方法area()无法具体实现,声明为抽象方法。类也就定义为抽象类。在Java语法中,抽象类的实现是通过子类继承实现的。要实现一个抽象类,所有继承抽象类Shape的子类都必须具体实现抽象方法area()。故使用具体形状类对抽象类进行继承,实现抽象类。

②完成过程2。测试类的编写,子类的继承方式使得抽象类中的抽象部分得到具体的体现。根据任务要求,编写测试类完成对具体形状对象的面积进行求解。在测试类中,根据类和对象的定义方式分别创建两个不同形状的对象,并赋值进行面积的求解。

public class abstractTest

{

public static void main(String args[])

{

Rectangle r1 = new Rectangle(8,7); // 创建矩形类对象

System.out.println("矩形面积为"+r1.area()); //输出矩形类面积

Triangle t1 = new Triangle(3,4); // 创建三角形类对象

System.out.println("三角形面积为"+t1.area()); //输出三角形类面积

}

}

③得出结论。最后在主方法中调用所有子类对象的area()方法,输出各个子类对象的面积。

(4)总结。这个阶段主要是对分析的过程进行总结,完成程序功能,最后进行学习总结,帮助学生归纳整理本节课的知识点和技能点,加深记忆。

①引导回顾。本节学习者所用到的知识和技能,强化理论知识的学习。

a.抽象类是只给出抽象结构,不给出每个成员方法的完整实现的类; b.抽象类的特点: ①不能直接被实例化; ②抽象类需要继承; ③抽象类中可以没有抽象方法或某个方法不是抽象方法,有抽象方法的类一定是抽象类。c. 3抽象类用来模式设计。

(5)新的任务。提出新的问题,为帮助学生将知识能够快速转化为技能,给学生布置了课后作业。例如:本次课程中的作业是应用本节课所讲关于抽象类和子类的Java编程方法,创建一个子类为圆类,该类的对象也可以通过继承抽象类计算出面积。

①教师提问。请在本程序的基础上,新增一个子类为圆形类。要求在测试类的主方法中生成3个子类对象,用多态的方式调用area方法分别输出矩形、三角形、圆形的面积。

②设计思路。课后作业是综合考虑了高职学生的学习能力和承受能力而设计的,作业是在本课程任务的基础上进行更进一步的功能完善。通常情况下,学生都能够认真完成。

1.5 课堂教学设计方案的具体实施

教学环节(时间分配)(min)教学内容教学方法学生活动教学手段引入任务(5)1.提出任务: 设计一个抽象类shape、设计矩形、三角形子类,在抽象类中求解子类的面积。2.验证结果: 编写一个测试类,验证设计。3.知识点回顾: 回顾抽象类概念和抽象类的特点任务式启发式思考问题回答问题PPT演示分析任务(7)1.分析任务要求: 为完成任务要求,需要设计图形类模型、设计矩形类模型、三角形类模型。2.提出问题: 在一个父类中是否可以用一个方法来代表不同形状的面积呢?任务式启发式观看演示思考如何设计演示模型PPT多媒体演示分析过程完成任务(5)1.按照分析完成任务,实现基本功能: 显示抽象图形类的程序实现图例、显示矩形类的程序实现图例、显示三角形类的程序实现图例、显示测试类的程序实现。2.验证设计: 编写了一个测试类 abstractTest ,验证设计结果。启发式思考如何根据分析过程,设计程序完成任务PPT演示实例实现过程,验证设计结果总结(2)1.知识点小结: 再次重申抽象方法和抽象类的概念及特性。2.编程思想小结: 从分析任务入手,找到完成任务的方法,最后验证这个方法的正确性,从这个过程中学到新的知识和技能。启发式回顾本节课内容,重温知识要点PPT演示新的任务(1)布置作业:请在本程序的基础上,新增一个子类为圆形类。要求在测试类的主方法中生成3个子类对象,用多态的方式调用area方法分别输出矩形、三角形、圆形的面积。

2 课堂教学效果总结

Java程序设计中的抽象类是一个教学难点,初学者在这里容易犯错。因此,针对这个学习中的难点,采用任务教学法,通过对真实任务的解析,将抽象的问题形象化,把难理解的知识点进行分解,分散在执行任务的简单步骤中,帮助学生较好的理解和掌握抽象类的特点,最终达到能够独立设计使用Java数据抽象的目的。

通过课堂提问这样的师生教学互动环节,可以发现学生的知识点掌握情况是比较理想的。学生对于课后布置的作业,同学们均可以自主完成新的任务。这种教学方式比较适宜概念性教学的开展。可以提高学生的学习兴趣。

参考文献:

[1] 何克抗.教学系统设计[M].北京:北京师范大学出版社,2002.

[2] 程德胜.基于“学习过程”的教学设计之探讨[J].江苏教育研究,2008,(12).

[3] 许媛.高职院校Java程序设计课程的教学设计之探讨[J].陕西教育(高教),2012,(3).

[4] 杜建荣.“教学设计”中的教学设计——“七步教学法”应用[J].河西学院学报,2011,(5).

[5] 纪 娜. Java中抽象类与接口的比较[J].杨凌职业技术学院学报,2008,(3).

[6] 纪 娜. 项目教学法在高职JAVA编程与实践课程中的应用[J].杨凌职业技术学院学报,2013,(9).

猜你喜欢
子类Java程序设计程序设计
卷入Hohlov算子的某解析双单叶函数子类的系数估计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
Java类的继承
面向对象的多版本传感器观测服务模式匹配方法
《Java程序设计》课程网站的设计与实现
Java程序设计基础课实践教学中的分层教学模式研究
高职高专院校C语言程序设计教学改革探索
基于实训项目的Java程序设计实验教学模式改革与实践
基于工程思维的Java程序设计课程教学研究