李金忠,黄雪梅
(井冈山大学 电子与信息工程学院, 江西 吉安 343009)
Java是一门伟大的程序设计语言,据权威机构TIOBE的统计编程语言热门程度排行榜显示:从2002年1月至2018年4月,基本上都是Java语言排名第一,反映出该门编程语言历年来都是非常流行的一门语言。纵览各高校,《Java程序设计》课程在计算机科学与技术和软件工程学科的专业课程中都占有较为重要的地位,由于该课程知识点非常多和抽象,且理论性和实践性都很强。再者,在现有《Java程序设计》课程教材中,其知识点比较零散,没有一个简单、直观和具体的实例能将这些多且散的知识点串接起来,导致学生在学习过程中较难理解和编程,并难于掌握,从而导致教与学的效果较差。为此,如何教好Java程序设计便成为计算机教学中一个非常值得探讨的热点问题。
针对《Java程序设计》课程,传统的教学方法通常是以教师为中心,强调按照教材内容的编排顺序授课,授课方式多以“满堂灌”为主,较少设问、启发和互动。在教学实施过程中,教师通常的做法是先按章节顺序讲授教材中知识点和例题,然后通过课堂实验和课后少量习题来巩固和加深学生所学知识点的理解。这种教学方式难以体现各个知识点之间的联系,难以整合Java语言中多且散的知识点,并难以引导学生积极拓展思考问题、分析和解决问题,导致学生抓不着重点,学习精力分散,从而降低学习效果,久而久之,累积起来的没学懂的知识点可能会越来越多,慢慢地会使学生失去学习该门课程的兴趣。为激发学生的学习兴趣,需提倡以学生为主体,发挥学生自主学习的主观能动性,积极吸引学生主动参与课堂学习,调动学生思考问题、解决问题的积极性。
“问题驱动”是通过设计问题来驱动教学的教学模式,该模式能有效活跃课堂互动气氛,较好提高学生学习兴趣,启发学生发现问题和思考问题,培养学生分析问题和解决问题的能力。“思维导图”是表达发散性思维的有效图形思维工具,能较好地串接零散的知识点,展现知识点的内在联系。“问题驱动”和“思维导图”都能调人兴趣、撩人心智和激人思维,增强师生互动。为解决Java程序设计教学中存在的一系列问题,本文探索了一种融合问题驱动和思维导图的教学模式,并将其应用在Java程序设计教学中,从而提高教学质量。
问题驱动教学,即基于问题的教学方法(Problem-based Learning,PBL),是以建构主义学习理论为基础的一种新兴的教学模式,是基于提出问题、分析问题和解决问题作为主要内容和手段的教学法。PBL的主要思想是以学生为主体、以问题为核心规划学习内容,让学生围绕问题去寻求解决方案,以问题去驱动思考和学习,进而让学生带着问题去探究性学习,以此增强学生的学习兴趣,提高学习效果。问题驱动教学法能够提高学生学习的主动性,调动学生在教学过程中的参与程度,容易激起学生的求知欲,活跃其思维,有利于培养学生发现、思考、分析和解决问题的能力。
问题驱动教学法现已成为国内外教学改革的旗帜导向和追捧的热点,在很多课程的教学中已经得到了广泛地应用。在计算机专业的课程教学中,也有较多的课程已经采用问题驱动教学法去改进教学,如《C++程序设计》[1]、《离散数学》[2]和《微机接口技术》[3]等。
思维导图(Mind Mapping,MM)是20世纪60年代初,由英国记忆大师Tony Buzan基于对脑神经生理科学实践的研究基础上所提出来的研究成果。MM模拟人脑神经网络的放射结构,以形象生动的图示可视化地展现出知识拓扑的思维图谱。MM由主题、节点和连线等构成,利用文字、色彩、图画、代码等多种形式从多维度来表达和组织知识的网络结构图,从而展现思维图谱。思维导图从中心主题开始,分支出若干节点,节点分支出若干子节点,随着分支思维的不断深入,逐步形成一个向周围发散而有序的思维树状图,使人们关注焦点集中于思维图上,增强了记忆效果,也能使制图者产生无限联想,拓展思维,使思维更具创造性[4]。
思维导图是一种将发散性思维形象地可视化的工具,是一种可有效地应用于记忆、学习和思考等的思维模式,越来越受到国内外教育改革工作者的重视。吴宏伟等[5]探讨了思维导图在计算机基础教学中的具体应用。沈莉等[6]阐述在数据库原理与应用实验教学中引入思维导图工具的具体做法。徐鹤等[7]阐述了思维导图对研究生创新能力的培养。孙凌宇等[8]应用思维导图在《数据结构与算法》课程中开展了深奥理论可视化的教学行动研究。丁文文等[9]阐述了思维导图在JAVA教学中的应用。
与已有研究不同,本文提出了一种融合问题驱动和思维导图的教学模式,并将该融合模式应用于Java程序设计课程的教学中以改进教学方法,从而提高教学效果。
问题驱动教学法的核心是构建“问题链”,“问题链”贯穿于整个课堂教学过程中。思维导图的核心是把各主题和知识点的相互层级及其它们之间的隶属关系以图文并貌的方式形象地表现出来。本文基于问题驱动和思维导图,提出一种融合两者的教学模式,图1展示了融合问题驱动和思维导图的教学模式框架。首先,给出一个问题,引出拟解决该问题的相关知识点;其次,分析讨论该问题,引导学生给出解决问题的方法,从而解决该问题;最后,评价解决问题的方法,提出可能的优化解决方法。再者,拓展该问题,提出新问题,循环该流程解决新问题。在整个问题驱动过程中,融入思维导图形象地展现出“问题链”与解决问题的知识点的内在联系和关系,打造教学中的“问题-知识点”的全景图。
图1 融合问题驱动和思维导图的教学模式框架
以一个简单的程序设计问题:“如何设计一个圆类,求解圆的面积和周长”来拓展式地设置问题,且升华为一个稍复杂的程序设计问题:“如何设计一个几何图形类,求解不同图形的面积和周长”来阐述融合问题驱动和思维导图的教学模式在Java程序设计教学中的应用。通过“拓展式问题链”,融合思维导图将Java程序设计课程中的大部分知识点关联起来,呈现Java程序设计课程中知识点的近似全景图。下面针对这两个串联的程序设计问题,阐述融合问题驱动和思维导图的教学模式应用在Java程序设计教学中实施过程。
围绕主题“如何设计一个圆类,求解圆的面积和周长”来拓展设计一串联的问题以驱动教学,并通过思维导图辅助教学,引导学生编程实现以解决这一串联的问题,从而教授学生学习Java程序设计中的知识点,该主题的问题驱动和思维导图如图2所示。从该图可知,通过这样一个较简单的程序设计问题的不断拓展,基本上将Java程序设计中的基础知识点(包括顺序结构、选择结构、循环结构、字符串、数组和方法)全部关联起来了,并通过思维导图清晰地展现出来了。
图2 圆类的问题驱动和思维导图
将前述主题中的“圆类”升华为“几何图形类”,设计了一个更复杂的主题“如何设计一个几何图形类,求解不同图形的面积和周长”。采用同样的教学模式,围绕该主题,本文也拓展设计了一串联的问题以驱动教学,并通过思维导图辅助教学,引导学生编程实现以解决这一串联的问题,从而教授学生学习Java程序设计中的面向对象程序设计的知识点和GUI程序设计的知识点,其问题驱动和思维导图如图3所示。从该图可视,通过这样一个稍微复杂的程序设计问题的不断拓展,基本上将Java程序设计中的面向对象程序设计的知识点(包括类和对象、继承、多态、抽象、接口和异常)和GUI程序设计的知识点(包括AWT、Swing和JavaFX的组件与事件处理等)全部关联起来了,并通过思维导图清晰地展现出来了。
图3 几何图形类的问题驱动和思维导图
通过上面这两个递进关联的主题,本文运用问题驱动和思维导图教学模式,将Java程序设计中的大部分知识点串联起来并以近似全景图的方式展现了出来,从而驱动教学和辅助教学。通过实施这种教学模式,发现学生学习的积极性被激发了,能积极主动地参与课堂学习,进一步提高了学生学习该课程的兴趣,同时,增强了学生思考和解决问题的发散思维和拓展能力,也提高了学生的编程能力,最终更好地提升了教学效果。
基于问题驱动和思维导图在教学中的应用,本文提出了一种融合问题驱动和思维导图的教学模式,并将该模式运用于Java程序设计的教学中以驱动和辅助教学,从而更进一步提高教学效果。
融合问题驱动和思维导图的教学模式也可推广应用到计算机类的其他课程教学中去,甚至更多学科专业的课程教学中,为大学课程教学和实践提供了一个新方向。不过,这种教学模式往往对教师和学生提出了更高的要求,要求教师对课程的整个知识体系有一个总揽,要能精心设计拓展性的系列问题串联课程知识点并用思维导图展示出来,同时要求学生若能提前预习好相关知识点,则可更好、更顺畅地参与课堂讨论问题、提出解决问题的方法。这些要求可更高效率地实施教与学,从而达到更大程度地提高教学质量的目的。