Java程序设计课程实践教学探讨
2020-08-10张琳李朝辉谭孟康
张琳 李朝辉 谭孟康
[摘 要]Java程序设计是高等学校计算机相关专业的一门技术基础课。结合课程的授课经验,设计了Java程序设计的教学内容,分析了在实践教学中存在的问题,并对实践教学方法进行了探讨,希望能够对Java授课教师提供有益的帮助,提高该课程的实践教学效果。
[关键词]Java程序设计;实践教学;Java面向对象
[基金项目]2019年中央高校基本科研业务费专项资金资助项目“面向学术文献大数据的自动文摘方法研究”(3132019234);2018年大连海事大学教学改革项目“信管专业大数据课程教学资源建设”(2018Y48);2018年教育部产学合作协同育人项目“‘跨境电子商务理论与实践课程建设”(201802028013)
[作者简介]张 琳(1984—),女,山东莱西人,博士,大连海事大学航运经济与管理学院讲师,主要从事信息管理和文本挖掘研究;李朝辉(1974—),男,河南漯河人,博士,大连海事大学航运经济与管理学院副教授,主要从事电子商务物流研究;谭孟康(1999—),男,湖南衡阳人,大连海事大学航运经济与管理学院2017级本科生,研究方向为信息管理与信息系统。
[中图分类号] G642[文献标识码] A[文章编号] 1674-9324(2020)27-0214-02[收稿日期] 2019-10-08
随着互联网和移动互联网的快速发展,市场对Java编程人才的需求越来越大,所以许多高校的计算机相关专业都开设了Java程序设计这门课程,并将其作为一门专业技术基础课。因此,如何更好地教授这门课程,培养学生面向对象的程序设计思想,提高学生分析和解决实际问题的能力,是高校Java授课教师必须重视的问题。
一、Java程序设计教学内容
1. Java语言的编译和运行机制。Java是一种特殊的高级语言,既具有编译型语言的特征,也具有解释型语言的特征,因此用Java语言编写的程序要经过先编译后解释两个步骤[1](P4-5)。Java程序编译后生成的不是特定平台的机器码,而是一种“中间码”—字节码(也就是.class文件),这种代码不面向任何平台,只面向Java虚拟机(Java Virtual Machine,JVM)。字节码可以在所有实现了JVM的系统上运行,因此Java语言可以跨平台。
2.数据类型。Java是一种强类型语言,这意味着必须为每一个变量声明一种类型。Java将数据类型分为两类:基本类型和引用类型[1](P50)。基本类型包括Boolean类型和数值类型。数值类型有整数类型(byte、short、int、long、char)和浮点类型(float和double)。引用类型包含类(class)、接口(interface)和数组(array),还有一种特殊的null类型。
3.流程控制和数组。Java支持3种流程控制结构:顺序结构、分支结构和循环结构[1](P74-89)。其中,分支结构包含两种:if语句和switch语句。循环结构包含四种:while循环、do while循环、for循环和foreach循环。其中foreach循环是JDK5提供的一种新的循环结构,可以用来遍历集合、数组中的元素而不必指定下标值。
数组是编程语言中最常见的一种数据结构,用于存储同一类型的多个数据[2](P78-88)。在Java中数组必须先初始化才能使用。数组的初始化有两种方式:静态初始化和动态初始化[1](P91-92)。其中,静态初始化由程序员显式指定每个数组元素的初始值,由系统决定数组的长度;动态初始化由程序员指定数组长度,由系统为数组元素分配初始值。
4. Java面向对象的三个基本特征。Java面向对象的三个基本特征是封装、继承和多态[1](P28-29)。
封装指的是将对象的实现细节隐藏起来,不允许外部程序直接访问对象的内部信息,只能通过该类提供的一些公用方法实现对对象内部信息的操作和访问。通过封装可以提高数据的安全性。
继承是实现软件复用的重要手段,利用继承,可以基于已存在的类构造一个新的类。子类继承父类后,将直接获得父类的属性和方法,并可以在此基础上添加一些新的属性和方法,以满足新的需求。
继承为多态的实现提供了前提。子类是一种特殊的父类,所以Java允许把一个子类对象直接赋值给父类引用变量。在编译时变量是父类类型,但在运行时却表现出子类的行为特征,这就是多态。多态意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。
5. Java类库。Java类库主要包括Java基础类库、异常处理、图形用户界面、输入输出流等[1](P246-731)。其中,Java基础类库包括Scanner、System、Runtime、Object、String、Math、List、Set等,通过这些基础类库可以提高开发效率,降低开发难度;异常是运行时在代码序列中引起的非正常状况,Java的异常机制主要依赖于try、catch、finally、throw和throws五个关键字,可以让程序具有更好的容错性,使程序更加健壮;Java使用AWT和Swing類完成图形用户界面编程,通过这两个类提供的图形界面组件库,程序只要依次创建所需的图形组件,并以合适的方式组织它们,就可以开发出美观的用户界面;Java通过java.io包下的类和接口来支持输入、输出,java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可分为字节流和字符流两大类。
二、Java程序设计实践教学现状
1.理论教学学时仍然占很高的比例,这使得教师将教学重点放在理论教学上,在课程考核方式上也以理论笔试为主,忽视了对学生动手实践能力的培养和考核[3]。实践学时的不足导致学生无法充分理解面向对象的理论知识,以至于在遇到具体问题时无法下手,进而对实践课程产生了排斥心理,编程技能和综合运用知识的能力得不到提高。
2.过度依赖于IDE工具。IDE工具使用起来比较灵活,可以提高开发效率,在项目管理中有不可比拟的优势。因此很多教师在教学实践环节,直接将Eclipse、NetBeans等IDE工具作为开发工具,这种做法可能会使学生将精力花在IDE工具的学习上而忽略对Java语言本身的学习,也可能会造成学生对IDE工具的过度依赖,导致其在脱离IDE工具进行程序设计时,经常会犯一些语法错误或书写错误,比如将关键字首字母大写,使用中文分号作为分隔符,忘记写主函数的形参等,而大部分学生经常发现不了这些错误。
3.缺少合适的实践教学资源。为了培养符合市场需求的高水准Java人才,Java教师需要对知识点以及知识点之间的关联性进行更详细的讲解,教授学生如何将所学的知识应用到实际中,学生也需要进行更多有针对性的练习,而现有的实践教学资源难以与教学进度、教学知识点完全融合,导致学生在实践中难以更好地运用这些知识点。
三、Java程序设计实践教学方法探讨
1.增加总学时,同时提高实践教学学时的比例。理论是实践的先导,实践是理论的检验。为了更好地培养学生的综合素质和实践能力,目前有的高校已经将Java程序设计课程分为Java初级和Java高级两部,分两个学期进行。将课程总学时增加到112学时,其中Java初级64学时,Java高级48学时,并将这两部分中的实践教学学时比例提高到50%。同时为了全面评估学生实践操作能力,实践分值在课程总分值中所占的比例也由30%提升到50%。
2.高校Java教师可以在课程教学初期,比如Java初级阶段,在实践环节中将Editplus、Ultra Edit或记事本等作为开发工具,在大部分学生能够根据错误提示修正程序中的错误时或在Java高级阶段,讲授如何使用IDE工具进行程序设计。另外,为了提高学生的程序改错能力,督促学生多练习多总结,在笔试环节也可以增加程序改错题。
3.在實践教学过程中,Java教师可以按照讲授的内容编写实验指导书,通过设计大量有针对性的实验帮助学生巩固在课堂上所学的知识点,理解各知识点之间的关联,提高学生的编程能力。Java教师也可以提供一些案例应用,教授学生如何将所学的知识点应用到实际中,进而优化实践教学的水平。另外,为了使学生对面向对象程序设计有一个全面总体的理解,授课教师可以布置一个具有趣味性的综合性大作业,将其作为实践考核的一部分[4]。
4.充分利用校企合作。目前很多高校的计算机相关专业已经与多个实习基地签署了合作协议,在课程设计、综合实践、实习等环节开展深度合作。Java教师可以充分利用实习基地,让学生到企业实习。学生通过参与实际项目开发,积累实践经验。
四、Java程序设计实践教学的发展趋势
随着互联网的快速发展,各行业都积累了海量的数据,大数据时代已经到来。在大数据环境下,企业对大数据分析人才的需求不断增加,数据分析能力已成为计算机相关专业学生应该具备的技能。因此,将大数据技术与Java程序设计实践教学相结合,利用大数据时代产生的海量数据完善实践教学资源,加强对学生数据分析能力的培养,将成为Java程序设计实践教学的发展趋势。
参考文献
[1]李刚.疯狂Java讲义(第5版)[M].北京:电子工业出版社,2019: 4-731.
[2][美]Cay S.Horsmann.Java核心技术卷I基础知识(原书第10版)[M].周立新,陈波,叶乃文,等译.北京:机械工业出版社,2016: 78-88.
[3]徐完平.《Java程序设计》教学改革探讨[J].福建电脑,2018, 34(12):182+168.
[4]谌卫军.Java程序设计课程教学实践[J].计算机教育,2019 (07):23-28.