Today, learning to program and understanding the basics of computation isn't just indispensable for every science and engineering student: it's crucial for everyone who wants to understand the world they live in. In Computer Science: An Interdisciplinary Approach, pioneering Princeton computer science professors Robert Sedgewick and Kevin Wayne introduce core Java programming techniques in a scientific context, while also demystifying computation and illuminating its intellectual underpinnings. Writing for students and professionals of all types and backgrounds, Sedgewick and Wayne draw on all they've learned in teaching hundreds of thousands of beginners worldwide, both in person and online. The companion text to their eagerly-anticipated Coursera Computer Science MOOC, this book's intelligent, broad-based approach draws on applications from science, mathematics, engineering, and commercial computing. Throughout, they engage students by teaching how to solve interesting and significant problems - not toy problems. Coverage includes: Elements of programming: built-in data types, conditionals, loops, arrays, I/O, and more Functions and modules: static methods, libraries, clients, and recursion Object-oriented programming: understanding, creating, and designing data types Algorithms and data structures: performance, sorting, searching, stacks, queues, and symbol tables Computing machines: data representations, instruction set architecture, programming, simulations, and more Building a computer: gates, circuits, components, and CPUs Theory of computation: formal languages, abstract machines, computability, universality, and intractability Each chapter contains questions and answers, exercises, creative exercises, and a compelling, classroom-tested case study - all reflecting Sedgewick and Wayne's 20+ years of experience teaching introductory computer science at Princeton. The book is complemented by extensive resources on a comprehensive website, including hundreds of Java programs and real-world data sets.
By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and applied mathematics, Introduction to Programming in Java takes an interdisciplinary approach to teaching programming with the Java(TM) programming language. Interesting applications in these fields foster a foundation of computer science concepts and programming skills that students can use in later courses while demonstrating that computation is an integral part of the modern world. Ten years in development, this book thoroughly covers the field and is ideal for traditional introductory programming courses. It can also be used as a supplement or a main text for courses that integrate programming with mathematics, science, or engineering.
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.
This book is Part I of the fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms , the leading textbook on algorithms today, widely used in colleges and universities worldwide. Part I contains Chapters 1 through 3 of the book. The fourth edition of Algorithms surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing -- including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use. The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts. The companion web site, algs4.cs.princeton.edu contains An online synopsis Full Java implementations Test data Exercises and answers Dynamic visualizations Lecture slides Programming assignments with checklists Links to related material The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants. Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.
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.
"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.
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.
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
Books on computation in the marketplace tend to discuss the topics within specific fields. Many computational algorithms, however, share common roots. Great advantages emerge if numerical methodologies break the boundaries and find their uses across disciplines. Interdisciplinary Computing In Java Programming Language introduces readers of different backgrounds to the beauty of the selected algorithms. Serious quantitative researchers, writing customized codes for computation, enjoy cracking source codes as opposed to the black-box approach. Most C and Fortran programs, despite being slightly faster in program execution, lack built-in support for plotting and graphical user interface. This book selects Java as the platform where source codes are developed and applications are run, helping readers/users best appreciate the fun of computation. Interdisciplinary Computing In Java Programming Language is designed to meet the needs of a professional audience composed of practitioners and researchers in science and technology. This book is also suitable for senior undergraduate and graduate-level students in computer science, as a secondary text.