An Interdisciplinary Approach
Author: Robert Sedgewick,Kevin Wayne
Publisher: Addison-Wesley Professional
View: 9482Today, 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.