您好, 访客   登录/注册

BOPPPS模型在Java程序设计课程中的应用

来源:用户上传      作者:

  摘要:为提高Java程序设计课程教学质量,促进自主学习、培养创新型高技能应用人才,针对Java程序设计课程教学目标及存在的问题,依据BOPPPS模型理论,分析该模型在Java程序设计中的运用。对BOPPPS模型每个理论以1~2个实例作为支撑,分析并改善运用效果,将BOPPPS理论模型恰当融入Java程序设计课程实际教学中。BOPPPS模型对改善Java程序设计课程教学效果、提高学习效率、培养创新应用型人才起到了积极作用。
  关键词:Java程序设计;教学目标;自主学习;BOPPPS模型
  DOI:10. 11907/rjdk. 181194 开放科学(资源服务)标识码(OSID):
  中图分类号:G433 文献标识码:A 文章编号:1672-7800(2019)008-0217-03
  BOPPPS Model Application in Java Program Design Course
  CHEN Yi
  (School of Science, Hubei University of Technology, Wuhan 430068, China)
  Abstract:In order to improve the quality of Java programming teaching, promote independent learning, and cultivate innovative high-skilled application talents, according to the teaching objectives and existing problems of Java programming course, the application of the BOPPPS model in Java programming is analyzed according to the model theory. For each theory of BOPPPS model, with 1 to 2 examples as the support, we analyze and improve the application effect, and integrate the BOPPPS theoretical model into the actual teaching of Java programming course. The BOPPPS model plays an active role in improving the teaching effect of the Java programming course, enhancing the learning efficiency, and cultivating innovative applied talents.
  Key Words:Java programme design;teaching goal;autonomous learning;BOPPPS model
  基金项目:湖北省教育厅哲学社会科学研究项目(19D031);湖北工业大学校级教学研究项目(2018029)
  作者简介:陈益(1977-),女,硕士,湖北工业大学理学院副教授,研究方向为计算机软件。
  0 引言
  BOPPPS模型是目前高校课堂教学工具研究热点,其核心是强调教学活动以学生为主体,将学习分为6个阶段,在许多高校教学中该模型在自学能力培养、教学效果提升方面已得到了较好验证。有教师用BOPPPS模型指导Java程序设计的教学活动,但由于学生基礎水平、英语能力、学习主动性及对BOPPPS模型理解和运用的偏颇等原因,实际运用效果不太理想。不同课程与该模型融合存在差异,Java程序设计是面向对象程序设计的一门重要课程,以培养学生自主学习、思维、实践和提升编程能力为最终目的。本文借鉴BOPPPS模型指导Java程序设计的教学活动,实施契点是以1~2个生活案例自然解析BOPPPS理论在Java程序设计中的运用,使教学逐步深入,达到举一反三的效果,将BOPPPS思想恰当融入Java程序设计课程教学。
  1 Java课程教学目标、要求与性质
  目前,Java程序设计教学活动以案例教学为主,采用理论教学与上机指导相结合的教学模式。选用由清华大学出版、耿祥义等教师编著的《Java 2实用教程》(第5版),上机指导书为《Java 2实用教程(第5版)实验指导与习题解答》,这套教材可为理论教学提供强有力的实践支撑[1]。按照课堂使用教材章节的顺序,列举Java程序设计课程对学生能力培养3个方面的目标和要求[2]。
  (1)课程必备素质。 掌握JDK的安装,能熟练地在各种操作系统上配置Java运行环境;熟练掌握JDK帮助文档的使用方法,能迅速获取定义类的属性、方法等信息;能写出符合Java语言语法规范的源程序。
  (2)基础知识。 建立面向对象程序的设计思想,掌握类声明、封装意义、对象创建方法等;掌握继承和多态的使用;掌握包、接口、抽象类的用法;清楚内部类和匿名类的关联,掌握匿名类简化程序的方式;正确处理各种异常;掌握常用类的用法;进行简单、实用的图形用户界面GUI设计。
  (3)核心知识。能对Java中各种流类文件进行正确处理;能对数据库中各种数据进行操作;正确利用多线程机制;熟悉TCP/IP协议原理,能写网络应用程序;了解图形、图像与音频原理;学会利用工具生成应用程序并发布为可执行文件;对小型应用系统的开发流程有比较清楚的了解和认识。
  Java程序设计虽有固定语法,但并不是一门理论课,而是一门实践性课程,强调学生多动手操作、练习,学生必须自己动手练习才能掌握课程精髓,检验和衡量学习效果的最好方式是让学生亲自动手完成作品、展现成果[3]。根据Java程序设计课程的教学目标、要求与性质,教师要关注信息技术的发展,积极调整、完善和补充新的教学内容,紧跟企业应用步伐,使学生能及时获得最新技术知识[4]。   2 BOPPPS模型
  针对Java程序设计课程现状,借助BOPPPS模型组织课堂教学,使学生既掌握Java语言固定语法,又重视实践动手能力,努力培养、提高学生自主学习和程序设计能力[5]。
  BOPPPS模型是起源于北美的一种教学模式,以学生为中心,强调学生主体地位,突出主观能动性,全方位深度参与学习,调动学习积极性;教师是组织者、指导者和帮助者。BOPPPS模型注重课堂教学流程,将课堂教学划分为6个阶段[6]:①引入(Bridge-in)。目的是为了引起学生关注,激发兴趣,思考所学内容“和我有什么关系”、“我为什么要学”、“在实际中有什么作用”等,深入探究原理,使学生成为学习主体;②目标(Objective)。明确学习要达成的目标,重点是目标的表述要具体、明确,结果可检验;③前测(Pre-test/assessment)。本阶段由教师通过提问或测验等方式,对学生进行课前摸底,掌握实际情况,随时跟进和调整课堂内容的进度和深度;④参与式学习(Participatory learning)。鼓励学生参与到学习过程中,成为学习主导者;⑤后测(Post-test/assessment)。用小测试、短论文或讨论等方式检验学习效果是否达到了既定目标;⑥总结(Summary)。通过反馈、成果鉴定等方式对课堂内容进行整理和汇总。
  3 实际应用举例
  Java程序设计有自己的课程特点,不能生搬硬套BOPPPS模型,但BOPPPS模型注重分阶段的教学理念,在进行Java程序设计课程教学时值得借鉴。Java程序设计课程内容丰富,因此仅以其中部分内容为例,分析如何借鉴BOPPPS模型的框架,设计和组织Java程序设计课程教学。
  (1)引入。目的是为了吸引学生注意力,增加学生关注度,现实生活中许多熟悉的问题都可作为案例引入[7]。类是面向对象程序设计的单位,封装了现实世界中的状态和行为。现实世界中的状态和行为在信息世界转化为变量和方法[8]。对象由类创建,每个对象都有自己独立的变量,变量有不同的数据类型和存储类别,一旦变量被声明为static,即静态存储类别,所有对象都将共享该static变量,其中任何一个对象对static变量的值进行修改都将影响其它对象,Java中所有对象的static变量共享同一区域[9]。以上定义抽象晦涩,不利于学生深度理解static变量和普通变量的区别,因此举例说明。
  比如,定义一个People类,由new和构造方法创建对象(每个人),每个对象都拥有独立的变量,比如,年龄、姓名、性别等都是唯一的,如果把“地球”作为对象的一个变量,不能说每个对象(每个人)都有一个“地球”,而是所有对象(所有人)共享同一个“地球”,即“地球”必须声明为static,任何对象(人)对“地球”有轻微的破坏都将影响其他对象(人)。将“地球”的特性作为案例引入软件设计中,以此区分static变量与普通变量的应用,能让学生理解和接受。
  又如,Animal类有eat和breathe两个公有方法,如果Fish类继承(extends)了Animal类,仅声明Fish类,则有eat和breathe方法,因为Fish类继承了Animal类,自然就继承了Animal类中的公有方法。用生活案例Animal类和Fish类引入面向对象设计中继承的概念,学生以此为切入点,深入学习继承的应用,会发现Fish类的breathe方法不同于一般Animal类的breathe方法,在Fish类中写出自己的breathe方法,Fish类与Animal类产生了方法的重写(覆盖),要想在Fish类中显示Animal类的breathe方法应用,必须在Fish类的breathe方法中用super关键字再次调用breathe方法,进一步深入到类的多态性学习。
  类似的引入案例包括不同的内容,目的是为激起学习兴趣,引导学生积极思考。
  (2)目标。明确学习目标,重点是对学习目标的表述,目标表述必须具体明确,且可检验、可衡量或可观察[10]。
  明确可检验的目标在很大程度上决定了学习积极性,所以认识和了解Java程序设计十分必要。Java语言有3个发展方向,即JSE、JEE、JME,JSE被称为“Java平台标准版”,是Java平台的基础,基于该原因选用本课程教材[11]。课程开始之初明确告诉学生JSE应用领域及学习后收获。JSE主要用作桌面应用开发,如QQ、Word等。掌握JSE后,学生能开发一些桌面系统或游戏。为了让学生有很深刻感受,将JSE技术已完成的项目作现场演示,比如“坦克大战”游戏,JSE主要功能是让坦克移动并智能地打出炮弹、躲避子弹、炸毁对方坦克。演示系统或游戏可能只需很短的时间,但是完整地呈现设计效果需要结合课程中许多知识点,学生将知识点串接起来,加以设计和综合即能做出自己的作品。让学生亲眼目睹由JSE技术完成的系统在一定程度上能激发学生好胜心,触动学习兴趣和欲望[12]。
  不仅可以根据课程性质给出总体目标,还可依据每章知识点或是综合几章知识点,做出相应的设计案例作为衡量目标。假如某人在2000年1月1日打鱼,请用“三天打鱼,两天晒网”为例,求出给定的时间某年某月某日是在打鱼还是在晒网,并求该天和2000年1月1日相隔了多少天。学生综合利用选择结构的switch语句和循环结构的for语句即能解决此案例中的问题。
  针对课程和每个章节都必须制定非常明确的目标,学习才有方向和针对性,目标要可控制、可衡量。每个目标的制定都应充分考虑学生的自信心,帮助学生自我肯定,学习才能逐步深入下去[13]。
  (3)前测。在具体内容学习之前了解学生对所学内容或对先导知识的认知程度,进而调整课堂内容的深度与进度,可通过提问或者测验等方式进行前测[14]。
  每开始一个新知识点讲解,以往的知识点都用作前测信息加以检验,方式亦可多样。如果学生学习过C或C++等课程,可以把课程中的知识点抽取出来作为Java程序设计的前测内容,一方面回顾以往知识点,同时也注意区分相同知识点在不同语言应用的细小区别。比如,自增自减(++ --)算术运算符用输出函数printf()处理在C和Java中的不同。int i=3;printf(“%d,%d,%d,%d\n”,++i,i++,i--,--i)在C程序设计中的结果分别是3、2、2、2,在 Java程序设计中计算结果依次为4、4、4、3。从结果看,C程序设计處理的顺序为从右到左,Java程序设计处理的顺序为从左到右[15]。相同的内容用不同的语言进行处理,结果出现很大不同,应提醒学生在学习新的语言时注意区别。   (4)参与式学习。强调和鼓励学生深度参与学习。课堂的主角是学生,可以分层次地让每个学生都深度参与课堂,有预习能力和习惯的学生,经过课前自主学习和独立思考,课堂上“有备而来”,能与教师高频互动,教师可用一些复杂的问题启发学生思维,强化知识深度和广度,提高学习绩效,培养自学能力。对于有学习积极性和自我管理能力的中等学生,有些问题的理解和应用需要教师从中协助,教师可交付一些较为复杂的问题,使学生逐步成长。对潜能生需要教师进行个别耐心辅导,甚至是长期跟踪和帮扶,尽可能不让他们落得太远,要用最直接的问题引导和鼓励他们,稍有进步大力肯定,培养他们的自信心,以减轻学习焦灼感[16]。
  (5)后测。检验学习是否达到既定目标。根据Java程序设计课程性质,一般用即兴编程的方式进行后测活动[17]。
  讲解完类与对象后,给出求一个长方形周长和面积的案例,检测学生对类与对象的理解程度。要求用面向过程的程序设计完成以下步骤:①确定长方形周长和面积的算法;②定义两个变量,分别表示长和宽;③定义两个方法(函数)计算周长和面积;④求出周长和面积具体数值。
  要求用面向对象的程序设计完成以下步骤:①设计一个长方形类,封装长方形的状态(长和宽)和行为(周长和面积);②将长方形类所有共性抽取出来,定义一个具体对象;③定义对象自己的状态(变量)和行为(方法或函数);④求出周长和面积具体数值。
  该案例可让学生在课堂上完成,现场写下程序并分析两种方式区别,检验学生能否对类与对象的内容正确应用并掌握面向对象与面向过程程序设计的区别;若条件允许,能在机房完成对程序的实时调试,教学效果更好。
  (6)总结。通过课堂反馈描述,概括整学期教学活动,归纳每个章节课堂内容。发表的论文、开发完成的系统或其它一些作品等成果鉴定都能作为教学活动总结。
  Java程序设计课程可用一个小项目的开发作为总结内容,比如,在目标里提到的类似与“坦克大战”的项目,学生可以个人完成,也可以组队完成,教学活动结束前给定专门的成果鉴定时间,要求每个人清楚陈述自己的工作并进行演示,然后回答教师提问,作为期末考核的一部分。
  4 结语
  Java程序设计课程,以BOPPPS模型为指导,设计案例组织教学,注重“教”与“学”双向互动,以“学生为中心”发挥“主体”地位,教师发挥“引导”作用[18]。引导学生深度参与、主动学习,激发学生积极探索,调动学习积极性和主动性,让学生从“要我学”变为“我要学”,从而实现提高教学效果、培养高技能应用型人才的目的[19]。
  参考文献:
  [1] 耿祥义,张跃平. Java2实用教程[M]. 第5版. 北京:清华大学出版社,2017.
  [2] 耿祥义,张跃平. Java2实用教程[M]. 第4版. 北京:清华大学出版社,2012.
  [3] 张桂珠. Java面向对象程序设计[M]. 第3版. 北京:北京邮电大学出版社,2010.
  [4] 杨静华. 信息与计算科学专业Java程序设计课程教学改革探索[J]. 科技信息,2012(33):245.
  [5] 姚晓玲. 基于BOPPPS模型的java语言课程教学模式探讨[J]. 电脑知识与技术,2016(1):165-167.
  [6] 付绍静. BOPPPS模型在信息安全数学基础课堂中的应用[J]. 计算机教育,2015(6):22-25.
  [7] 张业男. JAVA课程贯穿案例法在面向对象教学中的实践[J]. 科技信息,2013(12):247-248.
  [8] 任廷艳. 高校Java程序设计课程教学改革研究[J]. 福建电脑,2013,29(2):200-201.
  [9] 冯贺. 应用型高校Java程序设计课程改革探索与实践[J]. 科技视界,2014(27):173-174.
  [10] 陈卫卫等. 基于BOPPPS模型和问题驱动教学法培养计算思维的教学设计[J]. 工业和信息化教育,2014(6):8-11.
  [11] 罗洋. Java语言课程教学模式的探索[J]. 辽宁高职学报,2010,12(4):30-31.
  [12] 黄龙泉. “Java程序设计”课程改革的探索与实践[J]. 中国电力教育,2011(10):87-88.
  [13] 姚利民. 高校教学方法改革探讨[J]. 中国大学教学,2013(8):60-64.
  [14] 罗宇. 从BOPPPS教学模型看课堂教学改革[J]. 计算机教育,2015(6):16-18.
  [15] 谢晓伟. 基于Java语言的项目驱动教学研究[J]. 科技致富导向,2011(36):169-170.
  [16] 陈益. 翻转课堂在计算机类课程教学中的应用[J]. 软件导刊,2017,16(11):235-237.
  [17] 袁恩. 基于BOPPPS模式的计算机网络原理教学改革[J],计算机教育,2015(6):26-29.
  [18] 林叶郁. 应用型本科“Java程序设计”课程的教学改革[J]. 鸡西大学学报,2011,11(11):28-30.
  [19] 汤毅. 应用型本科人才培养模式改革探索與实践教学[J]. 北京电力高等专科学校学报,2011(7):311-312.
  (责任编辑:江 艳)
转载注明来源:https://www.xzbu.com/8/view-15018221.htm