关于以Thinking in Java为课本的Java教与学的方法

来源:互联网 发布:php比较文件内容 编辑:程序博客网 时间:2024/05/24 04:59

      在目前的关于java自学的讨论中,最经常看到的就是钻研《Thinking in java》(TIJ)的经验,但是,尽管使用TIJ作为教学材料的教学行为也很多,我却尚未发现有从教师关于如何将TIJ用于教学的论述。为此,我权作抛砖引玉。

     首先,为什么要学习java?按照Eckel的话说,因为它是一个具有某种革命性意义的语言,即第一个“以提高开发人员的编程体验为主要目标的编程语言”,它的垃圾回收特性、可扩展性、跨平台特性等都为程序员们所称道,也为Sun公司赢得了声誉。在2002年左右的调查中,发现在北美已经有44%的程序员使用java作为主要编程语言,而且java程序员们的年薪比使用其他编程语言程序员们的年薪高(其实程序设计应被视为一门艺术,不可以用钱来衡量)。直至现在,不论在服务器/客户端(服务器/浏览器)架构的管理信息系统、复杂交互式网站,还是在将会流行的3G移动开发方面,java应用都有很好的前景。

    其次,在学生已有基本的C/C++基础的情况下,应当如何教学java?

    1、使用经典教材。最笨的方法其实是最聪明的方法,经典教材的学习不能速成,但其实是更快的路(http://blog.youxu.info/2009/08/06/my-undergraduate-year/)。TIJ是面向java培训的教材,在写作上较多考虑到了教学的需要。当然,有些文化上的因素需要适应中国学生,比如18页“An object provides services”一节实际上想用“服务”这个词来引导读者到“协作性”的概念,或许西方思维中确实如此,但在我们的教学中,这样讲反而会令学生产生陌生感。还有一些基础知识介绍的欠缺,比如需要补充详细的实验步骤指导。但是,除了这些缺点以外,这本书在知识点的循序渐进上还是处理得非常恰当的。而且,这本书考虑到了在讲授基本语言特性的过程中培养学生的良好编程习惯,比如它在第二章刚开始讲完第一个程序,就立即介绍文档的重要性以及如何自动生成文档等。把培养良好编程习惯纳为一个教材设计目标,这是很值得称道的。最后,这本书内涵了面向对象设计思想和编程行业的文化,这种表现很多,比如前几章开头的那些文化论述,具体的再如在介绍文档的时候,把文档自动抽取的意义定位为一个支持协作的java基础设施。我所理解的,是这些特性使得这本书成为一本国外声誉斐然,值得为之开发教学设计的英文经典教材。
    2、开放的网络教学环境。对于国内学生,非常需要加强在开放环境中获取知识的能力培养。国内外的各种编程社区都比较红火,原因不言自明,程序设计中很多隐性知识(非系统化的零散知识,如某API的用法或某刚推出的新技术)都是通过网络获取的,而对于java这种被很多开源项目所使用的跨平台、易扩展、适合大规模协作的语言,网络社区作为知识分享和交流的平台更加重要。过去,我曾经把google group作为配合数据结构课堂教学的网络教学平台,作为课外交流、技术讨论、各类展示交流之用,是比较成功的,当然了,那是一个封闭的平台,只有师生、生生间的交流。学生课程结束后,将这种网络获取知识的能力移植到实际工作中会有一个坎,如同实验室繁殖的生物直接放进自然环境时一样。如果采用CSDN等开放的平台,将会使学生更容易地从其他专家那里获得知识,适应一个开放、独立的网络交流氛围,扩大学习视野,为学生在课程结束后融入编程社区继续学习做好准备。

    3、使用英文教材。国家对本科生的培养目标其实是高的,比如本科毕业答辩时必须要有英文摘要,还要有3000字的英文文献翻译,是为了确保每个本科生毕业时都具有英文文献阅读的能力,但教学实践的落后,导致学生这方面的能力目标无法达到。过去,计算机领域还有过“计算机英文”这门课程,但是,其实教学难度很高,所以后来取消了。实际上,英文文献阅读确实是非常重要的,计算机领域日新月异,往往都是先有了英文版,然后再出中文版。Java领域也是如此,英文能力如果拖到学生工作以后再培养,很多学生会失败,部分是由于自身学习习惯的原因,也部分是因为专业教育基础的不足。TIJ的英文是比较浅显的,也是比较地道的计算机英语,应当作为学生的第一门使用英文教材的科目。

    暂时只想到了这些,愿我们有一个好的开始!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Florianjin/archive/2010/02/25/5324216.aspx