华信教育资源网
Java程序设计教程(第八版)(英文版)
丛   书   名: 国外计算机科学教材系列
作   译   者:(美)John Lewis(约翰 ? 刘易斯),(美)William Loftus(威廉 ? 洛夫特斯) 出 版 日 期:2018-09-01
出   版   社:电子工业出版社 维   护   人:冯小贝 
书   代   号:G0331040 I S B N:9787121331046

图书简介:

本书对面向对象的思想和机制进行了准确而透彻的剖析,为读者深入学习Java语言程序设计提供了全面、详细的指导,并在前几版的基础上进行了全面的修订与更新。全书覆盖了面向对象设计的广泛内容,介绍了Java语言的基本数据类型、流程控制、类和对象等。在深入分析面向对象设计方法的基础上,介绍了封装机制、继承机制和多态性的实现与应用、异常的捕捉和处理、集合类的定义方法和泛型类的概念,书中提供了大量具有可实践性的程序实例、自测题及答案、练习题和编程项目、生动的"软件失误案例”和"视频讲解”学习辅导短片,并且在每章中都补充了针对本章主题的图形用户界面(GUI)设计知识和实例,这部分内容可形成完整的Java GUI设计知识体系。此外,本书还有内容丰富的附录,并提供了在线程序设计实践网站服务。
您的专属联系人更多
关注 评论(3) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
    图书特别说明:由于成本考虑,本书不作为参考书赠送。如果确有授课教材选用的需求,可将详细情况发送给本书专属联系人,我们将进一步沟通并酌情处理。

    本书资源

    本书暂无资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书对面向对象的思想和机制进行了准确而透彻的剖析,为读者深入学习Java语言程序设计提供了全面、详细的指导,并在前几版的基础上进行了全面的修订与更新。全书覆盖了面向对象设计的广泛内容,介绍了Java语言的基本数据类型、流程控制、类和对象等。在深入分析面向对象设计方法的基础上,介绍了封装机制、继承机制和多态性的实现与应用、异常的捕捉和处理、集合类的定义方法和泛型类的概念,书中提供了大量具有可实践性的程序实例、自测题及答案、练习题和编程项目、生动的"软件失误案例”和"视频讲解”学习辅导短片,并且在每章中都补充了针对本章主题的图形用户界面(GUI)设计知识和实例,这部分内容可形成完整的Java GUI设计知识体系。此外,本书还有内容丰富的附录,并提供了在线程序设计实践网站服务。

    图书详情

    ISBN:9787121331046
    开 本:16开
    页 数:832
    字 数:1514.0

    本书目录

    Contents
    
    
    Chapter 1 Introduction 1
    1.1 Computer Processing 2
    Software Categories 3
    Digital Computers 5
    Binary Numbers 7
    1.2 Hardware Components 10
    Computer Architecture 11
    Input/Output Devices 12
    Main Memory and Secondary Memory 13
    The Central Processing Unit 17
    1.3 Networks 20
    Network Connections 20
    Local-Area Networks and Wide-Area Networks 22
    The Internet 23
    The World Wide Web 24
    Uniform Resource Locators 25
    1.4 The Java Programming Language 26
    A Java Program 28
    Comments 30
    Identifiers and Reserved Words 31
    White Space 34
    1.5 Program Development 36
    Programming Language Levels 36
    Editors, Compilers, and Interpreters 39
    Development Environments 40
    Syntax and Semantics 41
    Errors 42
    1.6 Object-Oriented Programming 44
    Problem Solving 45
    Object-Oriented Software Principles 46
    Chapter 2 Data and Expressions 57
    2.1 Character Strings 58
    The print and println Methods 58
    String Concatenation 60
    Escape Sequences 63
    2.2 Variables and Assignment 65
    Variables 65
    The Assignment Statement 67
    Constants 69
    2.3 Primitive Data Types 71
    Integers and Floating Points 71
    Characters 73
    Booleans 74
    2.4 Expressions 75
    Arithmetic Operators 75
    Operator Precedence 76
    Increment and Decrement Operators 80
    Assignment Operators 81
    2.5 Data Conversion 83
    Conversion Techniques 85
    2.6 Interactive Programs 87
    The Scanner Class 87
    2.7 Graphics 92
    Coordinate Systems 92
    Representing Color 94
    2.8 Applets 95
    Executing Applets Using the Web 98
    2.9 Drawing Shapes 99
    The Graphics Class 99
    Software Failure:
    NASA Mars Climate Orbiter and Polar Lander 111
    Chapter 3 Using Classes and Objects 113
    3.1 Creating Objects 114
    Aliases 116
    3.2 The String Class 118
    3.3 Packages 122
    The import Declaration 124
    3.4 The Random Class 126
    3.5 The Math Class 129
    3.6 Formatting Output 132
    The NumberFormat Class 132
    The DecimalFormat Class 134
    The printf Method 135
    3.7 Enumerated Types 138
    3.8 Wrapper Classes 141
    Autoboxing 143
    3.9 Components and Containers 143
    Frames and Panels 144
    3.10 Nested Panels 148
    3.11 Images 151
    Chapter 4 Writing Classes 159
    4.1 Classes and Objects Revisited 160
    4.2 Anatomy of a Class 162
    Instance Data 167
    UML Class Diagrams 167
    4.3 Encapsulation 169
    Visibility Modifiers 170
    Accessors and Mutators 171
    4.4 Anatomy of a Method 172
    The return Statement 174
    Parameters 175
    
    Local Data 175
    Bank Account Example 176
    4.5 Constructors Revisited 181
    4.6 Graphical Objects 182
    4.7 Graphical User Interfaces 191
    4.8 Buttons 192
    4.9 Text Fields 196
    Software Failure:
    Denver Airport Baggage Handling System 205
    Chapter 5 Conditionals and Loops 207
    5.1 Boolean Expressions 208
    Equality and Relational Operators 209
    Logical Operators 210
    5.2 The if Statement 213
    The if-else Statement 216
    Using Block Statements 219
    Nested if Statements 223
    5.3 Comparing Data 226
    Comparing Floats 226
    Comparing Characters 227
    Comparing Objects 228
    5.4 The while Statement 230
    Infinite Loops 234
    Nested Loops 236
    The break and continue Statements 239
    5.5 Iterators 241
    Reading Text Files 242
    5.6 The ArrayList Class 245
    5.7 Determining Event Sources 248
    5.8 C heck Boxes and Radio Buttons 251
    Check Boxes 251
    Radio Buttons 255
    Software Failure:
    Therac-25 267
    Chapter 6 More Conditionals and Loops 269
    6.1 The switch Statement 270
    6.2 The Conditional Operator 274
    6.3 The do Statement 275
    6.4 The for Statement 279
    The for-each Loop 282
    Comparing Loops 284
    6.5 Drawing with Loops and Conditionals 285
    6.6 Dialog Boxes 291
    Chapter 7 Object-Oriented Design 301
    7.1 Software Development Activities 302
    7.2 Identifying Classes and Objects 303
    Assigning Responsibilities 305
    7.3 Static Class Members 305
    Static Variables 306
    Static Methods 306
    7.4 C lass Relationships 310
    Dependency 310
    Dependencies Among Objects of the Same Class 310
    Aggregation 316
    The this Reference 320
    7.5 Interfaces 322
    The Comparable Interface 327
    The Iterator Interface 328
    7.6 Enumerated Types Revisited 329
    7.7 Method Design 332
    Method Decomposition 333
    Method Parameters Revisited 338
    7.8 Method Overloading 343
    7.9 Testing 345
    Reviews 346
    Defect Testing 346
    7.10 GUI Design 349
    7.11 Layout Managers 350
    Flow Layout 352
    Border Layout 356
    Grid Layout 359
    Box Layout 361
    7.12 Borders 365
    7.13 C ontainment Hierarchies 369
    Software Failure:
    2003 Northeast Blackout 377
    Chapter 8 A rrays 379
    8.1 A rray Elements 380
    8.2 Declaring and Using Arrays 381
    Bounds Checking 384
    Alternate Array Syntax 389
    Initializer Lists 389
    Arrays as Parameters 390
    8.3 A rrays of Objects 392
    8.4 C ommand-Line Arguments 402
    8.5 Variable Length Parameter Lists 404
    8.6 Two-Dimensional Arrays 408
    Multidimensional Arrays 412
    8.7 P olygons and Polylines 413
    The Polygon Class 416
    8.8 Mouse Events 418
    8.9 Key Events 427
    Software Failure:
    LA Air Traffic Control 441
    Chapter 9 Inheritance 443
    9.1 C reating Subclasses 444
    The protected Modifier 447
    The super Reference 450
    Multiple Inheritance 453
    9.2 Overriding Methods 455
    Shadowing Variables 457
    9.3 C lass Hierarchies 458
    The Object Class 460
    Abstract Classes 461
    Interface Hierarchies 463
    9.4 Visibility 463
    9.5 Designing for Inheritance 466
    Restricting Inheritance 467
    9.6 The Component Class Hierarchy 468
    9.7 Extending Adapter Classes 471
    9.8 The Timer Class 475
    Software Failure:
    Ariane 5 Flight 501 485
    Chapter 10 P olymorphism 487
    10.1 Late Binding 488
    10.2 P olymorphism via Inheritance 489
    10.3 P olymorphism via Interfaces 502
    10.4 Sorting 504
    Selection Sort 505
    Insertion Sort 511
    Comparing Sorts 512
    10.5 Searching 513
    Linear Search 513
    Binary Search 515
    Comparing Searches 519
    10.6 Designing for Polymorphism 519
    10.7 Event Processing 521
    10.8 F ile Choosers 522
    10.9 C olor Choosers 525
    10.10 Sliders 527
    Chapter 11 Exceptions 537
    11.1 Exception Handling 538
    11.2 Uncaught Exceptions 539
    11.3 The try-catch Statement 540
    The finally Clause 544
    11.4 Exception Propagation 545
    11.5 The Exception Class Hierarchy 549
    Checked and Unchecked Exceptions 552
    11.6 I/O Exceptions 553
    11.7 Tool Tips and Mnemonics 557
    11.8 C ombo Boxes 564
    11.9 Scroll Panes 569
    11.10 Split Panes 572
    Chapter 12 R ecursion 583
    12.1 R ecursive Thinking 584
    Infinite Recursion 584
    Recursion in Math 585
    12.2 R ecursive Programming 586
    Recursion vs. Iteration 589
    Direct vs. Indirect Recursion 589
    12.3 Using Recursion 590
    Traversing a Maze 591
    The Towers of Hanoi 596
    12.4 R ecursion in Graphics 601
    Tiled Pictures 601
    Fractals 604
    Chapter 13 Collections 617
    13.1 C ollections and Data Structures 618
    Separating Interface from Implementation 618
    13.2 Dynamic Representations 619
    Dynamic Structures 619
    A Dynamically Linked List 620
    Other Dynamic List Representations 625
    13.3 Linear Data Structures 627
    Queues 627
    Stacks 628
    13.4 Non-Linear Data Structures 631
    Trees 631
    Graphs 632
    13.5 The Java Collections API 634
    Generics 634
    Appendix A	Glossary 641
    Appendix B Number Systems 665
    Appendix C	The Unicode Character Set 673
    Appendix D Java Operators 677
    Appendix E Java Modifiers 683
    Appendix F	Java Coding Guidelines 687
    Appendix G Java Applets 693
    Appendix H R egular Expressions 695
    Appendix I Javadoc Documentation Generator 697
    Appendix J The PaintBox Project 703
    Appendix K GUI Events 715
    Appendix L Java Syntax 719
    Appendix M The Java Class Library 733
    Appendix N A nswers to Self-Review Questions 735
    Index 789
    展开

    前     言

    导读
    
    诞生于20世纪90年代中期的Java编程语言,开创了一个全新的编程思维模式,并迅速风靡于整个IT业界。从Java开始,涌现出了许多各具特色的面向对象编程工具。Java语言不仅可用于开发大型软件,而且也特别适合于开发Web应用,目前已成为网络时代最重要的程序设计语言之一,并且其开发工具和功能也正随着网络技术的不断发展而同步进行更新。Java语言已经成为事实上适合初学者学习面向对象程序设计的首选语言。
    本书是一本学习Java编程的入门性教材,也是读者初步了解面向对象思想及实现方法的一本理想读物。全书深入、透彻地分析了Java语言的面向对象机制,指导读者如何在学会设计类和对象前先学会使用类和对象,以大量程序实例体现了面向对象的核心概念(如类、对象、重载、接口及多态性等)和封装、继承等机制,并基于解决问题的思路灵活运用各种Java程序设计技术,详细示范了一些典型算法的实现方法。
    本书注重完整的程序设计实践,每一章都附有大量具有可实践性的程序实例、自测题、练习题、编程项目,以及富有趣味性的图形用户界面设计实例,以着重培养读者的软件设计能力和解决问题的能力。每章末尾的“软件失误案例”虽然短小,但它们是来自于现实世界的惨痛教训,其目的在于培养读者(未来的程序员)“质量高于一切”的思想,强调良好的软件设计思想和严谨合理的设计规范的重要性。各章末尾的“图形设计之路”部分,为图形设计的教学提供了较大的灵活性,它们可作为相对独立的一部分根据需要在教学上进行取舍。
    本书在前一版的基础上,优化了程序实例的屏幕输出结果,对练习题和编程项目进行了调整,以更适应教学的要求。此外,对占本书相当篇幅的附录进行了全面更新,以反映Java语言本身的调整并与正文各章相呼应。
    
    本书中译本译者
    
    
    
    前言
    
    欢迎使用本书第八版。多年来,本书能够得到广大师生的厚爱,这使作者深感欣慰。这一版本做了进一步的内容优化和完善,充实了一些关键技术问题的重点讲解和概念分析。
    本版的改进
    本书中最大的几处变化如下:
    更新了所有的屏幕截图结果。
    新增的屏幕截图用于展示界面选项。
    优化了各章末尾的练习题及编程项目。
    调整了所有的代码,以保持缩进及间距的一致性。
    强化对Java翻译、文本文件输入/输出(I/O)及其他几个主题的讨论。
    来自读者的反馈意见表明,本书的内容及基本结构符合教学的需求。因此本版仍然以一种清晰且渐进的方式突出核心的基础概念,并在每一章的“图形设计之路”(Graphics Track)部分讨论图形和图形用户界面(GUI),为图形设计的教学提供较大的灵活性。此外,本书轻松随意的文风和颇有趣味的程序实例一直是吸引读者的亮点。
    书中展示的针对图形程序而截取的屏幕截图,包括那些具有GUI的程序,都已经进行了更新。以前的几个版本在编排上有些过时,因此这一版本中对此进行了更新,以方便教学。
    对于某些图形程序,增加了更多的屏幕截图,以方便展示在不同情形下或者窗口尺寸有变化时程序窗口的显示效果。
    这一版本中,还着重强调了每一章末尾的练习题和编程项目。新版对这些内容进行了添加、提炼和修改,以提供更合适、更反映现实的实践题集。
    贯穿全书的示例,在某些方面存在与空白字符的用法不一致的情况。作者仔细检查了每一个示例,并对代码段进行了梳理,以尽量确保符合空白字符用法的要求。
    最后,按照惯例,书中强化了对问题的分析,虽然有些是一笔带过,但更多的是深入探讨。特别是第1章突出了对Java翻译过程的讲解,而全书强调的是术语JVM(Java 虚拟机)而不是“解释器”(interpreter)。用于解释Java翻译过程的图示也进行了更新。书中还更新了关于文本文件输入/输出的讨论,并给出了新的示例。
    本书的基石
    本书是基于下面的基本思想编写的,相信这有助于使其成为一本优秀的教材。
    真正的面向对象。讲解完全面向对象方法的教材必须使用对象语言,即所有问题都应该用面向对象的术语来讨论。但这并不意味着对书中的第一个程序就必须讨论多个类和方法的编写方式,学生应当在学会编写对象之前先了解如何使用对象。本书采用一种自然的学习进程,使学生逐步达到具有设计实际的面向对象解决方案的能力。
    良好的程序设计实践。本书的主要目的不是教学生如何编程,而是讲解如何写出好的软件。二者是有差别的。编写软件并不是按照说明完成一套动作,一个好程序也远非仅仅是一些语句的集合。本书汇集了一些可作为良好程序设计基础的实践经验,它们不仅应用于本书所有的实例,而且还会在讨论中进一步强化。学生将学会如何解决问题及如何实现设计方案。全书贯穿了基本的软件工程技术的讲解,“软件失误案例”通过生动的实例展示了不遵循这些程序设计实践原则所带来的后果,它们是软件工程基本技术的补充。
    程序实例。通过程序实例来学习编程是一种最佳途径。全书通过大量已完整实现的实例来讲解特定的概念。书中穿插列举了易于理解的小例子和实用的大例子,二者相辅相成,并对图形和非图形实例的采用进行了合理的选择。
    图形用户界面。图形能够激发学生极大的学习兴趣,而且图形设计可以充当面向对象应用的绝佳实例。因此,几乎每一章都安排了精心设计的几部分,称为“图形设计之路”,它们包含事件处理和图形用户界面的使用。随着图形设计主题讨论的进展,学生将很自然地学会以适当的方式创建GUI。对于不需要学习图形设计的学生,则可以跳过这部分内容。
    各章概述
    第1章(计算机系统概述)一般性地介绍计算机系统,包括计算机基本结构和硬件、网络、程序设计及语言翻译。本章对Java语言也进行了介绍,并讨论了通用程序开发的基础和面向对象编程。这一章广泛涵盖了学生需要了解的开发环境介绍。
    第2章(数据与表达式)探讨Java程序中使用的一些基本数据类型和计算表达式的用法,还讲解了数据类型间的转换及如何借助标准的Scanner类与用户进行交互式输入。
    第3章(类与对象)讲解预定义类的使用及其对象的创建方法。这些类和对象用于处理字符串、产生随机数、执行复杂计算和格式化输出。此外还讨论了枚举数据类型。
    第4章(编写类)分析了与类和方法的编写有关的问题,包括实例数据、可见性、引用范围、方法参数和返回类型。此外还讨论了封装和构造方法。与编写类相关的其他问题在第6章讨论。
    第5章(条件判断与循环)讨论用于判断的布尔表达式的用法,然后详细地讲解了if语句和while循环语句。一旦建立了循环,就可引入迭代的概念,并进一步讨论用Scanner类不断接收、解析输入数据及读取文本文件的方法。最后,介绍了可用于管理大量对象的ArrayList类。
    第6章(其他条件判断与循环)讨论第5章未涉及的其他Java条件语句(switch)和循环语句(do,for),包括for循环语句的增强版本。for-each循环语句也可用于处理迭代和ArrayList对象。
    第7章(面向对象设计)进一步深入和扩展了关于类的设计问题的讨论,包括解决问题时需要确定类和对象的识别技术,以及类与对象间的关系。本章还探讨了静态类成员、接口及枚举型类的设计。这一章对方法设计和方法重载也进行了讨论。
    第8章(数组)详细讲解了数组及数组的处理。将作为最基本的程序设计数据结构的数组与高层次的对象管理方法进行了对比分析。此外,还讨论了命令行参数、可变长度参数表及多维数组。
    第9章(继承)讲解类的派生及其相关概念,例如类层次、重写和可见性。本章还强调了应合理使用继承性,以及在软件设计中使用继承的原则。
    第10章(多态性)探讨了绑定的概念及绑定与多态性的关系。接着,讲解了如何使用继承或接口实现多态性,并利用排序示范了多态性。最后,讨论了有关多态性的程序设计问题。
    第11章(异常)关注Java标准库中用于定义异常的类层次结构,以及定义用户异常对象的方法。同时还讨论了处理输入/输出异常时的方法,并分析了一个编写文本文件的程序实例。
    第12章(递归)讲解递归的概念、递归的实现及合理使用递归的方法,并利用几个不同应用领域的程序实例,演示了递归技术如何使得某些特定问题解决得更完美。
    第13章(集合)涉及集合的概念及其基本数据结构,并进一步探讨了抽象概念和经典的数据结构。此外,还介绍了泛型。本章可作为CS2(计算机科学课程第二阶段)的入门性内容。
    补充资料①
    学生的在线资源
    可从本书的关联网站www.pearsonhighered.com/lewis获取如下的学生在线资源:
    书中所有程序的源代码。
    Java 开发环境的链接。
    在线练习和评估②
    MyProgrammingLab(“程序设计实验室”)可帮助学生全面掌握程序设计的逻辑性、语义和句法。在“编程项目”中,学生可以进行实际的练习并即时获得问题反馈信息,从而可提高那些对一些常用的基本概念和高级程序设计语言范例感到困惑的初学者的编程能力。
    MyProgrammingLab是一个辅助学生自主学习和完成课外作业的工具,其中包括了配合本书教学内容和组织结构的数百个小型练习题。对于学生,该工具可对学生提交的代码自动检查逻辑和句法错误,并提供明确的错误提示信息,使学生能够分析出错在何处、为什么出错。对于教师,该工具提供了一个综合性的记分册,可跟踪记录学生的正确答案和错误答案,并可保存学生提交的代码供教师审阅。
    MyProgrammingLab提供给本书读者使用,实现该工具的合作方是TC(Turing’s Craft),即CodeLab 交互式程序设计训练系统的开发者。通过查看来自教师和学生的反馈信息,或在学习本书课程时使用该工具(访问网站www.myprogramminglab.com),可以全面了解MyProgrammingLab的功能和用法。
    教师资源③
    下面的补充材料仅供教师使用。访问培生教育教师资源中心(www.pearsonhighered.com/irc),可以得到如何获取下述资源的信息:
    幻灯片文件——使用PowerPoint制作的幻灯片。
    习题答案——包括习题解答和编程项目解答。
    测试库(具有功能强大的试题生成软件)——包括大量的简答题、多项选择题和判断题。
    实验手册——提供用于辅助和配合教材中知识点教学的实验练习。
    本书特点
    重点概念全书用“重点概念”文本框显示基础概念和重点指导,并在每章结束时总结了所有的重点概念。
    程序列表本书对所有的程序示例都进行了编号,并在程序后面给出了程序的输出结果、运行实例或者屏幕截图。程序中的代码用不同的灰度进行区分,以突出注释和保留字。
    语法流程图书中以特殊的流程图方式讨论了Java语言的语法元素,语法流程图清晰地描述了一条语句或语句构造的有效格式。Java语言的完整语法流程图在附录K中给出。
    图形设计之路所有关于图形与GUI处理的讨论都安排在每章的最后几节中(带有“*”图标),这部分内容称为“图形设计之路”。如果忽略这部分内容,也不会影响全书的完整性,而且也可以按照需要专门关注“图形设计之路”的内容。每个“图形设计之路”的内容都与其所在章的讨论主题相关。
    重点概念小结每章末尾都给出了该章重点概念的小结。
    自测题和答案每章给出的自测题是对该章建立的基本概念和术语的复习,并且可以使学生评估自己对该章学习内容的掌握程度。自测题的答案在附录M中给出。
    练习题这些阶段性的练习题涉及计算、分析或编写代码段,它们要求对本章内容有全面的理解。尽管练习题可能涉及代码编写,但通常并不需要上机实践。
    编程项目编程项目要求设计和实现Java程序,难易程度变化很大。
    MyProgrammingLab在MyProgrammingLab中,学生可以进行实际的练习并即时获得问题反馈信息,从而可提高那些对一些常用的基本概念和高级程序设计语言范例感到困惑的初学者的编程能力。
    软件失误案例一些穿插在各章之间的短文讨论了现实世界中软件设计的种种缺陷,激励学生从编程学习的开始就注意学习应用良好的软件设计原则。
    致谢
    非常感激世界各地的教师和学生们对本书以前各个版本提出的宝贵意见与建议。我们很高兴地看到教师对学生的深切关心和学生对知识的渴求,并欢迎你们继续对本书给出评价和质疑。
    特别感谢Brigham Young大学的Robert Burton为本书提供的热心帮助、深刻见解及密切关注。多年来,Robert一直不断地提出有助于完善和改进本书的有价值的反馈意见。
    Simon Fraser大学的Brian Fraser最近也提出了一些非常好的反馈意见,有助于澄清这一版中的一些问题。我们深切感受到,与计算机教育者之间的这种交流的确有益。
    感谢Villanova大学的Dan Joyce,是他完成了自测题的编写工作,并确保有足够的自测题覆盖本书中每一个相关的主题。
    我们不断地惊叹于Pearson出版社为本书付出的才智和努力。本书编辑Matt Goldstein具有惊人的洞察力和责任心;他的助手Kelsey Loanes一直给我们提供帮助和支持;市场部经理Yez Alayan使我们确信教师们能够理解和认同本书在教学方法方面的优势;天才的Joyce Wells为本书设计了封面;Scott Disanno、Marilyn Lloyd 和Kayla Smith-Tarbox为本书的出版付出了辛劳。Addison-Wesley项目组还得到了Cenveo Publisher Services的一个思维敏锐的出版项目组的支持,其中由Jerilyn Bockorick 负责全书版面的美工设计、Harleen Chopra负责项目管理。我们感谢所有确保这本书达到高质量出版标准的人们。
    特别要感谢下面这些人,他们通过兴趣小组、访谈、评论等不同方式为本书提供了有价值的建议。他们及其他许多的教师和朋友,都为本书提供过很好的反馈。这些人的名单如下:
    Elizabeth Adams	James Madison University
    Hossein Assadipour	Rutgers University
    David Atkins	University of Oregon
    Lewis Barnett	University of Richmond
    Thomas W. Bennet	Mississippi College
    Gian Mario Besana	DePaul University
    Hans-Peter Bischof	Rochester Institute of Technology
    Don Braffitt	Radford University
    Robert Burton	Brigham Young University
    John Chandler	Oklahoma State University
    Robert Cohen	University of Massachusetts, Boston
    Dodi Coreson	Linn Benton Community College
    James H. Cross II	Auburn University
    Eman El-Sheikh	University of West Florida
    Sherif Elfayoumy	University of North Florida
    Christopher Eliot	University of Massachusetts, Amherst
    Wanda M. Eanes	Macon State College
    Stephanie Elzer	Millersville University
    Matt Evett	Eastern Michigan University
    Marj Feroe	Delaware County Community College, Pennsylvania
    John Gauch	University of Kansas
    Chris Haynes	Indiana University
    James Heliotis	Rochester Institute of Technology
    Laurie Hendren	McGill University
    Mike Higgs	Austin College
    Stephen Hughes	Roanoke College
    Daniel Joyce	Villanova University
    Saroja Kanchi	Kettering University
    Gregory Kapfhammer	Allegheny College
    Karen Kluge	Dartmouth College
    Jason Levy	University of Hawaii
    Peter MacKenzie	McGill University
    Jerry Marsh	Oakland University
    Blayne Mayfield	Oklahoma State University
    Gheorghe Muresan	Rutgers University
    Laurie Murphy Pacific	Lutheran University
    Dave Musicant	Carleton College
    Faye Navabi-Tadayon	Arizona State University
    Lawrence Osborne	Lamar University
    Barry Pollack	City College of San Francisco
    B. Ravikumar	University of Rhode Island
    David Riley	University of Wisconsin (La Crosse)
    Bob Roos	Allegheny College
    Carolyn Rosiene	University of Hartford
    Jerry Ross Lane	Community College
    Patricia Roth	Southeastern Polytechnic State University
    Carolyn Schauble	Colorado State University
    Arjit Sengupta	Georgia State University
    Bennet Setzer	Kennesaw State University
    Vijay Srinivasan	JavaSoft, Sun Microsystems, Inc.
    Stuart Steiner	Eastern Washington University
    Katherine St. John	Lehman College, CUNY
    Alexander Stoytchev	Iowa State University
    Ed Timmerman	University of Maryland, University College
    Shengru Tu	University of New Orleans
    Paul Tymann	Rochester Institute of Technology
    John J. Wegis	JavaSoft, Sun Microsystems, Inc.
    Ken Williams	North Carolina Agricultural and Technical University
    Linda Wilson	Dartmouth College
    David Wittenberg	Brandeis University
    Wang-Chan Wong	California State University (Dominguez Hills)
    还要感谢我的朋友和以前在Villanova大学工作的同事,他们提供了很多建设性意见,这些同事包括Bob Beck、Cathy Helwig、Anany Levitin、Najib Nadi、Beth Taddei及Barbara Zimmerman。
    特别感谢New Jersey学院的Pete DePasquale,他设计并开发了绘图工具箱(PaintBox)项目,并提供了最初的Java类库附录。
    还有许多人以各种方式提供了帮助,包括Ken Arnold、Mike Czepiel、John Loftus、Sebastian Niezgoda和Saverio Perugini。在此还向所有遗漏了名字的朋友们致以深深的歉意。
    计算机科学教育(SIGCSE)的ACM特别兴趣组是一个巨大的教育信息交流资源,他们的会议给来自不同层次与不同类型的学校的教师提供了交流教育新观点、新思路和资源的机会。对于从事某一计算机领域的教育工作者来说,如果还未加入SIGCSE,就会错过参与这种教育信息交流的机会。
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网