像计算机科学家一样思考Java - (EPUB全文下载)
文件大小:1.4 mb。
文件格式:epub 格式。
书籍内容:
像计算机科学家一样思考Java
[美] Allen B. Downey 著
滕云 周哲武 译
人民邮电出版社
北京
内容提要
本书作者基于自己在美国各所大学和学院讲授计算机科学导论课程的经验,开创了“像计算机科学家一样思考(How to Think Like a Computer Scientist)”的教学理念和方法。本书正是基于这样的方法,用全新的角度、丰富的实例全面地讲解了Java语言。
全书共15章。第1章介绍了编程的基本知识,即什么是编程以及如何编程。第2章到第4章分别介绍了变量和类型、无返回值方法、条件语句和递归等基础知识;第6章到第9章分别介绍了带返回值的方法、迭代、循环、字符串和可变对象;第 11 章到第 15 章则分别介绍了对象、数组、面向对象编程等相对高级的话题。全书贯穿了一个GridWorld的程序示例,分三个部分逐步扩展,分别在第 5 章、第 10 章和第 16 章介绍,用以巩固前面相应各章所介绍的知识和概念。附录 A 介绍了 Java图形编程,附录 B介绍了 Java中的输入输出,附录C和D分别从程序开发和调试的角度给出了有用的建议。
本书适合 Java的初学者和初级程序员阅读,也可以作为相关专业或培训的教程使用。通过学习本书,读者不仅可以在 Java方面达到初窥门径的效果,同时对于如何掌握和应用计算机编程这门技艺也会有一个全面而科学的认识。
作者简介
Allen B. Downey是美国Olin工程学院的计算机科学副教授。他曾经在Wellesley College、Colby College和U.C. Berkeley教授计算机科学课程。他在MIT获得学士和硕士学位,并且从U.C. Berkeley获得计算机科学博士学位。Allen基于自己教授计算机程序设计课程的经验,开创了“像计算机科学家一样思考(How to Think Like a Computer Scientist)”的教学理念和方法,并由此编写了几本程序设计语言的图书。其中,《Think Python》、《Think Complexity》由O’Reilly出版;《Think Java》、《Think C++》也广受关注和好评。
译者简介
滕云,ThoughtWorks软件工程师,目前主要从事企业级软件开发,擅长技术包括C/C++、Java、Ruby、Linux和测试自动化等。爱听古典音乐,尤其是贝多芬;爱写诗词,尤其是长短句;爱吃川菜,尤其是回锅肉。个人博客:http://www.davenkin.me。腾讯微博:@无知者云
周哲武,码农,躬耕于 ThoughtWorks,不求闻达于诸侯,但求程序之乐。性喜静、好宅、好酒,更好书。尝以为不写代码即解决客户问题为善之善者,干净优雅代码解决问题次之。近年专注于企业级应用开发,擅长各种自动化测试策略,以及遗留系统代码重构。新浪微博:@牧野飞霜
前言
我们从别人的发明中享受了很大益处,我们也应该乐于以我们的任何一种发明为别人服务,并且这种事我们应该自愿地和慷慨地去做。
——本杰明·富兰克林,引用自Edmund S. Morgan所著的《本杰明·富兰克林传》
我为什么写这本书
1999 年,当我还在科尔比学院教书的时候,我便开始写这本书了。现在,这已经是第5个版本了。那时,我正使用Java程序设计语言来教授计算机科学导论课程,但始终没有找到一本合适的教材。一方面,这些书的内容太多,让学生去阅读一本800页的技术书籍显然不可能,即便是我硬叫他们去读也不可能,更何况我并不想他们这么做。另外,书中多数内容的针对性都很强,比如 Java 语言的细节和 Java类库等内容,而这些类库在学期结束时很有可能就已经过时了。这样的书籍显然不是我需要的。
另一方面,我发现一开始就讲面向对象编程并不合适。很多在其他方面表现得很好的学生,一旦接触到对象就一头雾水了。于是我开始写这本书,每天写一章,一共写了13天,第14天编辑,然后是复印和装订。上课第一天我便把书分发给学生们,并叫他们每周阅读一章,这样一来,他们阅读的速度比我书写的速度慢了7倍。
背后的哲学
以下是我写这本书的一些想法:
• 词汇很重要。学生应该有能力去讨论程序并且能够听懂我所讲的话。我尝试着引入尽可能少的术语,并在第一次使用这些术语时精心地给出定义,然后在每章的最后附上术语表。在我的课程中,我会在小测验和考试中包含一些和词汇相关的题目,然后要求学生使用恰当的术语进行回答。
• 要编写程序。学生应该理解算法,知晓程序设计语言本身,并能够调试程序。太多的书籍都将程序调试内容给忽略掉了。本书最后的附录D讲述程序调试的内容,附录C讨论程序开发内容(可以帮你避免调试)。我建议学生们尽早地阅读这些内容,并且时常回过头来复习。
• 有些概念需要时间来消化。对于一些较难的内容,本书将反复讲到,这样可以给学生更多的机会去复习和巩固。如果第一次没有学会,可以在后面赶上。
• 我试图尽量少地使用 Java 语言来教会学生获得尽量多的编程能力。本书的目的在于教学生如何编写程序和一些计算机科学导论方面的概念,而不是 Java语言。因此,我去除了一些Java语言特性方面的内容,比如switch语句便没有必要了,多数类库也不在本书的教授范围之内,特别是一直在变并很可能被替换掉的AWT。
这种最小化的方式有它的优点。除了章后练习,每章大概10页左右。在我的课程中,我要求学生提前阅读要讲的章节,他们都愿意这么做并且理解得很好。这样一来,我们便有时间来讨论一些更抽象的内容、做一些课内练习和学习本书之外的内容。
但是,这种最小化方式也有缺点。从本质上讲,这种方式没有多少有趣的地方。书中的多数例子只是在展现基本的语言特性,并且很多练习都包含了字符串操作和数学相关的知识。我认为其中的一些内容是有趣的,但是还有很多能够激发学生兴趣的内容,比如图形、声音和网络应用只是一带而过。
问题在于,很多令人兴奋的内容都包含大量的细节,而其中的概念并不多。从教学上讲,这样浪费了太多的努力 ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 像计算机科学家一样思考Java - (EPUB全文下载)