扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
一.资料图片
二.资料简介
“当我们享受他人的发明带来的巨大便利时,也应该很乐意提供一个用自己的发明来为别人服务的机会,而且我们应该慷慨地免费地这样做。”——本杰明•富兰克林 引自 埃德蒙德•S•摩根 著《本杰明•富兰克林传》
为什么要写这本书
这是我在 1999 年于 Colby 大学任教时所著一书的第四版。其时我任教一门用 Java 语言讲解的计算机科学课程,但是苦于找不到自己喜欢的教科书。首先,那些教材太大部头了!即使我想让学生读这些动辄 800 多页密密麻麻的技术手册,他们也办不到。而且我也不想让他们那么做。这些资料大多太过专注于 Java 语言的特定细节和一些到了期末就会被学生忘得干干净净的类库,这些东西把我真正想找的材料搞的扑朔迷离。
另外一个问题是,对于面向对象程序设计的介绍太草率,使得很多在其它部分学得很好的学生一讲到“对象”就碰壁,甚至不管在开学、中间还是期末同样如此。
于是我开始了本书的编写,十三天时间里每天写一章,第十四天进行编辑校订,然后把书送去复印装订。在开课第一天把书发到学生手里的时候,我告诉他们希望他们一个星期读一章,换句话说,他们的阅读速度应该是我写作速度的
背后的哲学观
下面是一些指导本书编写并使之得以别具一格的主要观念:
● 词汇表很重要。学生必须能够谈论“程序”并且明白是在说什么。我力图介绍尽量少的术语;第一次遇到一个术语就进行精心定义;每一章后面都专门列出新词表。在教学中,随堂测验和考试都有词汇测试题,要求学生用适当的词进行简要回答。
●为了编写程序,学生要懂得算法(algorithm)、了解编程语言,而且还要有调试程序的能力才行。太多的书遗漏了调试的知识。而这本书有一个关于调试的附录和一个关于程序开发(帮助避免进行不必要调试)的附录。我建议尽早阅读并且经常回顾这些材料。
●一些概念需要时间来了解。本书中一些较难以理解的概念比如递归,反复出现了数次。通过反复提到这些概念,让学生有机会复习巩固,或者是如果第一次漏过了也还有机会可以补上来。
●力图用少的 Java 语句实现 强大的编程能力。本书的目的是传授编程和计算机科学的一些引导性概念,而不是讲授 Java 语言本身。我有意不讲一些语言特性,例如并非必要的 switch 语句,还有大多数类库,特别是像 AWT 这样保持快速更新而且极可能被取代的类库。
采取风格简约的写作方法有很多优点。不包括练习的话每章大约十页。上课讨论之前要求学生先通读一遍该章——他们乐意这样做并且对课本理解的很充分。这些准备让课堂上有充分的时间讨论较难的材料,包括课堂作业,还有不在课本中的补充话题。
当然,简约并非十全十美。在这里没有多少本质上有趣的东西,我所用的大多数例子主要是为了演示一种语言结构的 基本用法,因此大多数练习潜心于字符串操作和数学概念。我认为这些东西有一部分还是很有趣,但是更多能让学生对计算机科学产生浓烈兴趣的东西诸如图形处理、声音处理和网络应用等等,却被一笔带过了。
原因在于,很多更加有趣的内容却包含了大量的细节而不是更多的概念。从教育学的角度来看,这意味着不值得投入更多的注意力。所以,在讨学生喜欢的材料和智力含量更高的材料之间采取了折衷的选择。我希望使用这本书的时候师可以自己找到对他所教班级学生来说 好的平衡点。为了帮助教学,这本书有一个涵盖了图形、键盘输入输出的附录。