姚 竞
(湖北经济学院 信息管理学院软件工程系,湖北 武汉 430205)
《Java程序设计》是计算机科学领域的一门重要的编程类课程,是软件工程专业的基础专业课程,同时也是非专业类计算机等级考试的重要内容之一。熟练掌握Java有关知识,不仅能帮助学生应对就业和考级等实际问题,同时也能帮助学生掌握好面向对象编程方法等软件理论知识,为深入学习计算机专业类知识打下良好的基础。
情景教学法起源于英国,70年代被引入中国,主要应用于英语等外国语的教学。情景教学法由于在教学过程中将真实环境引入课堂,这样能还原相关知识的应用环境,实践已经证明情景教学法对于一些特定内容的教学很有帮助。
本文将情景教学法借鉴至计算机编程领域,应用到《Java程序设计》课程的实际教学中,结合《Java程序设计》课程自身特点,通过设置一系列有内在联系的情景和一组配套的实例来展开教学,在实践过程中取得了不错的教学效果。
Java语言是现代计算机学科领域的一门重要的专业课程,它不仅是现代很多本科计算机专业教育的必修课,也是计算机专业培训机构的主干课程之一。Java是现代软件工业领域的重要开发工具之一。因此Java语言的学习是非常重要的。
作为计算机本科专业课程,Java程序设计在内容设置上有着与其它编程语言相似的教学内容和过程。教学内容按进度计划的先后次序一般为:Java语言概述、Java数据类型与表达式、流程控制语句、数组和方法、类与对象、继承与多态、常用类、抽象类接口与内嵌类、异常处理、Java Applet、图形用户界面、多线程、输入输出流、Java范型与集合、网络编程、数据库编程等内容。教学过程一般先讲授理论部分,然后就各个知识点通过教学案例或例子程序进行教学。这样的安排遵循传统的教学模式与习惯,知识点的构成以及进度的设置也是合理的。
然而一些因素使得这样的安排在实际操作时显露出若干不足,并可能会导致学生学习兴趣和教学质量的降低。一是计算机专业的培养方案中,编程类课程的设置通常不会只有一门《Java程序设计》,往往还会要求先修其它课程如C语言、C++等。而这些编程类语言有很多相似之处,有些基础部分的内容甚至都是一样的,因此单纯重复强调基础性的内容,势必导致学生的学习兴趣降低。其次,传统的教学中常常依个别知识点来设置教学用例,这样实例之间往往欠缺前后联系,对于学生来说不容易从宏观上把握知识。而如果给出的是一个大的项目案例又不得不包括大量相关知识点,显得大而全,反而无法讲解清楚最核心的知识点。这一点如将一个完整的进销存系统作为实例,往往要求学生对界面、网络、数据库等相关知识有全面了解。此外值得重视的是,Java语言本身是一门面向对象编程语言,面向对象编程方法特有的方法学以及代码组织等,无法用常规的个别例子来说明透彻。所以很容易造成学生对一些知识点似是非懂的情况。
情景教学法也叫视听法由英国知名学者Hornby创立于20世纪30年代至60年代,在英国受到普遍重视和推广,70年代后,情景教学法被引入我国,在外国语教学中得到了广泛的应用。
在传统英语教学中,通常是通过机械性的读写训练来达到教学目的。这样学生就会慢慢的失去学习英语的兴趣,使得学习效率和质量大大降低。情景教学法在教学过程中设置有具体的场景,场景中存在和环境有关的对象,通过互动以引起学生一定的全面直观的体验,从而帮助学生更好的理解和掌握相关知识。情景教学法依托语言环境因素来表达恰当的意义,因此能够提高学生学习兴趣,在实际教学中能很好的提高学习效果。
情景教学法在实践教学中的特点和优点包括以下几个方面:
第一,情景教学法重视学生的参与性,利用各种方法构造与所学内容一致的场景,让学生边看画面,边练听和说,身临其境地学习外语。
第二,情景教学法也重视句型教学,强调与场景相对应的固定句型,操练在某一场合下一些常用的意思联贯的句子,使学生掌握以场合为基础的常用的处理手段和方法。
第三,情景教学法有助于消除学生的畏难和紧张心理,逐步在场景中引入内容,循序渐进。
第四,情景教学法有助于提高学生学习积极性。通过设置各种生动有趣,贴进生活的情景、画面,学生会更专注于他们的学习内容,使他们寓乐于学,寓学于乐。
第五,降低学生的理解难度。情景中创设的语境是语言赖以生存和发展的环境,也是语言交际所依赖的环境。在相应的语言环境中完成教学内容,可以降低学生理解语言的难度。
情景教学法最初适用于英语的教学,从实际应用效果看,情景教学法把原本枯燥的单词和语法教学,融入到现实应用环境中,通过声音、形状的辅助刺激能很好地帮助学生掌握好相关知识点。在计算机编程语言的学习过程中,尽管计算机语言有别于自然语言,但是从以下几个方面看仍然和英语教学有相似和相通的地方,因而有借鉴和相应的可行性。
首先,计算机语言之所以称之为语言,也即其有自身一套完整的表达方式,语句、语法等内容。而这些组成语言的基本元素,也都需要有类似的手段进行学习和记忆。
其次,在实际应用过程中,计算机语言和自然语言一样会有一些固定格式的表达,如固定格式的类结构以及接口等。此外也会有解决特定问题的惯用方法,如:连接网络、访问数据库等。因此只要有相同的应用环境,那么相同的代码的片段就可以发挥作用。这如同英语教学中在特定场景中应用的习惯用法或固定句型。
再次,Java程序语言本身在编程语言分类中属于一门面向对象编程语言,意味着这种程序语言自身的设计和使用,要符合日常环境中人们看待事物、和对象进行交流的思维习惯。在Java程序里,任何代码的调用执行都和对象有关,而与程序有关的全部对象也构成了程序运行的基本环境。从这个角度看,Java程序的设计和应用也需要和情景相匹配,需要借助情景中个体之间的交流完成程序设计。
所以综上所述,英语和Java在教学中有一定的契合点。可以将情景教学法借鉴到《Java程序设计》的教学实践中。
如同情景教学法在英语教学中的应用一样,在Java程序设计这门课程中应用情景教学法也必须在课程开始之前做大量的准备工作,提前设计若干教学场景,并明确相应的教学知识点、涉及的场景中的对象、场景行为和过程。
在实践教学中准备阶段由以下几个步骤组成:
步骤1:首先对将适用情景教学法的章节及其涉及的知识点进行梳理,不同于案例教学法,这里重点考虑的是知识点之间的联系、知识点在教学进度安排中的分布。
步骤2:将有紧密联系的知识点进行组合,组合的时候需要考虑教学进度的先后次序,一个知识点可以反复加入到若干个知识组中去。
步骤3:根据知识组设计教学场景,明确场景背景、场景之间的关系、参与对象、对象行为等内容。
步骤4:依托设计好的教学场景,设计一组具体案例和一组预设问题。一组有联系的案例用于形成场景,如构成场景对象、描述对象行为和属性等,同时也起到引入知识点的作用。案例逐个引入,场景随之变化,并逐步被完善。预设问题用于在形成好的场景中引出新的问题,为新知识点的引入做准备。
一个典型的场景设计内容如下:
场景的背景是一些人进行猜数字游戏。参与对象包括Apple同学、Apple同学的兄弟 Ben、Apple的父亲 Victor、游戏本身。场景中的行为包括Apple、Ben、Victor猜数字的行为,以及游戏对这几个人的反馈行为。涉及知识点包括:条件、循环、类、对象、继承、算法等。
第一场景是Apple一个人猜数字,案例1包括猜数字游戏本身,关联知识点条件、循环和算法(游戏规则)等,案例2包括类和对象,将游戏包装成类和对象,案例3构造Apple,构造人类。预设问题包括多人游戏时程序如何设计,更改游戏规则时的情况该如何解决等。第二场景是Ben和Victor也加入进来,案例1包括继承关系。
在实施阶段由以下几个步骤组成:
步骤1:向学生描述场景、场景中的角色以及角色行为等内容。
步骤2:将场景涉及的新的基础知识进行必要的讲解。
步骤3:以场景为背景,逐一讲解与场景相关的案例,逐步形成场景的若干组成部分 。
步骤4:组合案例,完成全部构成场景的代码。
步骤5:在场景中利用已经完成的代码,要求学生思考并回答预设问题。并由此引入新知识点。
步骤6:场景升级,加入新知识点,回到步骤1,重复步骤1至6的过程。
通过在《Java程序设计》课程中引入情景教学法,透过生动的场景可以向学生明确说明场景之中对象之间的关系,从而容易理解程序的运行和组织方式。这样降低了学习难度,进而可以增加学生对知识点的学习兴趣。
本文中描述的情景教学法的特点在于:1.知识点系统性,由于将知识点组织于案例和场景之中,使得原来看起来联系不是很紧密的一些知识点得以联系起来,方便学生学习记忆和使用。2.突出核心问题,通过场景中专门设置的案例可以突出该情景中最核心的问题,这样能紧扣关键知识点。案例本身也是在这种特定应用情况下的最佳参考。3.关联的场景以及场景的升级使得教学内容有较强的延续性,可以突出教学过程中各种问题之间的关系。
在实践教学过程中,情景教学法在我校2010级软件工程Q1041班和法商软件10401班的《Java程序设计》课程中进行了实验,从学生访谈反馈情况看,和一般常规的编程类教学方式相比,情景教学法更能激发学习兴趣,特别能清楚的表达知识点的作用,能将多种知识点前后贯穿性的联系起来,学习效果良好,减少了很多记忆的负担。
此外,从实际教学管理和学生成绩方面看,相比2009级学生,2010级学生的平时实验、作业以及上课状态都有一定改善,学生成绩整体上有所提高。特别是通过情景教学法的教学,对学生日后Java编程方向的深入学习有了更多兴趣。
情景教学法最初主要应用于英语等自然语言的教学过程中,本文在分析了自然语言和Java编程语言之间的相似之处之后,将情景教学法借鉴至《Java程序设计》课程中,形成以情景为中心的课堂教学方法,在实践中能较好地达到提高学生学习兴趣和学习效率的目的。情景教学法在应用到《Java程序设计》课程中时,和实践教学中通常采用的其他方法如案例法、分组教学法等能起到相辅相成的作用。对于类似Java的其它编程语言的教学也有一定的参考价值。
[1]丁振凡.Java语言程序设计[M].清华大学出版社,2010.
[2]胡礼和.现代教育技术学[M].湖北科学技术出版社,2003.
[3]于瑶.情景教学法在英语教学中的应用[J].金融理论与教学,2003.
[4]李吉林.情景教学实验与研究[M].人民教育出版社,2006.
[5]聂军.英语教学中的情景教学[J].人教网,2011.