Java 语言在计算机专业课程中的应用

学习 · 111ibm111 · Created at · Last by 111ibm111 Replied at · 865 hits
469

程序设计方法目前已经基本上从传统的过程化程序设计转为面向对象的程序设计,有了质的变化,而Java语言是最主流与应用最广泛的面向对象程序设计语言,已从一种编程语言发展成为全球第一大领先开发平台。因此国外高校计算机专业的重要基础和骨干课程近来的一个重大改变是大量采用Java语言描述的计算机教材,而国内很多高校计算机专业的相关课程仍然沿袭旧制,严重地脱离了计算机技术的发展和社会的实际需要。计算机专业课程除了注重原理性,还必须注重其实践性,使学生的理解不只停留在书本的理论概念上,而且还知道怎样把理论应用到实践中,用Java语言描述相关理论概念无疑是理想的方案。笔者据此论述了如何将Java语言应用于计算机专业课程的教学中,以使学生能理论联系实践,以加深对理论的理解。

1 Java语言在数据结构课程中的应用
是否要尽早引入面向对象的设计或基于对象的设计在数据结构课程领域争论比较激烈。反对者认为:学生应将精力集中在算法的整体设计思想和性能的分析上,采用Java语言描述算法需要学生具备牢固的面向对象程序设计方面的知识,学生易受到语言细节的干扰,不利于对课程理论的掌握。其实随着计算机技术的发展,时代对计算机从业人员提出了比以往更高的要求,学生本身就需要掌握比以往更多的内容,包括会用面向对象的思想分析问题和解决问题,也既采用面向对象的语言描述算法已经成为了必然趋势。此理也可应用于计算机专业的其它课程教学。
教师可采用传统方法先介绍每种数据结构的概念与原理,然后再讲授其Java实现与应用。但因为Java API中获奖的Java集合框架(Java Collections Framework)本身就是非常优秀的经典数据结构实现,因此可先介绍Java集合框架中各个类的接口定义和使用方法,学生使用后,从用户的角度有了直观的认识,再让学生自己完成具体实现,然后在可用性、灵活性、可扩展性和性能上与Java集合框架中的实现比较,分析结果差异,最后再研究分析Java集合框架的具体源代码实现[1]。这种让学生先当用户,体会用户的需求,然后再当设计者的方案使学生不仅掌握了数据结构的基本原理,也理解了如何从对象的角度实现这些数据结构。

2 Java语言在编译原理课程中的应用
编译原理是计算机专业课程中最难学的课程之一。使用Java语言描述教学模型和编译算法除了使学生更直观的掌握相关理论,也可帮助学生掌握一些大、中型软件设计的技术和技巧,提高学生面向对象软件开发的综合能力。
采用Java语言需要改变研究对象和教学模型。研究对象从传统的过程化程序语言转到Java语言,新的内容(如Java语言的作用域规则、动态特性、类、类的继承和多态的实现等)就要反映在教学内容中。实践证明,围绕某个教学模型展开编译设计技术的讲授,非常有利于学生理解和掌握基本原理。但以实际Java语言作为教学模型来说可能复杂了一些,因此课程中选择MiniJava作为教学模型是比较恰当的,其是对Java语言进行适当简化得到的且具有很好的扩展性[2]。课程中各类编译算法都应该随着教学模型的变化,改用Java语言来描述。语法和词法分析的自动生成也不能采用Lex、Yacc这类工具了,而需要改用JavaCC或SableCC等以生成Java语言代码。
面向对象的编译程序构造采用的是语法树构造法,可以得到上下文相关信息,并根据上下文进行语法树的优化,所以生成的代码效率较高。利用Java语言的面向对象特性,语义处理方法中所用到的数据都被封装在相应类中,若需语义修改时,只要继承相应的语法类,并重写相应的语义处理方法即可,所需修改的代码较之传统要少很多。

