案例教学在JAVA程序设计课程中的探讨与实践

2022-09-10

JAVA是适合于分布式计算环境的面向对象的编程语言与平台, 具有高度的安全性、可移植性和代码复用性, 在网络、消费电子等领域得到了广泛的应用。目前国内许多高等院校根据市场人才需求, 将JAVA课程体引入教学中来。JAVA课程本身具有实践性强的特点, 如何使学生具备良好的动手实践能力、掌握JAVA程序开发技巧、积累项目开发经验, 是目前在教学过程中亟待研究解决的问题。为此, 本文结合在JAVA教学过程中的实践与体会, 提出如何将案例教学方式融入到JAVA教学过程中, 培养学生解决问题的能力。

1 JAVA课程中的案例教学

学习一种编程语言, 最重要的是在掌握基本语法规则后去解决实际问题, 在不断遇到问题、解决问题的过程中, 反复的实践、观察、分析、比较、总结从而积累编程技巧与能力。使用面向对象的程序设计语言首先要学会将人类的自然思维方法用于程序设计, 建立系统与全局的观念, 其优点是首先学习高度抽象的思维方法, 建立系统和全局的观念, 为后续学习奠定思想方法的基础。然后, 在实践环节和后续课程中不断学习各种算法、训练编程技巧。

由此, 在实践中将《Java程序设计》课程的教学过程大致分为两个阶段:第一阶段完成传统的Java课程的教学内容, 讲授Java语言基础 (历史沿革、开发环境、基本语法、流程控制、数组操作等) 和面向对象的程序设计思想 (类、对象、封装、继承、多态、抽象、接口、包等) 。由于属于初学阶段, 学生的接受能力有限, 在这个阶段所采用的案例往往以小的具有代表性的例子为主。在教学过程中发现学生对于贴近实际应用的例子接受较好甚至可以由学生提出具体需求, 再由教师引导师生共同分析解决, 可以起到事半功倍的效果。第二阶段讲授内容包括多线程、I/O流、图形界面、网络编程、数据库操作等高级应用, 在这个阶段, 学生已经具备了基本的知识, 需要锻炼综合运用所掌握的知识解决实际问题的能力。因此, 这个阶段的案例教学要从实际应用出发, 采用“项目驱动, 案例教学, 一体化课堂”的模式, 来提升教学的深度和广度, 特别需要注意培养学生遇到问题时解决问题的能力, 养成查阅文档、总结等良好的编程习惯, 进一步提高教学质量。

本文以模拟开发一个在线聊天软件为例, 探讨在第二阶段网络编程的教学中, 综合前面章节中多线程、I/O流、图形界面的内容进行综合分析和开发的案例教学手段。

2 以在线聊天软件为例进行案例分析教学

在JAVA程序设计课程中网络通信一章, 综合有前面几章的相关知识, 教学过程中往往是学生听得懂但是自己动手的时候就无所适从。为此, 从同学们熟悉的在线聊天软件来进行讲解, 将会引起极大的兴趣。

2.1 基础知识的准备

在进行程序设计前, 基础知识的了解是必不可少的。一般的TCP/IP网络数据通信主要可分为两种不同的通信协议, 一种是面向连接的通信协议, 这种传输方式在数据传送前必须先建立连接, 这种方式称为TCP。另一种方式则是面向非连接方式, 在传送数据前并不先建立连接, 这种方式称为UDP。

TCP和UDP都是传输层上的通信协议, 也是一般TCP/IP网络上最常使用的通信协议, 它们各有自己的优缺点适应于不同的应用场合, 如TCP较可靠, 所以用在可靠性要求较高的应用上。而UDP则较多应用于速度要求较快、数据传输可靠性要求不是很高的应用上, 如数据广播等。Java为Internet编程提供了丰富的网络类库支持。利用这些网络类库, 可以轻松编写多种类型的网络通信程序。

2.2 讨论分析功能需求

