没有合适的资源?快使用搜索试试~ 我知道了~
首页Introduction to programming in Java-an interdisciplinary approach
Introduction to programming in Java-an interdisciplinary approac...
5星 · 超过95%的资源 需积分: 10 23 下载量 160 浏览量
更新于2023-06-16
评论
收藏 10.5MB PDF 举报
Introduction to programming in Java-an interdisciplinary approach
资源详情
资源评论
资源推荐
Introduction
to
Programming in Java
An Interdisciplinary Approach
Robert Sedgewick
and
Kevin Wayne
Princeton University
O N L I N E P R E V I E W
!"#$%&'(')!"*+,,,- ./01/23,,,0425,67
Publisher Greg Tobin
Executive Editor Michael Hirsch
Associate Editor Lindsey Triebel
Associate Managing Editor Jeffrey Holcomb
Senior Designer Joyce Cosentino Wells
Digital Assets Manager Marianne Groth
Senior Media Producer Bethany Tidd
Senior Marketing Manager Michelle Brown
Marketing Assistant Sarah Milmore
Senior Author Support/
Technology Specialist Joe Vetere
Senior Manufacturing Buyer Carol Melville
Copyeditor Genevieve d’Entremont
Composition and Illustrations Robert Sedgewick and Kevin Wayne
Cover Image: © Robert Sedgewick and Kevin Wayne
Page 353 © 2006 C. Herscovici, Brussels / Artists Rights Society (ARS), New York Banque d’ Images, ADAGP / Art
Resource, NY
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trade-
marks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark claim, the
designations have been printed in initial caps or all caps.
The interior of this book was composed in Adobe InDesign.
Library of Congress Cataloging-in-Publication Data
Sedgewick, Robert, 1946-
Introduction to programming in Java : an interdisciplinary approach / by Robert Sedgewick and Kevin Wayne.
p. cm.
Includes index.
ISBN 978-0-321-49805-2 (alk. paper)
1. Java (Computer program language) 2. Computer programming. I. Wayne, Kevin Daniel, 1971- II. Title.
QA76.73.J38S413 2007
005.13’3--dc22
2007020235
Copyright © 2008 Pearson Education, Inc. All rights reserved. No part of this publication may be reproduced,
stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of
America. For information on obtaining permission for use of material in this work, please submit a written request
to Pearson Education, Inc., Rights and Contracts Department, 501 Boylston Street, Suite 900, Boston, MA 02116,
fax (617) 671-3447, or online at
http://www.pearsoned.com/legal/permissions.htm.
ISBN-13: 978-0-321-49805-2
ISBN-10: 0-321-49805-4
1 2 3 4 5 6 7 8 9 10—CRW—11 10 09 08 07
!"#$%&'(')!"*+,,,0 ./01/23,,,0425,67
v
Preface
T
HE BASIS FOR EDUCATION IN THE
last millennium was “reading, writing, and arith-
metic;” now it is reading, writing, and computing. Learning to program is an
essential part of the education of every student in the sciences and engineering.
Beyond direct applications, it is the first step in understanding the nature of com-
puter science’s undeniable impact on the modern world. This book aims to teach
programming to those who need or want to learn it, in a scientific context.
Our primary goal is to empower students by supplying the experience and
basic tools necessary to use computation effectively. Our approach is to teach stu-
dents that writing a program is a natural, satisfying, and creative experience (not
an onerous task reserved for experts). We progressively introduce essential con-
cepts, embrace classic applications from applied mathematics and the sciences to
illustrate the concepts, and provide opportunities for students to write programs
to solve engaging problems.
We use the Java programming language for all of the programs in this book—
we refer to Java after programming in the title to emphasize the idea that the book
is about fundamental concepts in programming, not Java per se. This book teaches
basic skills for computational problem-solving that are applicable in many modern
computing environments, and is a self-contained treatment intended for people
with no previous experience in programming.
This book is an interdisciplinary approach to the traditional CS1 curriculum,
where we highlight the role of computing in other disciplines, from materials sci-
ence to genomics to astrophysics to network systems. This approach emphasizes
for students the essential idea that mathematics, science, engineering, and com-
puting are intertwined in the modern world. While it is a CS1 textbook designed
for any first-year college student interested in mathematics, science, or engineer-
ing (including computer science), the book also can be used for self-study or as a
supplement in a course that integrates programming with another field.
!"#$%&'(')!"*+,,,5 ./01/23,,,0425,67
vi
Coverage The book is organized around four stages of learning to program: ba-
sic elements, functions, object-oriented programming, and algorithms (with data
structures). We provide the basic information readers need to build confidence in
writing programs at each level before moving to the next level. An essential feature
of our approach is to use example programs that solve intriguing problems, sup-
ported with exercises ranging from self-study drills to challenging problems that
call for creative solutions.
Basic elements include variables, assignment statements, built-in types of
data, flow of control (conditionals and loops), arrays, and input/output, including
graphics and sound.
Functions and modules are the student’s first exposure to modular program-
ming. We build upon familiarity with mathematical functions to introduce Java
static methods, and then consider the implications of programming with func-
tions, including libraries of functions and recursion. We stress the fundamental
idea of dividing a program into components that can be independently debugged,
maintained, and reused.
Object-oriented programming is our introduction to data abstraction. We em-
phasize the concepts of a data type (a set of values and a set of operations on them)
and an object (an entity that holds a data-type value) and their implementation
using Java’s class mechanism. We teach students how to use, create, and design data
types. Modularity, encapsulation, and other modern programming paradigms are
the central concepts of this stage.
Algorithms and data structures combine these modern programming para-
digms with classic methods of organizing and processing data that remain effec-
tive for modern applications. We provide an introduction to classical algorithms
for sorting and searching as well as fundamental data structures (including stacks,
queues, and symbol tables) and their application, emphasizing the use of the scien-
tific method to understand performance characteristics of implementations.
Applications in science and engineering are a key feature of the text. We moti-
vate each programming concept that we address by examining its impact on spe-
cific applications. We draw examples from applied mathematics, the physical and
biological sciences, and computer science itself, and include simulation of physical
systems, numerical methods, data visualization, sound synthesis, image process-
ing, financial simulation, and information technology. Specific examples include a
treatment in the first chapter of Markov chains for web page ranks and case stud-
ies that address the percolation problem, N-body simulation, and the small-world
!"#$%&'(')!"*+,,,8 ./01/23,,,0425,67
vii
phenomenon. These applications are an integral part of the text. They engage stu-
dents in the material, illustrate the importance of the programming concepts, and
provide persuasive evidence of the critical role played by computation in modern
science and engineering.
Our primary goal is to teach the specific mechanisms and skills that are need-
ed to develop effective solutions to any programming problem. We work with com-
plete Java programs and encourage readers to use them. We focus on programming
by individuals, not library programming or programming in the large (which we
treat briefly in an appendix).
Use in the Curriculum This book is intended for a first-year college course
aimed at teaching novices to program in the context of scientific applications.
Taught from this book, prospective majors in any area of science and engineering
will learn to program in a familiar context. Students completing a course based on
this book will be well-prepared to apply their skills in later courses in science and
engineering and to recognize when further education in computer science might
be beneficial.
Prospective computer science majors, in particular, can benefit from learning
to program in the context of scientific applications. A computer scientist needs the
same basic background in the scientific method and the same exposure to the role
of computation in science as does a biologist, an engineer, or a physicist.
Indeed, our interdisciplinary approach enables colleges and universities to
teach prospective computer science majors and prospective majors in other fields
of science and engineering in the same course. We cover the material prescribed by
CS1, but our focus on applications brings life to the concepts and motivates stu-
dents to learn them. Our interdisciplinary approach exposes students to problems
in many different disciplines, helping them to more wisely choose a major.
Whatever the specific mechanism, the use of this book is best positioned early
in the curriculum. First, this positioning allows us to leverage familiar material
in high school mathematics and science. Second, students who learn to program
early in their college curriculum will then be able to use computers more effectively
when moving on to courses in their specialty. Like reading and writing, program-
ming is certain to be an essential skill for any scientist or engineer. Students who
have grasped the concepts in this book will continually develop that skill through a
lifetime, reaping the benefits of exploiting computation to solve or to better under-
stand the problems and projects that arise in their chosen field.
!"#$%&'(')!"*+,,,1 ./01/23,,,0425,67
剩余356页未读,继续阅读
mikecn98
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4