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 soundFunctions, modules, and libraries: organizing programs into components that can be independently debugged, maintained, and reusedAlgorithms and data structures: sort/search algorithms, stacks, queues, and symbol tablesApplications 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 summariesSupplementary exercises, some with solutionsDetailed instructions for installing a Java programming environmentProgram code and test data suitable for easy downloadDetailed 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.