Think Java: How to Think Like a Computer Scientist
Book information
Description
Think Java is a hands-on introduction to computer science and programming used by many universities and high schools around the world. Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with the most basic programming concepts and gradually works its way to advanced object-oriented techniques. In this fully updated and expanded edition, authors Allen Downey and Chris Mayfield introduce programming as a means for solving interesting problems. Each chapter presents material for one week of a college course and includes exercises to help you practice what you’ve learned. Along the way, you’ll see nearly every topic required for the AP Computer Science A exam and Java SE Programmer I certification. Discover one concept at a time: tackle complex topics in a series of small steps with multiple examplesUnderstand how to formulate problems, think creatively about solutions, and develop, test, and debug programsLearn about input and output, decisions and loops, classes and methods, strings and arrays, recursion and polymorphismDetermine which program development methods work best for you, and practice the important skill of debugging Table of Contents Preface Acknowledgments CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 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 CHAPTER 11 Designing Classes The Time Class Constructors Value Constructors Getters and Setters Displaying Objects The toString Method The equals Method Adding Times Vocabulary Exercises CHAPTER 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 CHAPTER 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 CHAPTER 14 Extending Classes CardCollection Inheritance Dealing Cards The Player Class The Eights Class Class Relationships Vocabulary Exercises CHAPTER 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 CHAPTER 16 Reusing Classes Langton’s Ant Refactoring Abstract Classes UML Diagram Vocabulary Exercises CHAPTER 17 Advanced Topics Polygon Objects Adding Color Regular Polygons More Constructors An Initial Drawing Blinking Polygons Interfaces Event Listeners Timers Vocabulary Exercises APPENDIX A Tools Installing DrJava DrJava Interactions Command-Line Interface Command-Line Testing Running Checkstyle Tracing with a Debugger Testing with JUnit Vocabulary APPENDIX B Javadoc Reading Documentation Writing Documentation Javadoc Tags Example Source File Vocabulary APPENDIX C Graphics Creating Graphics Graphics Methods Example Drawing Vocabulary Exercises APPENDIX D Debugging Compile-Time Errors Run-Time Errors Logic Errors Index
Similar books
Think Java: How to Think Like a Computer Scientist
EPUB
Think Python
2012 · PDF
Think Julia: How to Think Like a Computer Scientist
2019 · EPUB
Think Stats (for Candi Bara)
2024 · EPUB
Introduction to Python Programming
2024 · PDF
Think Python - How to Think Like a Computer Scientist
2012 · PDF
Think Python: How to Think Like a Computer Scientist
MOBI
Think Python Πώς να Σκέφτεσαι σαν Επιστήμονας της Πληροφορικής
2014 · PDF