3 Java语言在操作系统课程中的应用
操作系统是一门实用性和实践性很强的课程,如果只是单纯地介绍抽象的原理和概念,难以有理想的教学效果,例如一个连多线程程序都没写过的学生,很难对线程有真正的了解。Java语言可作为理论与实践间的桥梁,利用其API可直观的演示多线程、CPU调度、线程同步、死锁、内存和文件管理、安全和分布式系统等理论概念。
通过演示Java线程的生命周期可使学生理解线程状态转换概念。竞争条件、生产者-消费者问题、读-写者问题和死锁等原理一直是操作系统课程中讲授的难点,很多学生直到研究生毕业仍没理解,采用Java程序实现以上原理可使学生直观的观察整个运行过程,帮助其对原理的理解,也使其认识到原理并非毫无用处,而在实际应用中是重要且必不可少的[3]。管程在日常操作系统中很难找到实际的实现,通过BlockingQueue类的演示可使学生直观的感受到其相对与传统同步方案的独到之处。

4 Java语言在软件工程课程中的应用
Java语言在软件工程课程中的应用主要是在面向对象的分析与设计部分的应用。学生对系统的数据和行为特征建模后,务必强调将其转换为Java语言代码,即使学生不打算成为专业程序员,将对象模型转换为源代码将非常有助其对对象理论的理解。
设计模式表达了面向对象设计专家用于创建系统的最佳实践的习惯用法和方案,其在面向对象领域应用已经非常普遍,但要让学生完全理解并灵活应用却决非易事。学生经常使用的Java API中就大量使用了各种设计模式,以其为案例学生就更易接受和理解。

5 Java语言在计算机网络课程中的应用
在计算机网络课程中引入Java网络程序的开发,学生不仅能够观察到应用层协议的工作过程,还能体会到创造自己的网络应用程序和应用层协议的容易性。学生也能轻松掌握服务模型和协议的概念,这些概念是TCP/IP各层中重复出现的重要概念。很多教师认为应该强调主要思想,不应使学生困惑于繁琐的具体代码,其实面向对象特性造就了Java程序的良好可读性,即使没学过Java语言的学生读懂Java程序一般不会有困难。
在讲授TCP与UDP有无连接的区别时,通过相应套接字程序可使的学生直观的感受到其差异:TCP客户机创建Socket对象指定地址和端口建立连接后,每次发送与接收就无需再指定,而UDP客户机在每次发送数据时都要在DatagramPacket对象中指定地址和端口;TCP服务器中通过ServerSocket对象的accept()方法接收连接,而UDP服务器直接接收客户机的报文并无此相应步骤。
很多高校在计算机网络课程中以ns-2网络模拟器来分析协议,但因为ns-2是基于Linux操作系统的,所以部署比较繁琐,使用ns-2也要求学生掌握C++和Object TCL两种语言,过高的入门台阶会引起学生的抵触情绪。JNS(Java Network Simulator)是Java版的ns-2,因是Java语言开发的,可无缝运行于任何操作系统,使用JNS学生只需掌握Java语言即可。国外一些高校已经将JNS应用于计算机网络的教学与科研中。

6 Java语言在数据库系统课程中的应用
与数据库的设计和实现相比,更多的学生需要知道如何使用数据库,学会如何在宿主语言中嵌入SQL语句,Java语言无疑是开发企业级信息系统的首选语言,而JDBC完全支持关系数据库系统的游标,存储过程和事务等特性。
随着面向对象技术的发展,对象关系映射(Object Relational Mapping)已经成为企业级开发中不可或缺的技术,业界也存在着众多的ORM产品,教师有必要将相关原理与实现引入课程中。


「软件匠艺社区」旨在传播匠艺精神,通过分享好的「工作方式」和「习惯」以帮助程序员更加快乐高效地编程。
共收到 1 条回复
469
111ibm111 · #1 ·

等有空就列一些Java语言描述的计算机专业书籍

需要 Sign In 后回复方可回复, 如果你还没有账号你可以 Sign Up 一个帐号。