Think Java: How to Think Like a Computer Scientist
Downey, Allen B., Mayfield, Chris
Currently used at many colleges, universities, and high schools, this hands-on introduction to computer science is ideal for people with little or no programming experience. The goal of this concise book is not just to teach you Java, but to help you think like a computer scientist. You'll learn how to program--a useful skill by itself--but you'll also discover how to use programming as a means to an end.
Authors Allen Downey and Chris Mayfield start with the most basic concepts and gradually move into topics that are more complex, such as recursion and object-oriented programming. Each brief chapter covers the material for one week of a college course and includes exercises to help you practice what you've learned.
- Learn one concept at a time: tackle complex topics in a series of small steps with examples
- Understand how to formulate problems, think creatively about solutions, and write programs clearly and accurately
- Determine which development techniques work best for you, and practice the important skill of debugging
- Learn relationships among input and output, decisions and loops, classes and methods, strings and arrays
- Work on exercises involving word games, graphics, puzzles, and playing cards
The updated second edition of Think Java also features new chapters on polymorphism and data processing, as well as content covering changes through Java 12.
Allen B. Downey is a Professor of Computer Science at Olin College of Engineering. He has taught at Wellesley College, Colby College, and U.C. Berkeley. He has a Ph.D. in Computer Science from U.C. Berkeley, and Master's and Bachelor's degrees from MIT. Downey is the creator of the bestselling Think series for O'Reilly, including Think Python, Think Complexity, Think DSP, and Think Bayes.
Chris Mayfield is an Assistant Professor of Computer Science at James Madison University, with a research focus on CS education and professional development. He has a Ph.D. in Computer Science from Purdue University and Bachelor's degrees in CS and German from the University of Utah.