Named a Notable Book in the 21st Annual Best of Computing list by the ACM! Robert Sedgewick and Kevin Wayne’s Computer Science: An Interdisciplinary Approach is the ideal modern introduction to computer science with Java programming for both students and professionals. Taking a broad, applications-based approach, Sedgewick and Wayne teach through important examples from science, mathematics, engineering, finance, and commercial computing. The book demystifies computation, explains its intellectual underpinnings, and covers the essential elements of programming and computational problem solving in today’s environments. The authors begin by introducing basic programming elements such as variables, conditionals, loops, arrays, and I/O. Next, they turn to functions, introducing key modular programming concepts, including components and reuse. They present a modern introduction to object-oriented programming, covering current programming paradigms and approaches to data abstraction. Building on this foundation, Sedgewick and Wayne widen their focus to the broader discipline of computer science. They introduce classical sorting and searching algorithms, fundamental data structures and their application, and scientific techniques for assessing an implementation’s performance. Using abstract models, readers learn to answer basic questions about computation, gaining insight for practical application. Finally, the authors show how machine architecture links the theory of computing to real computers, and to the field’s history and evolution. For each concept, the authors present all the information readers need to build confidence, together with examples that solve intriguing problems. Each chapter contains question-and-answer sections, self-study drills, and challenging problems that demand creative solutions. Companion web site (introcs.cs.princeton.edu/java) contains Extensive supplementary information, including suggested approaches to programming assignments, checklists, and FAQs Graphics and sound libraries Links to program code and test data Solutions to selected exercises Chapter summaries Detailed instructions for installing a Java programming environment Detailed problem sets and projects Companion 20-part series of video lectures is available at informit.com/title/9780134493831
This is the eBook of the printed book and may not include any media, website access codes, or print supplements that may come packaged with the bound book. Programming skills are indispensable in today’s world, not just for computer science students, but also for anyone in any scientific or technical discipline. Introduction to Programming in Java, Second Edition, by Robert Sedgewick and Kevin Wayne is an accessible, interdisciplinary treatment that emphasizes important and engaging applications, not toy problems. The authors supply the tools needed for students and professionals to learn that programming is a natural, satisfying, and creative experience, and to become conversant with one of the world’s most widely used languages. This example-driven guide focuses on Java’s most useful features and brings programming to life for every student in the sciences, engineering, and computer science. Coverage includes Basic elements of programming: variables, assignment statements, built-in data types, conditionals, loops, arrays, and I/O, including graphics and sound Functions, modules, and libraries: organizing programs into components that can be independently debugged, maintained, and reused Algorithms and data structures: sort/search algorithms, stacks, queues, and symbol tables Applications from applied math, physics, chemistry, biology, and computer science Drawing on their extensive classroom experience, throughout the text the authors provide Q&As, exercises, and opportunities for creative engagement with the material. Together with the companion materials described below, this book empowers people to pursue a modern approach to teaching and learning programming. Companion web site (introcs.cs.princeton.edu/java) contains Chapter summaries Supplementary exercises, some with solutions Detailed instructions for installing a Java programming environment Program code and test data suitable for easy download Detailed creative exercises, projects, and other supplementary materials Companion studio-produced online videos (informit.com/sedgewick) are available for purchase and provide students and professionals with the opportunity to engage with the material at their own pace and give instructors the opportunity to spend their time with students helping them to succeed on assignments and exams. Register your product at informit.com/register for convenient access to downloads, updates, and corrections as they become available.
Today, anyone in a scientific or technical discipline needs programming skills. Python is an ideal first programming language, and Introduction to Programming in Python is the best guide to learning it. Princeton University’s Robert Sedgewick, Kevin Wayne, and Robert Dondero have crafted an accessible, interdisciplinary introduction to programming in Python that emphasizes important and engaging applications, not toy problems. The authors supply the tools needed for students to learn that programming is a natural, satisfying, and creative experience. This example-driven guide focuses on Python’s most useful features and brings programming to life for every student in the sciences, engineering, and computer science. Coverage includes Basic elements of programming: variables, assignment statements, built-in data types, conditionals, loops, arrays, and I/O, including graphics and sound Functions, modules, and libraries: organizing programs into components that can be independently debugged, maintained, and reused Object-oriented programming and data abstraction: objects, modularity, encapsulation, and more Algorithms and data structures: sort/search algorithms, stacks, queues, and symbol tables Examples from applied math, physics, chemistry, biology, and computer science—all compatible with Python 2 and 3 Drawing on their extensive classroom experience, the authors provide Q&As, exercises, and opportunities for creative practice throughout. An extensive amount of supplementary information is available at introcs.cs.princeton.edu/python. With source code, I/O libraries, solutions to selected exercises, and much more, this companion website empowers people to use their own computers to teach and learn the material.
Why should every student take a computing course? What should be the content of these courses? How should they be taught, and by whom? This book addresses these questions by identifying the broader reaches of computing education, problem-solving and critical thinking as a general approach to learning. The book discusses new approaches to computing education, and considers whether the modern ubiquity of computing requires an educational approach that is inherently interdisciplinary and distinct from the traditional computer science perspective. The alternative approach that the authors advocate derives its mission from an intent to embed itself within an interdisciplinary arts and science context. An interdisciplinary approach to computing is compellingly valuable for students and educational institutions alike. Its goal is to support the educational and intellectual needs of students with interests in the entire range of academic disciplines. It capitalizes on students’ focus on career development and employers’ demand for technical, while also engaging a diverse student body that may not possess a pre-existing interest in computing for computing’s sake. This approach makes directly evident the applicability of computer science topics to real-world interdisciplinary problems beyond computing and recognizes that technical and computational abilities are essential within every discipline. The book offers a valuable resource for computer science and computing education instructors who are presently re-thinking their curricula and pedagogical approaches and are actively trying new methods in the classroom. It will also benefit graduate students considering a future of teaching in the field, as well as administrators (in both higher education and high schools) interested in becoming conversant in the discourse surrounding the future of computing education.
Since wisdom is the ultimate human virtue, its application is important for humans and civilization. Cognitive Informatics and Wisdom Development: Interdisciplinary Approaches argues that wise civilization cannot function without wise people and vice versa, that wise people cannot function without positive conditions for the development of wise civilization. Using the cognitive informatics approach as a basis for the investigation of wisdom, this book offers solutions on how to study and evaluate the state of wisdom in 21st century society and the requirements for wise civilization and its monitoring systems.
"This book offers a holistic approach to social computing with respect to the underlying theory, technology and mechanisms, as well as the challenges, opportunities and impact of social computing to any application area"--Provided by publisher.
Drawing on the research of experts from the fields of computing and library science, this ground-breaking work will show you how to combine two very different approaches to classification to create more effective, user-friendly information-retrieval systems. • Provides an interdisciplinary overview of current and potential approaches to organizing information by subject • Covers both pure computer science and pure library science topics in easy-to-understand language accessible to audiences from both disciplines • Reviews technological standards for representation, storage, and retrieval of varied knowledge-organization systems and their constituent elements • Suggests a collaborative approach that will reduce duplicate efforts and make it easier to find solutions to practical problems
Creativity is one of the least understood aspects of intelligence and is often seen as `intuitive' and not susceptible to rational enquiry. Recently, however, there has been a resurgence of interest in the area, principally in artificial intelligence and cognitive science, but also in psychology, philosophy, computer science, logic, mathematics, sociology, and architecture and design. This volume brings this work together and provides an overview of this rapidly developing field. It addresses a range of issues. Can computers be creative? Can they help us to understand human creativity? How can artificial intelligence (AI) enhance human creativity? How, in particular, can it contribute to the `sciences of the artificial', such as design? Does the new wave of AI (connectionism, geneticism and artificial life) offer more promise in these areas than classical, symbol-handling AI? What would the implications be for AI and cognitive science if computers could not be creative? These issues are explored in five interrelated parts, each of which is introducted and explained by a leading figure in the field. - Prologue (Margaret Boden) - Part I: Foundational Issues (Terry Dartnall) - Part II: Creativity and Cognition (Graeme S. Halford and Robert Levinson) - Part III: Creativity and Connectionism (Chris Thornton) - Part IV: Creativity and Design (John Gero) - Part V: Human Creativity Enhancement (Ernest Edmonds) - Epilogue (Douglas Hofstadter) For researchers in AI, cognitive science, computer science, philosophy, psychology, mathematics, logic, sociology, and architecture and design; and anyone interested in the rapidly growing field of artificial intelligence and creativity.
This book is intended as a warning against the kind of hard-core liberalism which blames state intervention for the disappointing results achieved in matters of macroeconomic, competition and social welfare policy. In calling attention to the social dimension of economics, the book stresses the need for an ethical yardstick which can only be pro vided by an interdisciplinary approach to the economy. One current school of thought claims to have bridged the gap by por traying economics as both positive and normative. However, this inter pretation is inadequate. The positive aspect of economics, reflecting an approach common in the natural sciences, is based on observable facts. It highlights causal relationships and seeks to analyse economic mechanisms on the basis of available information. This has led to an emphasis on purely deductive methods, which form the basis for many of the conclusions in main stream economics. This current of thought is typified by the neoclassical school, which takes as its main premise the much-disputed hypothesis of economic rationality. Human behaviour is deemed to be rational when consumers maximize their satisfaction and producers their profits, sub ject to the constraints of income and production costs respectively. Opt imal strategies for both consumers and producers can best be determined by the mechanism of market forces.