Brief Contents Chapter 1 Computational Thinking . . . . . . . . . . . . . . .2 Chapter 2 Encoding . . . . . . . . . . . . . . . . . . . . . . . . .26 Chapter 3 Introduction to Java Programming. . . . . . .52 Chapter 4 Variables. . . . . . . . . . . . . . . . . . . . . . . . .72 Chapter 5 Java Expressions . . . . . . . . . . . . . . . . . . .98 Chapter 6 Classes . . . . . . . . . . . . . . . . . . . . . . . . .132 Chapter 7 Drawing . . . . . . . . . . . . . . . . . . . . . . . .164 Chapter 8 Selection. . . . . . . . . . . . . . . . . . . . . . . .202 Chapter 9 Repetition. . . . . . . . . . . . . . . . . . . . . . .238 Chapter 10 String Processing . . . . . . . . . . . . . . . . . .268 Chapter 11 Managing Input and Output . . . . . . . . . .302 Chapter 12 Custom Classes and Methods. . . . . . . . . .324 Chapter 13 Working with Arrays. . . . . . . . . . . . . . . .360 Chapter 14 Graphical User Interface. . . . . . . . . . . . .394 Chapter 15 Careers in Computer Programming. . . . . .436 Chapter 16 Computing and Society. . . . . . . . . . . . . .456 xii