Muutke küpsiste eelistusi

E-raamat: Think Java: How to Think Like a Computer Scientist

  • Formaat: 326 pages
  • Ilmumisaeg: 27-Nov-2019
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781492072478
  • Formaat - PDF+DRM
  • Hind: 40,37 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 326 pages
  • Ilmumisaeg: 27-Nov-2019
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781492072478

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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 examples
  • Understand how to formulate problems, think creatively about solutions, and develop, test, and debug programs
  • Learn about input and output, decisions and loops, classes and methods, strings and arrays, recursion and polymorphism
  • Determine which program development methods work best for you, and practice the important skill of debugging
Preface ix
1 Computer Programming
1(14)
What Is a Computer?
1(1)
What Is Programming?
2(1)
The Hello World Program
3(1)
Compiling Java Programs
4(2)
Displaying Two Messages
6(1)
Formatting Source Code
6(1)
Using Escape Sequences
7(1)
What Is Computer Science?
8(1)
Debugging Programs
9(1)
Vocabulary
10(2)
Exercises
12(3)
2 Variables and Operators
15(14)
Declaring Variables
15(1)
Assigning Variables
16(1)
Memory Diagrams
17(1)
Printing Variables
18(1)
Arithmetic Operators
19(1)
Floating-Point Numbers
20(1)
Rounding Errors
21(1)
Operators for Strings
22(1)
Compiler Error Messages
23(1)
Other Types of Errors
24(1)
Vocabulary
25(2)
Exercises
27(2)
3 Input and Output
29(16)
The System Class
29(1)
The Scanner Class
30(1)
Language Elements
31(1)
Literals and Constants
32(2)
Formatting Output
34(1)
Reading Error Messages
35(1)
Type Cast Operators
36(1)
Remainder Operator
37(1)
Putting It All Together
38(1)
The Scanner Bug
39(1)
Vocabulary
40(1)
Exercises
41(4)
4 Methods and Testing
45(18)
Defining New Methods
45(1)
Flow of Execution
46(1)
Parameters and Arguments
47(2)
Multiple Parameters
49(1)
Stack Diagrams
50(1)
Math Methods
51(1)
Composition
52(1)
Return Values
53(1)
Incremental Development
54(2)
Vocabulary
56(1)
Exercises
57(6)
5 Conditionals and Logic
63(16)
Relational Operators
63(1)
The if-else Statement
64(1)
Chaining and Nesting
65(1)
The switch Statement
66(1)
Logical Operators
67(2)
De Morgan's Laws
69(1)
Boolean Variables
69(1)
Boolean Methods
70(1)
Validating Input
71(1)
Example Program
72(1)
Vocabulary
73(1)
Exercises
74(5)
6 Loops and Strings
79(16)
The while Statement
79(2)
Increment and Decrement
81(1)
The for Statement
81(2)
Nested Loops
83(1)
Characters
84(1)
Which Loop to Use
85(1)
String Iteration
86(1)
The indexOf Method
87(1)
Substrings
87(1)
String Comparison
88(1)
String Formatting
89(1)
Vocabulary
90(1)
Exercises
91(4)
7 Arrays and References
95(16)
Creating Arrays
96(1)
Accessing Elements
97(1)
Displaying Arrays
98(1)
Copying Arrays
99(1)
Traversing Arrays
100(2)
Generating Random Numbers
102(1)
Building a Histogram
103(1)
The Enhanced for Loop
104(1)
Counting Characters
105(2)
Vocabulary
107(1)
Exercises
108(3)
8 Recursive Methods
111(18)
Recursive Void Methods
111(2)
Recursive Stack Diagrams
113(1)
Value-Returning Methods
114(2)
The Leap of Faith
116(1)
Counting Up Recursively
117(1)
Binary Number System
118(1)
Recursive Binary Method
119(1)
CodingBat Problems
120(2)
Vocabulary
122(1)
Exercises
123(6)
9 Immutable Objects
129(18)
Primitives Versus Objects
129(1)
The null Keyword
130(1)
Strings Are Immutable
131(1)
Wrapper Classes
132(2)
Command-Line Arguments
134(1)
Argument Validation
135(1)
Biglnteger Arithmetic
136(1)
Incremental Design
137(2)
More Generalization
139(1)
Vocabulary
140(1)
Exercises
141(6)
10 Mutable Objects
147(14)
Point Objects
147(1)
Objects as Parameters
148(1)
Objects as Return Values
149(1)
Rectangles Are Mutable
150(1)
Aliasing Revisited
151(1)
Java Library Source
152(1)
Class Diagrams
153(1)
Scope Revisited
154(1)
Garbage Collection
154(1)
Mutable Versus Immutable
155(1)
StringBuilder Objects
156(1)
Vocabulary
157(1)
Exercises
158(3)
11 Designing Classes
161(14)
The Time Class
161(1)
Constructors
162(2)
Value Constructors
164(1)
Getters and Setters
165(2)
Displaying Objects
167(1)
The toString Method
167(1)
The equals Method
168(2)
Adding Times
170(2)
Vocabulary
172(1)
Exercises
173(2)
12 Arrays of Objects
175(14)
Card Objects
175(2)
Card toString
177(1)
Class Variables
178(1)
The compareTo Method
179(1)
Cards Are Immutable
180(1)
Arrays of Cards
181(2)
Sequential Search
183(1)
Binary Search
183(1)
Tracing the Code
184(1)
Vocabulary
185(1)
Exercises
186(3)
13 Objects of Arrays
189(16)
Decks of Cards
189(1)
Shuffling Decks
190(2)
Selection Sort
192(1)
Merge Sort
192(1)
Subdecks
193(1)
Merging Decks
194(1)
Adding Recursion
195(1)
Static Context
196(1)
Piles of Cards
197(2)
Playing War
199(1)
Vocabulary
200(1)
Exercises
201(4)
14 Extending Classes
205(14)
CardCollection
206(2)
Inheritance
208(1)
Dealing Cards
209(2)
The Player Class
211(1)
The Eights Class
212(3)
Class Relationships
215(1)
Vocabulary
216(1)
Exercises
216(3)
15 Arrays of Arrays
219(16)
Conway's Game of Life
219(2)
The Cell Class
221(1)
Two-Dimensional Arrays
222(1)
The GridCanvas Class
223(1)
Other Grid Methods
224(1)
Starting the Game
225(1)
The Simulation Loop
226(1)
Exception Handling
227(1)
Counting Neighbors
227(2)
Updating the Grid
229(2)
Vocabulary
231(3)
Exercises
234(1)
16 Reusing Classes
235(1)
Langtons Ant
235(2)
Refactoring
237(1)
Abstract Classes
238(2)
UML Diagram
240(1)
Vocabulary
240(1)
Exercises
241(2)
17 Advanced Topics
243(1)
Polygon Objects
243(1)
Adding Color
244(1)
Regular Polygons
245(2)
More Constructors
247(1)
An Initial Drawing
248(2)
Blinking Polygons
250(1)
Interfaces
251(2)
Event Listeners
253(3)
Timers
256(1)
Vocabulary
257(1)
Exercises
258(1)
A Tools 259(12)
B Javadoc 271(8)
C Graphics 279(8)
D Debugging 287(12)
Index 299
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.