分析阶段是案例教学过程中最重要的环节之一, 必须要引导学生自己思考问题, 提出解决问题的方案, 学习解决问题的方式方法。如果案例教学只是教师演示软件编写的过程, 也就失去了案例教学的意义。

如在线聊天软件案例中, 首先面临问题就是数据传输问题, 聊天消息数据要通过网络传输可以采用TCP或者UDP方式。最终选择哪一种方式, 可以引导学生回忆TCP与UDP的优势和缺点, 结合案例的需求进行选择。另一个问题是在本例中有三个角色, 分别是服务器、客户端A和客户端B, 三者之间通信的流程如何设计?消息是直接由A传递到B, 或者是由服务器转发?两种方式各有什么利弊?这些问题应由学生自己分析得出结论, 也许会有不同的讨论结果, 但要鼓励学生采用不同的方式思考, 对所采用的技术有一个深入的了解。

在本例中一个重要的问题是服务器端采用多线程进行监听的实现方式, 因其在实际的网络项目开发中使用广泛, 所以需要学生熟练掌握。可采用对比的方式, 分别采用单线程、多线程多种实现方式, 对比其服务容量和延迟, 引导学生从中选出合适的解决方式。

2.3 采用JAV A编程实现

首先引导学生了解在线聊天软件的基本架构, 即一个服务器多个客户端。并进一步分析服务器和客户端的不同作用, 进一步明确聊天软件的一些基本功能, 包括登录服务器、显示在线好友、发送/接受文件、发送/接受消息等等。分别针对不同的功能, 引导学生思考如何采用JAVA编程技术实现。

(1) 登录服务器。

登录服务器实际上也就是客户端与服务器端进行通信, 通知服务器端客户端上线了。那么从学习的基础知识出发就可以知道服务端需要一个监听线程, 等待客户端的消息, 同时, 客户端需要发起链接传递登陆信息。在此过程中引导学生编程的过程中要注意异常处理、I/O流类型的选择等。具体代码不再赘述。

(2) 发送/接收消息。

发送/接受消息是QQ软件的基本功能之一, 在这里可以引导学生充分发挥积极性, 以实现功能为前提, 设计多种实现方案。如:客户端直接发送、服务端中转信息以及两者相结合的方案。无论哪一种方案, 发送方和接收方必须建立socket连接, 这是实现这一功能的重点。

其他各个功能模块, 也可以如此引导同学们, 进行分析、设计和编写。对程序编写过程中的问题, 由老师有导向的进行集体讨论, 找出解决的办法, 提高同学的参与性。

3 结语

对实践性要求很高的JAVA课程体系教学的研究表明, 实践性计算机类课程必须紧跟社会发展的步伐, 教师应想办法丰富学生的项目开发经验, 采用现代教学方法与手段, 因材施教。在总结前期课程建设基础上, 将进一步加大课程改革力度, 使教学与社会需求相吻合。

参考资料

摘要:JAVA程序设计课程需要培养学生综合运用基础知识来解决问题的能力, 因此在教学过程中采用案例教学的教学模式显得尤为重要, 可以极大的提高学生的兴趣和能力。本文以开发一个在线聊天软件为案例, 综合利用多线程、I/O流、图形界面等章节的内容, 进行综合分析和开发的授课方式, 探讨案例教学在实践中的应用。

关键词:案例教学,JAVA,网络通信

参考文献

[1] 李卫华.Java教学资源共享平台的构建与教学信息化建设研究[J].广东工业大学学报, 2007, 6.

[2] 朱艳红, 何东彬.实践性课程JAVA教学模式的研究[J].计算机与信息技术, 2007, 11.

[3] 向模军, 刘松青.Java教学的探讨和实践[J].计算机与信息技术, 2007, 11.

[4] 李素朵, 刘艳秋, 吕晓华.多媒体环境下JAVA教学分析[J].2008, 3.

上一篇:机械制图项目化课程改革浅析下一篇:让留守学生放飞心灵展翅飞翔——《品德与社会》活动实践课设计案例