Think Java: How to Think Like a Computer Scientist, 2nd Edition
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.
Preface The Philosophy Behind the Book Object-Oriented Programming Changes to the Second Edition About the Appendixes Using the Code Examples Conventions Used in This Book O’Reilly Online Learning How to Contact Us Acknowledgments 1. Computer Programming What Is a Computer? What Is Programming? The Hello World Program Compiling Java Programs Displaying Two Messages Formatting Source Code Using Escape Sequences What Is Computer Science? Debugging Programs Vocabulary Exercises 2. Variables and Operators Declaring Variables Assigning Variables Memory Diagrams Printing Variables Arithmetic Operators Floating-Point Numbers Rounding Errors Operators for Strings Compiler Error Messages Other Types of Errors Vocabulary Exercises 3. Input and Output The System Class The Scanner Class Language Elements Literals and Constants Formatting Output Reading Error Messages Type Cast Operators Remainder Operator Putting It All Together The Scanner Bug Vocabulary Exercises 4. Methods and Testing Defining New Methods Flow of Execution Parameters and Arguments Multiple Parameters Stack Diagrams Math Methods Composition Return Values Incremental Development Vocabulary Exercises 5. Conditionals and Logic Relational Operators The if-else Statement Chaining and Nesting The switch Statement Logical Operators De Morgan’s Laws Boolean Variables Boolean Methods Validating Input Example Program Vocabulary Exercises 6. Loops and Strings The while Statement Increment and Decrement The for Statement Nested Loops Characters Which Loop to Use String Iteration The indexOf Method Substrings String Comparison String Formatting Vocabulary Exercises 7. Arrays and References Creating Arrays Accessing Elements Displaying Arrays Copying Arrays Traversing Arrays Generating Random Numbers Building a Histogram The Enhanced for Loop Counting Characters Vocabulary Exercises 8. Recursive Methods Recursive Void Methods Recursive Stack Diagrams Value-Returning Methods The Leap of Faith Counting Up Recursively Binary Number System Recursive Binary Method CodingBat Problems Vocabulary Exercises 9. Immutable Objects Primitives Versus Objects The null Keyword Strings Are Immutable Wrapper Classes Command-Line Arguments Argument Validation BigInteger Arithmetic Incremental Design More Generalization Vocabulary Exercises 10. Mutable Objects Point Objects Objects as Parameters Objects as Return Values Rectangles Are Mutable Aliasing Revisited Java Library Source Class Diagrams Scope Revisited Garbage Collection Mutable Versus Immutable StringBuilder Objects Vocabulary Exercises 11. Designing Classes The Time Class Constructors Value Constructors Getters and Setters Displaying Objects The toString Method The equals Method Adding Times Vocabulary Exercises 12. Arrays of Objects Card Objects Card toString Class Variables The compareTo Method Cards Are Immutable Arrays of Cards Sequential Search Binary Search Tracing the Code Vocabulary Exercises 13. Objects of Arrays Decks of Cards Shuffling Decks Selection Sort Merge Sort Subdecks Merging Decks Adding Recursion Static Context Piles of Cards Playing War Vocabulary Exercises 14. Extending Classes CardCollection Inheritance Dealing Cards The Player Class The Eights Class Class Relationships Vocabulary Exercises 15. Arrays of Arrays Conway’s Game of Life The Cell Class Two-Dimensional Arrays The GridCanvas Class Other Grid Methods Starting the Game The Simulation Loop Exception Handling Counting Neighbors Updating the Grid Vocabulary Exercises 16. Reusing Classes Langton’s Ant Refactoring Abstract Classes UML Diagram Vocabulary Exercises 17. Advanced Topics Polygon Objects Adding Color Regular Polygons More Constructors An Initial Drawing Blinking Polygons Interfaces Event Listeners Timers Vocabulary Exercises A. Tools Installing DrJava DrJava Interactions Command-Line Interface Command-Line Testing Running Checkstyle Tracing with a Debugger Testing with JUnit Vocabulary B. Javadoc Reading Documentation Writing Documentation Javadoc Tags Example Source File Vocabulary C. Graphics Creating Graphics Graphics Methods Example Drawing Vocabulary Exercises D. Debugging Compile-Time Errors The compiler is spewing error messages. I’m getting a weird compiler message, and it won’t go away. I can’t get my program to compile no matter what I do. I did what the compiler told me to do, but it still doesn’t work. Run-Time Errors My program hangs. When I run the program, I get an exception. I added so many print statements I get inundated with output. Logic Errors My program doesn’t work. I’ve got a big, hairy expression and it doesn’t do what I expect. My method doesn’t return what I expect. My print statement isn’t doing anything. I’m really, really stuck and I need help. No, I really need help. I found the bug! Index
How to download source code?
1. Go to:
2. Search the book title:
Think Java: How to Think Like a Computer Scientist, 2nd Edition, sometime you may not get the results, please search the main title
3. Click the book title in the search results
Publisher resources section, click
Download Example Code.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.